Firebird 3.0.4
更新細節:
Context variables WIRE_COMPRESSED and WIRE_ENCRYPTED were added to the SYSTEM namespace to report compression and encryption status, respectively, of the current connection. See Context Variables: v.3.0.4 for details.
Enhanced reporting of errors when a dynamic library fails to load. For more information, see Better Reporting on Dynamic Library Loading Errors.
When an external function (UDF) causes an error of the type "Arithmetic exception, numeric overflow, or string truncation", the error message will now include the name of the function.
The API now supports passing the DPB/spb item ***_auth_plugin_list from an application to the client interface. More details.
Two new context variables LOCALTIME and LOCALTIMESTAMP that are synonyms for CURRENT_TIME and CURRENT_TIMESTAMP, respectively. They can be used in Firebird 3.0.4 and later, for forward-compatibility with Firebird 4. See Context Variables: v.3.0.4 for details.
The read-only restriction for system tables was relaxed to permit CREATE, ALTER and DROP operations on their indexes.
版本下載:Firebird 3.0.4
Firebird 3.0.2
更新細節:
New Feature:
Support was added for fast/low-latency “TCP Loopback Fast Path” functionality introduced in Windows 8 and Server 2012.
Improvements:
It is now possible to filter out info and warnings from the trace log.
Enhanced control capability when sharing the database crypt key between Superserver attachments.
The physical numbers of frequently used data pages are now cached to reduce the number of fetches of pointer pages.
A read-only transaction will no longer force write the HeaderTIP page content to disk immediately after a change. This improvement gives a significant performance gain where there are numerous light read-only transactions. At this stage, it affects only servers in SS mode. For CS and SC it is more complex to implement and should appear in Firebird 4.0.
The database name was made available to an encryption plug-in.
libfbclient.so was compiled for Android (x86/x86-64/arm64).
Nesting of keys in a plug-in configuration was enabled.
The Linux code is now built with --enable-binreloc and an option was included in the installer script to install in locations other than /opt/firebird.
For Trace, a filter has been provided to INCLUDE / EXCLUDE errors by their mnemonical names.
Android port (arm32).
A port was done and tested for Linux on the ancient Motorola 680000 CPU platform to satisfy some requirement from Debian.
Support has been added to enable SELECT expressions to be valid operands for the BETWEEN predicate.
Bug Fixes:
Core Engine:
Diagnostics form gstat were unclear when a damaged page in DB file appeared encrypted.
It was not possible to create a connection for events processing.
Creating SRP SYSDBA with explicit admin (-admin yes in gsec or grant admin role in create user) was creating two SYSDBA accounts.
Performance for NULLs filtering inside a navigational index scan was poor.
The setting 'Restrict UDF' for configuration parameter UdfAccess was ineffective because of fbudf.so being dynamically linked against libc.
Problems with dbcrypt key transfer.
Trace INCLUDE_FILTER with [[:WHITESPACE:]]+ would not work when a statement was issued that contained a newline character.
An access violation would occur in fbclient when reading a BLOB stored in incompatible encoding.
Bugcheck 167 (invalid SEND request).
When attempting to migrate a database from Firebird 2.5.2 to 3.0.1, gbak restore would always crash at the end.
A segmentation fault would occue when the engine's dynamic library was unloaded right after closing worker threads (GC and/or cache writer).
Bugcheck oocurred when creating a view on a table that has a column with character set NONE, database default charset is UTF8, and the default collation is UNICODE.
EXECUTE STATEMENT <e> when <e> starts with '--' (comment) issues “Unexpected end of command” error with a wrong column number.
Classic Server suffered a performance regression: too much time was being spent during context switches.
The error “Decompression overran buffer” could occur after rollback. It affected all platforms but would appear particularly on Windows Superserver, when GCPolicy was set to 'Combined' or 'Cooperative' and CpuAffinityMask was configured to more than a single core.
Performance degradation in FB 3.0.2 compared to FB 2.5.7.
Error restoring on FB 3.0 from FB 2.5 backup: bugcheck 221 (cannot remap).
Dependencies were not stored when certain types of construction were used in subroutines.
Optimization was poor for some operations with views containing subqueries.
BUGCHECK 179 (decompression overran buffer) or an unexpected lock conflict could happen during back-out of record versions.
isql would crash with corrupt memory when statement length exceeded 10 MB.
Plug-in manager was failing to provide the appropriate config information when the name of the configuration file was set in plugins.conf.
Dependencies in PSQL packages were not being recognised.
An SQL statement longer than 10MB could be processed (truncated) incorrectly.
Regression: A (select from view with nested view) query could not be executed.
Regression: a client application could hang or throw an access violation on selecting from multiple threads using one embedded connection.
Regression: A BOOLEAN state as a parameter for a search condition was incorrectly rejected as invalid.
Regression: A CASE expression with more than 255 conditions was being rejected.
An assertion was exhibited on Windows in CachedMasterInterface::set.
UDFs declared with large varchars were taking excessive time to execute.
BETWEEN operand/clause was not supported for COMPUTED BY columns -- “feature is not supported”. Now it is.
Server Crashes/Hang-ups:
An old bug could occasionally cause a segmentation fault in Classic when the structure of a table with triggers was modified (DDL) while another attachment was preparing a request to work with that table. In rare cases, pointers to the old triggers were cached by the request compiler and the fault would occur the next time they were used.
A load test was hanging the server.
The engine could hang if an automatic sweep was starting during a database shutdown.
(Old bug) Circular dependencies between computed fields would crash the engine.
Build:
Issues with the function snprintf (in autoconfing_msvc.h) and user-defined literals in VS 2015 (MSVC 14).
API:
New API - MessageMetadata's getScale() was returning INTEGER, while MetadataBuilder's setScale() expected unsigned.
POSIX Only:
Classic Server was limited to 64 connections when using systemd init scripts
A database on an NFS share was unavailable when accessed using the mount point path.
Connections were failing due to dead NFS mount points.
Windows Only:
Trace was duplicating ascii_char(13) in its output on Windows.
版本下載:Firebird 3.0.2
Firebird 3.0.1
更新細節:
- IMPROVEMENT: The statement CREATE OR ALTER USER SYSDBA PASSWORD <password> can now be used to initialize an empty securityN.fdb security
- IMPROVEMENT: Nesting of keys in a plug-in configuration was enabled.
- IMPROVEMENT: For URL-like connection strings on Windows, restriction of lookup to IPv4 only was enabled.
- IMPROVEMENT: Line and column numbers (location context) are now provided for runtime errors raised inside EXECUTE BLOCK.
- IMPROVEMENT: A switch was added to build POSIX binaries with a built-in libtommath library.
- IMPROVEMENT: gbak now returns a non-zero result code when restore fails on creating and activating a deferred user index.
- IMPROVEMENT: Implicit conversion between Boolean and string is now done automatically when a string for 'true' or 'false' is used as a value in an expression. Case-insensitive. Not valid when used with a Boolean operator—IS, NOT, AND or OR; not available for UNKNOWN.
* Bug Fixex:
# Core Engine:
- XpbBuilder was failing to create a new TPB.
- LEFT JOIN would incorrectly push a UDF into the inner stream, causing wrong results.
- A user-defined collation failed to work with BLOBs.
- An assertion could occur in createDatabase() when doing the overwrite check.
- A subquery in the insert list expression was ignoring changes made earlier in the same executable block.
- A database could suffer partial corruption in the “use all space” (no-reserve) mode.
- BUGCHECK 165 (cannot find tip page)
- Cascade deletion in a self-referencing table could raise the error “no current record for fetch operation”.
- A “Data type unknown” error was occurring with the LIST operation.
- Random “invalid transaction handle” errors were being returned from the engine.
- ON UPDATE CASCADE was failing for a self-referencing Foreign Key.
- REGRESSION: Performance was degraded when bulk inserting into a table with indices.
- Trying to encrypt a database in the absence of the the appropriate key could corrupt it.
- A small memory leak could occur when an empty result set was returned.
- Granting of privileges to views was broken.
- Parameters with multi-byte character sets were being allowed to exceed the length limit for VARCHAR fields.
- Expression index could become inconsistent if CREATE INDEX was interrupted after b-tree creation but before committing.
- Nested OR conditions could lead to incorrest results.
- Consistency between roles and privileges in GRANT syntax needed improving in accordance with the SQL standard.
- An attempt to execute a SELECT statement using isc_dsql_execute_immediate() would produce the wrong error message.
- Affected rows were not being counted for some update operations with views.
- IN/ANY/ALL predicates could cause sub-optimal execution (late filtering) of joins.
- Unaligned memory access in MET_format() would cause segfault on big-endian machines.
- 32-bit locks on big-endian systems would lead to deadlock.
- EXECUTE STATEMENT would throw a BLR error if the number of output parameters exceeded 256.
- An incorrect result set (missing records) could be returned by an ORDER plan query navigating on a descending index.
- Authentication was ending with first plug-in that had the user but would fail there, instead of continuing with the next plug-in.
- SELECT WITH LOCK could raise unexpected update conflict errors under concurrent load.
- A database could get decrypted after changing a couple of bytes in the database header without 'agreement' from the crypt plug-in.
- POST_EVENT was not working with the Fb 3.0 server and client.
- The operator IS exhibited a precedence problem.
- REGRESSION: line/column numbering in error messages were being garbled if alias.name syntax was used in the offending statement.
- The error “no current record to fetch” was thrown if some record was to be deleted both by the statement itself and by some trigger fired during statement execution.
- An expression index could be created while inserts into the table were in progress.
# Server Crashes:
- Access violation from certain UDFs would cause the server to crash.
# API/Remote Interface:
- Race conditions could arise when initializing wire compression.
- A network protocol error was exhibited when performing a callback to a client for the database crypt key.
- Some SPB parameters were failing in FB 3.0.
- Transaction id tags for the Services API did not support new 48-bit transaction ids.
- The Services API would not work with non-ASCII database names.
# Utilities
- fbsvcmgr was not producing any error when it attempted to shut down a database without a specified timeout (prp_force_shutdown N).
- Restore could hang if the database contained more than 4 billion records.
- Validation could read after the end-of-file when operating on a multi-file database.
* isql:
- The BLOBVIEW command was causing isql to hang.
- isql would leak memory when SHOW GRANTS was used on a new, empty database.
- isql -[e]X[tract_metadata] output was omitting double quotes for the COLLATE <collation> clause of a CREATE DOMAIN statement when <collation> was for any non-ascii character set.
- isql -[e]X[tract_metadata] was not exporting explicitly defined names for NOT NULL constraints for Dialect 3 databases.
- isql -[e]X[tract_metadata] could crash while exporting an exception with message text length longer than 127 bytes.
- isql -[e]X[tract_metadata] could generate invalid GRANT USAGE statements for domains.
* Monitoring and Trace:
- A string truncation error would occur while selecting from the MON$ tables if some user-defined context variable was longer than 255 bytes.
- A trace session could fully utilize a single CPU core.
* nBackup:
- A database located on a raw device could not be unlocked from an nBackup-locked state.
* Builds
- Databases created during the process of the Windows builds were owned by a Windows administrator, not SYSDBA.
- Firebird failed to build with USE_VALGRIND
* POSIX-Specific
- A segfault could occur when op_que_events was used on a port that was not prepared for events processing.
- A segfault could occur if an attachment was closed while requests were still open.
- Incorrect use of the system call readlink().
版本下載:Firebird 3.0.1
Firebird 3.0.0
HWiNFO 5.22
Firebird 2.5.5
Firebird 2.5.4
更新細節:
- From this sub-release forward, it is now possible to perform table and index validation whilst the database is on-line.
- Internal BLOBs are released earlier, to free up memory and disk space.
版本下載:Firebird 2.5.4
ZSNES 1.51
Firebird 2.5.3
更新細節:
* New context variables have been added to the SYSTEM namespace to retrieve more information about the current connection and current transaction. The added variables: SYSTEM::CLIENT_PID and SYSTEM::CLIENT_PROCESS for the current connection, SYSTEM::LOCK_TIMEOUT and SYSTEM::READ_ONLY for the current transaction.
* Some limits have increased:
- The maximum number of connections on Windows for Superserver and Superclassic has been raised from 1024 to 2048 connections.
- The maximum number of input parameters for external functions (UDFs) has increased to 15.
* Error reporting improvements, including:
- More details are now reported for “object in use” errors.
- The relation name is now added to the text of validation constraint error messages, to help identify the error context.
- Error reporting for index and constraint violations has been extended to include the problematic key value.
* Physical backup (using ALTER DATABASE BEGIN/END BACKUP or the nBackup utility) was improved to speed up extension of the main database file when backup state changes from stalled to merge.
- Contention for the allocation table lock while a database is in the stalled physical backup state has been reduced.
- Faster file growth has been enabled on Linux systems that support fallocate().
- Attachments no longer block others when the allocation table is being read for the first time.
* Execution of a SET STATISTICS INDEX statement no longer blocks or slows down concurrent attachments.
* The scan for limbo transactions at the end of a sweep has been improved.
* Support for the UPDATE OR INSERT statement and the RETURNING clause have been implemented for Embedded SQL (ESQL).
版本下載:Firebird 2.5.3
Firebird 2.5.2
更新細節:
* Some welcome improvements were made to the Trace services, viz.,
- Sessions can now be configured to log user and automatic sweep activity.
- TRACE now produces statistics of actions that happen after a transaction has finished.
- TRACE now provides the ability to log errors that occur in runtime (lock conflicts, key violations, et al.).
* It is now possible to use the API to do a remote backup/restore.
* A note is now written into firebird.log when an automatic sweep is started.
* Support was added for C preprocessor flags in the Firebird build system.
版本下載:Firebird 2.5.2
Download Accelerator Plus 10.0.4.3
Firebird 2.5.0
更新細節:
# Fixed
* Core Engine/API
- (CORE-3115)The internal record compression routines exhibited some bugs.
- (CORE-3103)A SELECT statement incurred more non-indexed reads in the third v.2.5 release candidate than the same statement in v.2.1.3.
- (CORE-3101)ALTER DOMAIN was not possible in a database that had been migrated from an earlier version.
- (CORE-3100)The WAIT mode and lock timeout parameters for the external transaction of EXECUTE STATEMENT were not matched to the corresponding parameters of the local transaction.
- (CORE-3096)A regression introduced with the fix for CORE-2893 caused double processing of nodes when preparing a statement, prompting an abort to occur in the debug build.
- (CORE-3094)Parameters would not work with NOT IN from a selectable stored procedure.
- (CORE-3090)Incorrect LEFT JOIN result using table and derived constant subquery.
- (CORE-3089)Attempt to run EXECUTE STATEMENT on an external data source failed when the data source was an InterBase 4.1 (ODS 8) database.
- (CORE-3079)Batch inserts were noticeably slowed down if they were all executed in a single transaction and involved triggers that posted events.
* Server Crashes
- (CORE-3109)The server would crash when isc_dql_exec_immed3_m() was called for CREATE DATABASE ... in a NULL transaction.
* Command-line Utilities
- gsec
- (CORE-3116)The gsec utility was sending its output list of users to stderr instead of stdout.
版本下載:Firebird 2.5.0
Firebird 2.5.0 RC3
更新細節:
#Fixed -
* Core Engine/API -
- (CORE-3046) - After an ALTER TABLE was executed in one connection, an assertion would occur if another connection tried to select from the table.
- (CORE-3038) - An insert would fail with a spurious validation error on a specified column definition.
- (CORE-3034) - If a request was cancelled for some reason, such as database shutdown or by a user request, while inserting key into an expression index, it could lead to bugcheck 300 (can't find shared latch).
- (CORE-3017) - Files were being left behind in Firebird's lock directory.
- (CORE-3016) - On disconnect a “Fatal lock manager error: invalid lock id (0), errno: 0” could show up in firebird.log.
- (CORE-3015) - Various “Cannot initialize the shared memory region” errors were reported.
- (CORE-3010) - On the first connect to any database, the monitor would report MON$MEMORY_USED = 4Gb.
- (CORE-3003) - New checks for the existence of a SUSPEND statement in a procedure being called via SELECT statement were working properly: if the procedure was called via a SELECT statement and SUSPEND was not present, an error would be thrown, e.g., “Procedure ... is not selectable (it does not contain a SUSPEND statement)”. However, if the same error condition occurred during a RESTORE, it could cause the restore to fail.
- (CORE-2995) - A single error in the status vector was being reported twice.
- (CORE-2993) - On a highly loaded system, the fatal lock manager error “Invalid lock id (NNN)” could occur while working with monitoring tables.
- (CORE-2920) - Volatile SQL statements inside an EXECUTE STATEMENT construct could be executed incorrectly.
- (CORE-2900) - Using a request containing an aggregated DISTINCT could cause regular but random memory access violations.
- (CORE-2985) - Altering COMPUTED columns was not dealing properly with dependencies.
- (CORE-2981) - An error would occur in the trace plugin when localized characters were used in a query.
- (CORE-2977) - The server was working incorrectly with indexed fields of type DATE in databases with ODS lower than 10.
- (CORE-2971) - Invalid usage of the UPDATE OR INSERT statement syntax could give rise to a “request depth exceeded” exception.
- (CORE-2966) - On 32-bit builds, wrong results or unexpected errors could arise while sorting a large data set.
- (CORE-2965) - The ROW_COUNT value returned after a subquery involving a SINGULAR predicate was inconsistent with the rules, viz., ROW_COUNT is meant to count rows affected by an update or delete and should not return non-zero value from subqueries.
- (CORE-2956) - Problems with requests processing procedure parameters.
- (CORE-2943) - An error would occur during parsing of a recursive query with two recursive parts.
- (CORE-2942) - Huge (>10Gb) memory was being consumed by some fb_inet_server processes.
- (CORE-2940) - Trace output could contain garbage data left behind from filtered out statements.
- (CORE-2936) - If two consecutive leaf index pages were removed (garbage collected) from an index simultaneously by two different connections, the linked list of sibling pages could be broken, with the sibling pointer at another index page left pointing to the freed index page. When the freed page was allocated again, index corruption would be reported as “Wrong page type (expected 7 found N)”.
- (CORE-2934) - Memory leak in the trace plugin (fbtrace).
- (CORE-2933) - An optimization issue with the system tables would cause very slow execution of a script that was creating a lot of metadata.
- (CORE-2930) - DROP VIEW would drop the output parameters of used stored procedures.
- (CORE-2929) - The error “invalid ESCAPE sequence” could be thrown when connecting to a database.
- (CORE-2923) - Problem with dependencies between a procedure and a view using that procedure.
- (CORE-2917) - The server could hang with an I/O error during the “open” operation for the file /tmp/firebird/fb_trace_ksVDoc
- (CORE-2916) - Error handling was broken in the case of a conversion error occurring during index creation.
- (CORE-2910) - The primary key index was being ignored for optimizing derived tables.
- (CORE-2907) - Exceptions thrown inside a dynamically-built EXECUTE STATEMENT could not be returned to clients in a recognisable fashion. Exception handling in EXECUTE STATEMENT has been enhanced to provide a solution.
- (CORE-2898) - CHAR_TO_UUID and UUID_TO_CHAR behaviours differed according to whether platform architecture was big endian or little endian.
- (CORE-2893) - An expression within a subquery could be treated as invariant and produce incorrect results.
- (CORE-2886) - Query with NOT IN <subselect from view> would fail.
- (CORE-2879) - Sweep could raise the error page 0 is of wrong type (expected 6, found 1).
- (CORE-2876) - Unintelligent error handling when using ALTER DATABASE ADD DIFFERENCE FILE could cause the engine to get confused about the backup mode of a database.
- (CORE-2875) - Comparing a CHAR column longer than 4096 bytes with a string constant would cause a string right truncation error.
- (CORE-2871) - If a derived table or a view contained both a left/right join and an ORDER BY clause and the outer query also contained an ORDER BY clause, the outer ORDER BY clause would have no effect.
- (CORE-2867) - SuperClassic was leaking semaphores on disconnect.
- (CORE-2864) - The listener process of Classic Server was leaking handles.
- (CORE-2858) - Memory trashing was possible when raising some exceptions to signal failed security checks.
- (CORE-2856) - A non-NULL key in a unique index could not be found when the key was removed
- (CORE-2851) - The fb_cancel_operation() API call was exhibiting a problem.
- (CORE-2833) - Changing data that affected an expression index would fail if that data contained references to null date fields.
- (CORE-2826) - Join condition would fail for UTF-8 databases.
- (CORE-2756) - An expression deriving a string from taking a substring from a timestamp value would return an unexpected result.
- (CORE-2628) - FreeAdhocUDF library functions were denied on 32-bit Windows platform.
- (CORE-1089) - Selecting from a view that used DISTINCT and LEFT JOIN returned records in the wrong order if the ORDER BY clause did not include columns from the right-side (non-mandatory) table.
- (CORE-195) - Regression of an old bug, previously fixed in v.1.5.1, whereby a bugcheck 291 (cannnot find back record version) would occur when updating the same record that had already fired an action in a BEFORE UPDATE trigger. The regression that was reintroduced in v.2.0 was less destructive, insofar as it affected only the record that was physically first in the table.
* Server Crashes -
- (CORE-3011) - The server could hang or crash while monitoring connections that were repeatedly attaching and detaching.
- (CORE-2908) - The engine could crash or raise unexpected errors when working with an ODS 8.x database.
- (CORE-2888) - A source of memory corruption could cause incorrect query evaluation and could even crash the server.
- (CORE-2852) - The server could crash when executing a syntactically wrong SQL statement during an active trace session.
* Command-line Utilities -
- (CORE-3000) - An error would be thrown while deleting a user with the user name ADMIN. The issue was due to gsec ignoring the double quotes around the reserved word ADMIN when it submitted the SQL command internally. The solution, provided the database and client are dialect 3, was to force gsec to retain the quotes.
- (CORE-2928) - Buffer overflow in gsec. For reasons unknown, the gsec code copies the value of the password hash to an internal user data structure during a display operation. Since V.2.0, when the newer hash algorithm made the hash longer than previously, the buffer used for storing it could be too short. This does not create a vulnerability because the hash value does not travel anywhere. It is harmless, anyway: the buffer overflow cannot be exploited because the first, middle and last names are filled immediately after the password. It is fixed now, thus avoiding having newer versions of glibc detecting this overflow.
- (CORE-2984) - gbak -b -v srv:db stdout was causing a broken backup to be created.
- (CORE-2914) - Restoring a database having an expression index referencing a non-existent UDF would cause the server to crash.
- (CORE-2859) - The security database was remaining locked after replacing the database.
- (CORE-2846) - If gfix -shut <mode> -attach <timeout> failed after the specified timeout due to connections being still active, connection to the database would become impossible.
- (CORE-2844) -There were some unresolved symbol references when linking fbsvcmgr and fbtracemgr.
- (CORE-2750) - Physical backup could not restart operations after the explicit difference file had been dropped.
* POSIX-Only Issues -
- (CORE-3067) - On 64-bit POSIX, except HP-UX, objects were not being unmapped when shared memory was closed. The 64-bit pointer had been masked with a 32-bit mask, which turned out to be a really bad idea: with Object == 0x7FAB12345678 and page size == 4K, the upper bits were lost and the starting address would be at 0x12345000 instead of the intended 0x7FAB12345000.
- (CORE-3021) - Fixed a condition that was causing a segfault in DEV_BUILD.
- (CORE-3019) - On a recent version of Gentoo Linux, an attempt to source the function library /etc/init.d/functions.sh would fail with the message “* ERROR: firebird does not have a start function” and neither SuperServer nor SuperClassic would start.
- (CORE-3006) - Group privileges for the /tmp/firebird directory and files within it were being assigned as root (i.e. GID == 0) instead of firebird in some circumstances.
- (CORE-3001) - Install was failing to create the firebird user and group.
- (CORE-2948) - In rare cases, when Ctrl-C was pressed to stop the Superclassic server, it would cause a segmentation fault during exit.
- (CORE-2926) - “make install” was failing on Linux.
- (CORE-2919) - The Linux installation script was ignoring non-standard ports.
- (CORE-2862) - configure --with-fbudf was breaking the build on CentOS.
- (CORE-2845) - The build process on Solaris would stop with the message: “need to use SFIO”. On the whole, Solaris 10 no longer requires SFIO - the 64-bit builds do not suffer the issue with the maximum 255 file descriptors and there are simple work-arounds for 32-bit builds. See this article for details. However, the issue still affects Solaris 10 3/05 through Solaris 10 11/06. Some patches are needed to correct the problem. For the time being, the easiest solution is to leave the define in the code, but comment it with the relevant information for Solaris 10. The define can be removed if the patches have been applied or the user is running an unaffected version of Solaris 10. Updated information concerning this issue has been inserted into common.h. Anyone building 32-bit Firebird on Solaris 10 will have to make an informed decision according to the version and build/patch level of Solaris before uncommenting the SFIO define.
- (CORE-2825) - Some patches were applied to facilitate building on Debian/kFreeBSD and FreeBSD.
版本下載:Firebird 2.5.0 RC3
Firebird 2.5.0 RC2
更新細節:
* Administrative Enhancements
- System audit tracing and user trace sessions via the Services API, making it possible to monitor and analyse everything going on in a database in real time
- New system role RDB$ADMIN in the ODS 11.2 database allows SYSDBA to transfer its privileges to another user on a per-database basis
- More information in the monitoring tables
- Asynchronous cancellation of connections
- Capability for ordinary users to monitor any of their own attachments as well as CURRENT_CONNECTION
* Other SQL Language Additions and Enhancements
- Regular expression support using the SIMILAR TO predicate
- ALTER COLUMN for computed columns
- Autonomous transactions within a PSQL module (stored procedure, trigger or dynamically executable PSQL block)
- Enhanced access to stored procedures in view definitions
- Optional GRANTED BY or GRANTED AS for GRANT and REVOKE statements, enabling the grantor to be a user other than the CURRENT_USER (the default).
- REVOKE ALL syntax to dispose of all privileges for a user or role at once
- Support for WHERE SOME_COL = ? OR ? IS NULL predications
- Removal of “reserved” status for all but a handful of keywords that are not reserved in the SQL standard
* Data-handling Enhancements
- New built-in functions for converting UUID CHAR(16) OCTETS strings to RFC4122-compliant format and vice versa
- Ability to pass 32-bit and 64-bit integers as hexadecimal in numeric literal and X-prefixed binary string literal formats
* API Additions
- Statements now return an SQL-2003 standard 5-alphanumeric SQLSTATE completion code
- New constant DSQL_unprepare available for use with isc_dsql_free_statement for efficient unpreparing of statements
* International Language Support
- Default COLLATE clause for CREATE DATABASE
- Ability to change the default COLLATE for a used character set
- GBAK restore switches FIX_FSS_DATA and FIX_FSS_METADATA to restore legacy databases with UNICODE_FSS data and/or metadata correctly without resorting to scripts and manual techniques
- Accent-insensitive collation for Unicode
版本下載:Firebird 2.5.0 RC2
Firebird 2.5.0 RC1
更新細節:
* Other New Features:
- Administrative Enhancements
- Other SQL Language Additions and Enhancements
- Data-handling Enhancements
- API Additions
- International Language Support
* Changes in the Firebird Engine:
- New Threading Architecture
- Thread-safe Client Library
- Other Improvements
* Changes to the Firebird API and ODS:
- ODS (On-Disk Structure) Changes
- API (Application Programming Interface) Extensions
* Reserved Words and Changes:
- Clean-up of Reserved Words
- Newly Reserved Words
- Keywords Added as Non-reserved
* Configuration Parameter Additions and Changes:
- AuditTraceConfigFile
- Parameters Affecting Filesystem Cache Usage
- Authentication
- MaxUserTraceLogSize
- OldSetClauseSemantics
- RemoteAuxPort For Classic and Superclassic
- Use Hostname for RemoteBindAddress
- RemoteFileOpenAbility
* Administrative Features:
- New RDB$ADMIN System Role
- Trace and Audit Services
- Monitoring Improvements
* Security Hardening:
- Windows Platforms changes
* Data Definition Language (DDL):
- Visibility of Procedure Definition Changes on Classic
- CREATE/ALTER/DROP USER
- Syntaxes for Altering Views
- Extensions for CREATE VIEW
- ALTER Mechanism for Computed Columns
- Extensions for SQL Permissions
- Default COLLATION Attribute for a Database
- ALTER CHARACTER SET Command
- Evolution of CREATE DATABASE
* Data Manipulation Language (DML):
- RegEx Search Support using SIMILAR TO
- Hex Literal Support
- New UUID Conversion Functions
- SOME_COL = ? OR ? IS NULL Predication
- Extension to LIST() Function
- Optimizer Improvements
- Other Improvements
* Procedural SQL (PSQL):
- Autonomous Transactions
- Borrow Database Column Type for a PSQL Variable
- New Extensions to EXECUTE STATEMENT
- Other PSQL Improvements
* International Language Support (INTL):
- Default COLLATION Attribute for a Database
- ALTER CHARACTER SET Command
- Connection Strings & Character Sets
- Other Improvements
* Command-line Utilities:
- fbtracemgr
- Retrieve Password from a File or Prompt
- gsec
- fbsvcmgr
- gbak
- nBackup
- isql
- gpre (Precompiler)
- gstat
版本下載:Firebird 2.5.0 RC1