Firebird Documentation IndexFirebird 3.0.2 Release NotesBugs Fixed → Firebird 3.0 Release Candidate 1: Bug Fixes and Minor Improvements
Firebird Home Firebird Home Prev: Firebird 3.0 Release Candidate 2: Bug Fixes and Minor ImprovementsFirebird Documentation IndexUp: Bugs FixedNext: Firebird 3.0 Second Beta Release: Bug Fixes

Firebird 3.0 Release Candidate 1: Bug Fixes and Minor Improvements

Core Engine
POSIX-Specific
Windows-Specific
Services API
Utilities

The following bug fixes and tweaks were reported prior to v.3.0.0 release candidate 1:

Minor Improvements

(CORE-4911)     IMPROVEMENT: Most errors that occur in providers are fatal and it is pointless to try other providers in the hope another will succeed when that one failed. As an example, if the remote redirector detects that the format of the database connection string matches a certain protocol, trying other providers will be futile if connection on that protocol failed. Or, suppose the engine reports some internal database error (other than invalid ODS version) it will be no use trying to open the same database through the loopback provider.

A better option appeared to be to enumerate the codes for those errors after which it would make sense to try other providers—primarily isc_unavailable and isc_no_priv. Given the desirability of retaining the content of the status vector as-is, the solution was to add some more error codes.

Implemented by A. Peshkov

    ~ ~ ~     

(CORE-4898)     IMPROVEMENT: Creation and loading of functions was slow when there were many functions in the database. This process has been given a speed boost.

Implemented by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-4880)     IMPROVEMENT: Creating packages containing many functions was slow. This process has been given a speed boost.

Implemented by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-4939)     IMPROVEMENT: I/O operations on the nBackup backup file at are now aligned at the page size boundary

Implemented by V. Khorsun

    ~ ~ ~     

(CORE-4936)     IMPROVEMENT: Internal contention in the background garbage collector has been reduced

Implemented by V. Khorsun

    ~ ~ ~     

(CORE-4935)     IMPROVEMENT: Performance was improved on backing out a dead record version or undoing a newly created primary record version when the back-version chain gets too long

Implemented by V. Khorsun

    ~ ~ ~     

Bugs

Core Engine

(CORE-4984)     Ordering by a compound index together with a range condition was giving wrong results

fixed by D. Yemanov

    ~ ~ ~     

(CORE-4954)     Packaged procedure with a default input value would not be called if the default parameter was not specified

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-4952)     SuperServer could hang on database shutdown

fixed by V. Khorsun

    ~ ~ ~     

(CORE-4951)     The message “Incorrect parameters provided to internal function INF_transaction_info Invalid token” was reported when trying to commit a two-phase-commit transaction

fixed by A. Peshkov

    ~ ~ ~     

(CORE-4950)     Statistics could not be recalculated or updated for any system index

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-4947)     A compound ALTER TABLE statement that tried to ADD and DROP the same check constraint would fail

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-4943)     Casting a Dialect 1 date to string would break when a domain with a check constraint was present

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-4938)     Operations (get statistics, change forced wites, make backup) could not be completed on a database when working in embedded mode

fixed by V. Khorsun

    ~ ~ ~     

(CORE-4929)     PSQL source with “ELSE IF ( <expr> ) THEN” block containing commands to manipulate an explicit cursor would not compile

fixed by D. Yemanov

    ~ ~ ~     

(CORE-4921)     Predicate IS [NOT] DISTINCT FROM was not being pushed into unions/aggregates, resulting in sub-optimal plans

fixed by D. Yemanov

    ~ ~ ~     

(CORE-4917)     ALTER DOMAIN ... TO <new_name> would allow the <new_name> to be specified in the same pattern as domains generated by the system, i.e., matching to 'RDB$[[:DIGIT:]]*'

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-4914)     Moving a database into the 'full shutdown' state could corrupt indexes on long-key text columns

fixed by V. Khorsun

    ~ ~ ~     

(CORE-4909)     MERGE / HASH JOINs would produce incorrect results when VARCHAR join keys differed only by trailing spaces

fixed by D. Yemanov

    ~ ~ ~     

(CORE-4906)     An access violation would occur if the server was shut down with active trace session(s)

fixed by V. Khorsun

    ~ ~ ~     

(CORE-4904)     Index corruption could occur while inserting data into a long-key-indexed field

fixed by V. Khorsun

    ~ ~ ~     

(CORE-4902)     Failure of assertion (m_format->fmt_length == m_data.getCount())

fixed by D. Yemanov, V. Khorsun

    ~ ~ ~     

(CORE-4897)     The fbsvcmgr could produce a broken log when restoring a database

fixed by A. Peshkov

    ~ ~ ~     

(CORE-4890)     Placing a comment (single-lined or multi-lined) between the final END statement and the terminator character (^) in stored procedure code produced a compiling error if the utility tool used the legacy API

fixed by A. Peshkov

    ~ ~ ~     

(CORE-4889)     Using fbsvcmgr with action_trace_start under SuperSsrver would cause a livelock and prevent attachments using local protocol

fixed by V. Khorsun

    ~ ~ ~     

(CORE-4887)     An AFTER CREATE/ALTER PACKAGE DDL trigger would run before inserts and updates of RDB$PROCEDURES and RDB$FUNCTIONS, whereas it should run after all changes to the system tables.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-4884)     A script containing EXECUTE BLOCK with MULTIPLE nested BEGIN..END statements would cause a crash during parsing

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-4872)     The V.3 fbclient could not work with servers older than V.2.5 via the remote protocol

