Firebird Documentation IndexFirebird 3.0.3 Release Notes → General Notes
Firebird Home Firebird Home Prev: Firebird 3.0.3 Release NotesFirebird Documentation IndexUp: Firebird 3.0.3 Release NotesNext: Sub-release V.3.0.2

General Notes

Table of Contents

Sub-release V.3.0.3
Sub-release V.3.0.2
Sub-release V.3.0.1
Bug Reporting
Documentation

Thank you for choosing Firebird 3.0. We cordially invite you to test it hard against your expectations and engage with us in identifying and fixing any bugs you might encounter.

If you are upgrading from a previous major release version, be sure to study Chapter 12, Compatibility Issues before you attempt to do anything to your existing databases!

Sub-release V.3.0.3

Bugs reported and fixed prior to the v.3.0.3 release are listed HERE.

Security Alert

If you are using the database encryption feature, or plan to do so, it is essential to upgrade to this sub-release. Refer to this report for details.

V. 3.0.3 Improvements

(CORE-5727)     Engine response has been improved on cancel/shutdown signals when scanning a long list of pointer pages.

Implemented by V. Khorsun

    ~ ~ ~     

(CORE-5712)     The name of the encryption key is not top secret information. It can be read using the gstat utility or service, for example. However, for working with that name from a program it was desirable to access the key name using the API call Attachment::getInfo(). Hence, this facility is now provided via the information item fb_info_crypt_key.

Implemented by A. Peshkov

    ~ ~ ~     

(CORE-5704)     Some clauses of the ALTER DATABASE statement require updating of the single row in RDB$DATABASE: SET DEFAULT CHARACTER SET, SET LINGER, DROP LINGER. Others, such as BEGIN|END BACKUP, ENCRYPT, DECRYPT, et al., do not need to touch that record.

In previous versions, to prevent concurrent instances of ALTER DATABASE running in parallel transactions, the engine would run an update on the RDB$DATABASE record regardless of the nature of clauses specified by the user. Hence, any other transaction that read the RDB$DATABASE record in READ COMMITTED NO RECORD VERSION mode would be blocked briefly, even by a “dummy update” that in fact did not update the record.

In some cases, such as with an ALTER DATABASE END BACKUP the blockage could last 10 minutes or more. A user would seem to be unable to connect to the database with isql, for example, while ALTER DATABASE END BACKUP was running. In fact, isql would connect successfully, but it would read RDB$DATABASE immediately after attaching, using a READ COMMITTED NO RECORD VERSION WAIT transaction and then just wait until the work of ALTER DATABASE END BACKUP was committed.

From this sub-release forward, the update of the RDB$DATABASE record is avoided when possible and an implicit lock is placed to prevent concurrent runs of the ALTER DATABASE statement.

Implemented by V. Khorsun

    ~ ~ ~     

(CORE-5676)     All queries that are semantically the same should have the same plan. However, until now, the optimizer understood only an explicit reference inside an ORDER BY clause and would ignore sorts derived from equivalent expressions. Now, it will consider equivalence classes for index navigation. Refer to the Tracker ticket for an example.

Implemented by D. Yemanov

    ~ ~ ~     

(CORE-5674)     Common Table Expressions are now allowed to be left unused.

implemented by V. Khorsun

    ~ ~ ~     

(CORE-5660)     Flushing a large number of dirty pages has been made faster.

Implemented by V. Khorsun

    ~ ~ ~     

(CORE-5648)     Measures have been taken to avoid serialization of isc_attach_database calls issued by EXECUTE STATEMENT.

Implemented by V. Khorsun

    ~ ~ ~     

(CORE-5629)     Output from gstat now includes the date and time of analysis.

implemented by A. Peshkov

    ~ ~ ~     

(CORE-5614)     The merge stage of a physical backup stage could run too long, especially with huge page cache. Changes have been made to reduce it.

Implemented by V. Khorsun

    ~ ~ ~     

(CORE-5610)     Message “Error during sweep: connection shutdown” now provides information about the database that was being swept.

Implemented by A. Peshkov

    ~ ~ ~     

(CORE-5602)     Improvement in performance of ALTER DOMAIN when the domain has many dependencies.

Implemented by V. Khorsun

    ~ ~ ~     

(CORE-5601)     Compression details and encryption status of the connection (fb_info_conn_flags) have been added to the getInfo() API call. For more information see notes in the API chapter.

(CORE-5543)     Restoring a pre ODS 11.1 database now correctly populates RDB$RELATION_TYPE field in the metadata.

implemented by D. Yemanov

    ~ ~ ~     

(CORE-4913)     Speed of backup with nBackup when directed to NAS over SMB protocol has been improved.

Implemented by J. Hejda & V. Khorsun

    ~ ~ ~     

(CORE-3295)     The optimizer can now estimate the actual record compression ratio.

Implemented by D. Yemanov

    ~ ~ ~     

Prev: Firebird 3.0.3 Release NotesFirebird Documentation IndexUp: Firebird 3.0.3 Release NotesNext: Sub-release V.3.0.2
Firebird Documentation IndexFirebird 3.0.3 Release Notes → General Notes