fixed by D. Yemanov

    ~ ~ ~     

(CORE-4861)     A segmentation fault could occur when working with a saved exception in a request

fixed by A. Peshkov

    ~ ~ ~     

(CORE-4854)     The client library was handling non-UTF8 representation of international characters incorrectly in the SPB

fixed by A. Peshkov

    ~ ~ ~     

(CORE-4848)     MERGE ... WHEN NOT MATCHED ... RETURNING was returning wrong (non-null) values when no insert was performed

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-4846)     Altering a trigger to attempt to change the table to which it belongs did not succeed but it failed with bizarre results and an unhelpful error message

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-4836)     GRANT UPDATE(c) ON T TO U01 WITH GRANT OPTION: user U01 would be unable to revoke this privilege if some DML was executed before REVOKE

fixed by A. Peshkov

    ~ ~ ~     

(CORE-4710)     Invalid request BLR at offset 361 context already in use (BLR error)” was the wrong message for the error concerned, occurring only when the context count was near the 256 limit

fixed by D. Yemanov

    ~ ~ ~     

(CORE-4680)     Deadlock could occur during attachment

fixed by V. Khorsun

    ~ ~ ~     

(CORE-4585)     A column CHECK constraint could not be created if the column was based on a domain

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-4497)     Regression: wrong handling in FOR-cursor when a “NOT EXISTS( select from <view> )” expression was used to check results obtained from a stored procedure

fixed by D. Yemanov

    ~ ~ ~     

(CORE-4292)     The server would ignores asynchronous requests (monitoring or cancellation) while preparing a query with a lot of windowed functions

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-4279)     Invalid error message: “CHARACTER SET OCTETS is not defined” when creating a database specifying isc_dpb_lc_ctype = OCTETS

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-4277)     A database could be created with an invalid character set as its default

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-4276)     CREATE TABLE would throw an error if a column was being defined with the character set DOS775

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-4107)     (subquery + derived table + union) would produce a wrong result set

fixed by D. Yemanov

    ~ ~ ~     

(CORE-3717)     Anomalies existed between the three methods of user management, regarding valid user names and passwords

fixed by A. Peshkov

    ~ ~ ~     

(CORE-3545)     Validation of domain constraints in PSQL was inconsistent

fixed by A. dos Santos Fernandes

    ~ ~ ~     

POSIX-Specific

(CORE-4919)     On AIX and Solaris, all processes on a Classic server would hang after the death of one process

fixed by A. Peshkov

    ~ ~ ~     

Windows-Specific

(CORE-4859)     Embedded server could not work without the folder C:\ProgramData\firebird

fixed by V. Khorsun

    ~ ~ ~     

(CORE-4860)     Online validation on Windows would fail if the dbname argument contained forward slash ('/') and a concurrent attachment existed that also used '/'

fixed by V. Khorsun

    ~ ~ ~     

Services API

(CORE-4939)     When using the Services API to manage users (from fbsvcmgr or by building a SPB in some program, for example) it was required—but not documented—to place the user name parameter immediately after the desired action (add/modify). If any other parameter was placed before the user name, the Services Manager on the server would go crazy and build a wrong command line for the gsec service.

fixed by A. Peshkov

    ~ ~ ~     

Utilities

fbsvcmgr

(CORE-4855)     Online validation during DML activity in another connection would lead to errors: “Error while trying to read from file” and “Page in use during flush (210)

fixed by V. Khorsun

    ~ ~ ~     

(CORE-4876)     A named trace session launched by fbsvcmgr with a non-empty value for the parameter trc_name could not be stopped using its name

fixed by V. Khorsun

    ~ ~ ~     

gbak

(CORE-4928)     The connection information in an ON CONNECT trigger could not be saved if the connection was established by gbak

fixed by A. dos Santos Fernandes

    ~ ~ ~     

gfix

(CORE-4899)     Using gfix -online in Classic returned the message "IProvider::attachDatabase failed when loading mapping cache" if access was using a remote protocol

fixed by A. Peshkov

    ~ ~ ~     

(CORE-4865)     Online validation could return a false report of double-allocated pages

fixed by V. Khorsun

    ~ ~ ~     

(CORE-3548)     gfix would return an error after correctly shutting down a database

fixed by A. Peshkov

    ~ ~ ~     

isql

(CORE-4882)     The isql INPUT command (or the -i option at the command line) was reading large (> 64K) lines incorrectly

fixed by A. dos Santos Fernandes

    ~ ~ ~     

(CORE-4864)     CREATE DATABASE fails in isql

fixed by A. Peshkov

    ~ ~ ~     

(CORE-4870)     In isql, SET COUNT ON reports the wrong number of affected rows when issuing UPDATE on a view which was created WITH CHECK OPTION

fixed by A. dos Santos Fernandes

    ~ ~ ~     

Prev: Firebird 3.0 Release Candidate 2: Bug Fixes and Minor ImprovementsFirebird Documentation IndexUp: Bugs FixedNext: Firebird 3.0 Second Beta Release: Bug Fixes
Firebird Documentation IndexFirebird 3.0.2 Release NotesBugs Fixed → Firebird 3.0 Release Candidate 1: Bug Fixes and Minor Improvements