Firebird Documentation IndexFirebird 2.0.6 Release NotesBugs Fixed → Firebird 2.0
Firebird Home Firebird Home Prev: Bugs FixedFirebird Documentation IndexUp: Bugs FixedNext: Firebird 2.0 Series Project Teams

Firebird 2.0

General Engine Bugs
Services Manager
GFix Bugs
DSQL Bugs
PSQL Bugs
Crash Conditions
Remote Interface Bugs
Indexing & Optimization
Vulnerabilities
ISQL Bugs
International Character Set Bugs
SQL Privileges
UDF Bugs
gbak
gpre
gstat
fb_lock_print
Linux Installs
Code Clean-up
Platform-specific

The following bugs present in Firebird 1.5 were fixed in v.2.0. Note that, in many cases, the bug-fixes were backported to Firebird 1.5.x sub-releases.

General Engine Bugs

(CORE-911)    Leaving a Classic server process idle for a long period while a read-only, Read Committed transaction was active could cause segmentation faults/AVs.

fixed by V. Horsun

    ~ ~ ~     

(CORE-902)    The server could crash intermittently during execution of DDL or DML statements.

fixed by V. Horsun

    ~ ~ ~     

Not registered    Assignments to columns deleted by a concurrent transaction were being improperly allowed.

fixed by D. Yemanov

    ~ ~ ~     

Not registered    Error "invalid transaction handle" would be thrown when calling isc_array_lookup_bounds() from multiple threads.

fixed by D. Yemanov

    ~ ~ ~     

Not registered    Heavy concurrent load could cause index data corruption.

fixed by V. Horsun

    ~ ~ ~     

SF #1446987    BLOBs could appear to be damaged during operations in PSQL, causing a "BLOB not found" error.

fixed by V. Horsun

    ~ ~ ~     

SF #1434147    Bugs with COUNT (DISTINCT XXXX) when XXXX was a high integer.

fixed by V. Horsun

    ~ ~ ~     

SF #1435997    A bug was causing a close database error -901 on the embedded server.

fixed by D. Yemanov

    ~ ~ ~     

SF #1436066    Adding an index during database activity could cause logical errors in structure that GFIX would detect.

fixed by V. Horsun

    ~ ~ ~     

Not registered    A few types of subqueries were being wrongly treated as variant, causing performance issues.

fixed by D. Yemanov

    ~ ~ ~     

Not registered    Previously, the Transaction ID would silently (and dangerously) overflow. Now it will throw a consistency check when it reaches the limit (which is still 2^31).

fixed by V. Horsun

    ~ ~ ~     

Not registered    Read committed transactions would block garbage collection unnecessarily.

fixed by V. Horsun

    ~ ~ ~     

Not registered    The ALL predicate could return wrong results.

fixed by D. Yemanov

    ~ ~ ~     

SF #1404157    DFW was not ready for RECREATE TABLE/VIEW

fixed by D. Yemanov

    ~ ~ ~     

Not registered    Restored the code which replaces ROLLBACK with COMMIT if a transaction has not modified any data.

fixed by D. Yemanov

    ~ ~ ~     

Not registered    There were some bugs producing wrong statistics:

  • with relation/index data longer than 2^32 bytes

  • when the average index key length rounded to an integer value

fixed by V. Horsun

    ~ ~ ~     

Not registered    Attaching with the isc_dpb_no_garbage_collect option was forcing a sweep.

fixed by V. Horsun

    ~ ~ ~     

Not registered    The system transaction was being reported as dead.

fixed by A. dos Santos Fernandes, V. Horsun

    ~ ~ ~     

Not registered    The server would lock up after an unsuccessful attach to the security database.

fixed by D. Yemanov, C. Valderrama

    ~ ~ ~     

SF #1076858    Source of possible corruption in Classic server.

fixed by V. Horsun

    ~ ~ ~     

SF #1116809    Incorrect data type conversion.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

SF #1111570    Problem dropping a table having a check constraint referencing more than one column.

fixed by C. Valderrama

    ~ ~ ~     

Not registered    Usage of an invalid index in an explicit plan caused garbage to be shown in the error message instead of the rejected index name.

fixed by C. Valderrama

    ~ ~ ~     

SF #543106    Bug with ALL keyword. MORE INFO REQUIRED.

fixed by D. Yemanov

    ~ ~ ~     

Not registered    System users "AUTHENTICATOR" and "SWEEPER" were lost, causing "SQL SERVER" to be reported instead.

fixed by A. Peshkov

    ~ ~ ~     

Not registered    Don't rollback prepared 2PC sub-transaction. (Description needs clarifying, Vlad!)

fixed by V. Horsun

    ~ ~ ~     

Not registered    Memory consumption became exorbitant when blobs were converted from strings during request processing. For example, the problem would appear when running a script with a series of statements like

   insert into t(a,b)
      values(N, <literal_string>);
    

when b was blob and the engine was performing the conversion internally.

fixed by N. Samofatov

    ~ ~ ~     

Not registered    Materialization of BLOBs was not invalidating temporary BLOB IDs soon enough.

A blob is created as an orphan. This blob has a blob id of {0,slot}. It is volatile, meaning that, if the connection terminates, it will become eligible for garbage collection. Once a blob is assigned to field in a table, it is said to be materialized. If the transaction that did the assignment commits, the blob has an anchor in the table and will be considered permanent. Its blob id is {relation_id,slot}.

In situations where internal code is referencing the blob by its old, volatile blob id, the references are "routed" to the materialized blob, until the session is closed.

fixed by N. Samofatov

Solution    Now, the references to a volatile blob are checked and, when there are no more references to it, it is invalidated.

    ~ ~ ~     

Not registered    Conversion from string to blob had a memory leak.

fixed by N. Samofatov

    ~ ~ ~     

SF #750664    Issues with read-only databases and transactions.

fixed by N. Samofatov

    ~ ~ ~     

Not registered    When one classic process dropped a foreign key and another process was trying to delete master record, the error 'partner index not found' would be thrown.

fixed by V. Horsun

    ~ ~ ~     

Various server bugs    

  1. eliminated redundant attempts to get an exclusive database lock during shutdown

  2. corrected inaccurate timeout counting

  3. database lock was not being released after bringing database online in the exclusive mode

  4. removed a 5 sec timeout when bringing database online in the shared mode

fixed by D. Yemanov

    ~ ~ ~     

SF #1186607    Foreign key relation VARCHAR <-> INT should not have caused an exception.

fixed by V. Horsun

    ~ ~ ~     

SF #1211325    Fixed problems with BLOBs in external tables.

fixed by V. Horsun

    ~ ~ ~     

Not registered    After an attempt to "create view v(c1) as select 1 from v" all clones of the system request would remain active forever.

fixed by A. Peshkov

    ~ ~ ~     

SF #1191006    Use of WHERE params in SUM would return incorrect results.

fixed by A. Brinkman

    ~ ~ ~     

SF #750662    Fixed a bug involving multiple declaration of blob filters.

fixed by D. Yemanov

    ~ ~ ~     

SF #743679    FIRST / SKIP was not as well implemented as it could be.

fixed by D. Yemanov

    ~ ~ ~     

Not registered    CPU load would rise to 100% when an I/O error caused a rollover to a non-existent shadow.

fixed by D. Yemanov

    ~ ~ ~     

Not registered    "Cannot find record fragment" bugcheck could occur during garbage collection on the system tables.

fixed by V. Horsun

    ~ ~ ~     

SF #1211328    Error reporting cited maximum BLOB size wrongly.

fixed by D. Yemanov

    ~ ~ ~     

SF #1292007    Duplicated field names in INSERT and UPDATE statements were getting through.

fixed by C. Valderrama

    ~ ~ ~     

Not registered    The SQL string was being stored truncated within the RDB$*_SOURCE columns in some cases

fixed by D. Yemanov

    ~ ~ ~     

Not registered    Broken implementation of the MATCHES predicate in GDML

fixed by D. Yemanov

    ~ ~ ~     

SF bug #1404215    Column dependencies were not being stored for views.

fixed by D. Yemanov

    ~ ~ ~     

SF bug #1191206    A few constraint issues.

fixed by D. Yemanov

    ~ ~ ~     

SF bug #609538    Alter Index on a Foreign Key index should cause an exception and it did, but the error message was not appropriate.

fixed by D. Yemanov

    ~ ~ ~     

SF bug #1175157    An error in the thread scheduler was causing the server to lock up.

fixed by V. Horsun

    ~ ~ ~     

Not registered    

  1. Improper thread data operations were occurring during the protocol port cleanup

  2. Transaction rollback and attachment cleanup for broken TCP connections was faulty

fixed by V. Horsun, D. Yemanov

    ~ ~ ~     

Not registered    A wrong error message was decoded when firebird.msg was missing or outdated.

fixed by D. Yemanov

    ~ ~ ~     

Not registered    Buffer overflows inside the BLR->ASCII blob filter were causing memory corruption and server crashes.

fixed by D. Yemanov

    ~ ~ ~     

Not registered    A successful status vector could be reported to the user after a failed DDL operation.

fixed by V. Horsun

    ~ ~ ~     

Not registered    Threading issues in the DSQL metadata cache were causing unexpected “invalid transaction handle” errors under load.

fixed by D. Yemanov

    ~ ~ ~     

Not registered    Wrong results would be returned by the division operation after DDL changes.

Example

  create table test(fld numeric(18, 2));
  insert into test (fld) values (1);
  commit;
  alter table test alter fld type numeric(18,3);
  select fld/3 from test; -- returns 0.033 instead of expected 0.333
    

fixed by D. Yemanov

    ~ ~ ~     

SF #1184099    Incorrect padding was exhibited when using character set OCTETS.

fixed by C. Valderrama, A. dos Santos Fernandes

    ~ ~ ~     

Not registered    Unexpected errors were occurring because of improperly handled dead record versions created by the system transaction during DDL operations.

fixed by A. Harrison

    ~ ~ ~     

SF #223060    Processing of the GREATER-THAN operator was too slow.

fixed by V. Horsun

    ~ ~ ~     

Not registered    CHECK constraints were not SQL-compliant with regard to the handling of NULL. Until now, if NULL were to be allowed, it had to be specified explicitly in the constraint definition. Under the standard, NULL is allowed unless explicitly constrained by NOT NULL or CHECK (.. IS NOT NULL).

Example of Problem

The following definition now allows NULL in DEPTNO, where previously it did not:

    CHECK (DEPTNO IN (10, 20, 30))
    

fixed by P. Ruizendaal, D. Yemanov

    ~ ~ ~     

Not registered    It was possible to create a primary key constraint on a column consisting of NULLs.

Example of Problem

    create table bug (f1 int not null, f2 int not null);
    insert into bug (f1, f2) values (1, 1);
    commit;
    alter table bug add pk int not null primary key;
    

fixed by V. Horsun

    ~ ~ ~     

SF #1334034    REVOKE was damaging the ACL (Access Control List).

fixed by D. Yemanov

    ~ ~ ~     

Services Manager

Not registered    Incorrect encryption of password when the Services Manager was invoked by the Embedded client.

fixed by A. Peshkov

    ~ ~ ~     

GFix Bugs

SF #1242106    Shutdown bugs:

  1. Incorrect commit instead of rollback during shutdown

  2. Crash or bugcheck during SuperServer shutdown with active attachments

fixed by D. Yemanov

    ~ ~ ~     

Not registered    Crash occurred in service gfix code when it tried to reattach to a currently unavailable database. Since a service cannot interact with the end-user, an endless loop leads to overflowing the service buffer and causing a crash as a result.

fixed by V. Horsun

    ~ ~ ~     

DSQL Bugs

SF #1408079    The parser was not validating string literal markers.

fixed by C. Valderrama

    ~ ~ ~     

Not registered    The engine would fail to parse the SQL ROLE keyword properly.

fixed by C. Valderrama

    ~ ~ ~     

Not registered    EXECUTE PROCEDURE did not check SQL permissions at the prepare stage.

fixed by D. Yemanov

    ~ ~ ~     

SF #217042    Weird SQL constructions are not always properly validated.

Partly fixed by C. Valderrama

    ~ ~ ~     

SF #1108909    View could be created without rights on a table name like "a b"

fixed by C. Valderrama

    ~ ~ ~     

SF #512975    Clear embedded spaces and CR+LF before DEFAULT clauses when storing them in system tables

Implemented by C. Valderrama

    ~ ~ ~     

SF #910423    Anomaly with ALTER TABLE altering a column's type to VARCHAR, when determining valid length of the string.

  SQL> CREATE TABLE tab ( i INTEGER );
  SQL> INSERT INTO tab VALUES (2000000000);
  SQL> COMMIT;

  SQL> ALTER TABLE tab ALTER i TYPE VARCHAR(5);
  Statement failed, SQLCODE = -607
  unsuccessful metadata update
  -New size specified for column I must be at least 11 characters.
    

i.e., it would need potentially 10 characters for the numerals and one for the negative sign.

  SQL> ALTER TABLE tab ALTER i TYPE VARCHAR(9);
    

This command should fail with the same error, but it did not, which could later lead to unreadable data:

  SQL> SELECT * FROM tab;
  I
  =========
  Statement failed, SQLCODE = -413
  conversion error from string "2000000000"
    

fixed by C. Valderrama

    ~ ~ ~     

Not registered    There were some rounding problems in date/time arithmetic.

fixed by N. Samofatov

    ~ ~ ~     

Not registered    Line numbers in DSQL parser were being miscounted when multi-line literals and identifiers were used.

fixed by N. Samofatov

    ~ ~ ~     

SF #784121    Some expressions in outer join conditions were causing problems.

fixed by C. Valderrama

    ~ ~ ~     

Not registered    There were some dialect- specific arithmetic bugs:

Dialect 1

  1. '1.5' / '0.5' did not work

  2. avg ('1.5') did not work

  3. 5 * '1.5' produced an INT result instead of DOUBLE PRECISION

  4. sum ('1.5') produced a NUMERIC(15, 2) result instead of DOUBLE PRECISION

  5. - '1.5' did not work

Dialect 3

  • '1.5' * '0.5' and '1.5' / '0.5' were not forbidden, but they should have been.

fixed by D. Yemanov

    ~ ~ ~     

SF #1250150    There was a situation where a procedure could not be dropped.

fixed by V. Horsun

    ~ ~ ~     

SF #1238104    Internal sweep report was incorrect.

fixed by C. Valderrama

    ~ ~ ~     

SF #1371274    The infamous “Datatype unknown” error when attempting some castings has been eliminated. It is now possible to use CAST to advise the engine about the data type of a parameter.

fixed by D. Yemanov

    ~ ~ ~     

SF #1292106    ORDER BY with FOR UPDATE WITH LOCK would trash the index.

fixed by D. Yemanov

    ~ ~ ~     

SF #1368741    UPPER() was returning wrong results.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

PSQL Bugs

(CORE-921)    A bug in EXECUTE STATEMENT implementation could cause a core dump during PSQL execution.

fixed by A. Peshkov

    ~ ~ ~     

SF #1422471    A memory leak was exhibited in EXECUTE STATEMENT.

fixed by A. Peshkov

    ~ ~ ~     

Not registered    ROW_COUNT was getting cleared after SUSPEND execution.

fixed by D. Yemanov

    ~ ~ ~     

SF #1124720    Problem with "FOR EXECUTE STATEMENT ... DO SUSPEND;"

fixed by A. Peshkov

    ~ ~ ~     

Not registered    Memory leakage was occurring when selectable stored procedures were called from PSQL or in subqueries.

fixed by N. Samofatov

    ~ ~ ~     

Not registered    The wrong error would be reported when non-active contexts were accessed in multi-action triggers.

fixed by D. Yemanov

    ~ ~ ~     

Not registered    An internal error was reported when attempting to pass/return blobs to/from string functions inside PSQL.

fixed by D. Yemanov

    ~ ~ ~     

Crash Conditions

Not registered    A crash could occur if some bad client passed more than the supported number of remote protocol versions.

fixed by A. Karyakin, A. Peshkov

    ~ ~ ~     

Not registered    An AV could occur when the server was configured to use TCP packets as large as 32 Kb.

fixed by C. Valderrama, A. Peshkov

    ~ ~ ~     

Not registered    Server would crash if a positioned UPDATE/DELETE executed via DSQL was referencing a cursor that had already been released.

fixed by V. Horsun

    ~ ~ ~     

Not registered    Certain DDL actions could crash the server.

Example of a problem action

    alter table rdb$relations
      add rdb$garbage varchar(30);
    

fixed by J. Starkey

    ~ ~ ~     

Not registered    An overflow in the plan buffer would cause the server to crash.

fixed by D. Yemanov

    ~ ~ ~     

Not registered    Possible server lockup/crash when 'RELEASE SAVEPOINT xxx ONLY' syntax is used or when existing savepoint name is reused in transaction context

fixed by N. Samofatov

    ~ ~ ~     

Not registered    Rare client crashes caused by improperly cleaned XDR packets.

fixed by D. Yemanov

    ~ ~ ~     

Not registered    Server crash during SuperServer shutdown

fixed by A. Peshkov

    ~ ~ ~     

SF #1057538    The server would crash if the output parameter of a UDF was not the last parameter.

fixed by C. Valderrama

    ~ ~ ~     

Not registered    A number of possible server crash conditions had been reported by Valgrind.

fixed by N. Samofatov

    ~ ~ ~     

Not registered    Server would crash when a wrong type or domain name was specified when changing the data type for a column.

fixed by N. Samofatov

    ~ ~ ~     

Not registered    Incorrect accounting of attachment pointers used inside the lock structure was causing the server to crash.

fixed by N. Samofatov

    ~ ~ ~     

Not registered    In v.1.5, random crashes would occur during a restore.

fixed by J. Starkey

    ~ ~ ~     

Not registered    Crash/lock-up with multiple calls of isc_dsql_prepare for a single statement.

fixed by N. Samofatov

    ~ ~ ~     

Not registered    Server would crash when the system year was set too high or too low.

fixed by D. Yemanov

    ~ ~ ~     

Not registered    Server would crash when the stream number exceeded the limit.

fixed by D. Yemanov

    ~ ~ ~     

Not registered    Server would crash when outer aggregation was performed and explicit plans were used in subqueries.

fixed by D. Yemanov

    ~ ~ ~     

Not registered    DECLARE FILTER would cause the server to crash.

fixed by A. Peshkov

    ~ ~ ~     

Not registered    The server would crash when a PLAN for a VIEW was specified but no table alias was given.

fixed by V. Horsun

    ~ ~ ~     

Not registered    Server would crash during the table metadata scan in some cases.

fixed by D. Yemanov

    ~ ~ ~     

Not registered    Server would crash when too big a key was specified for an index retrieval.

fixed by D. Yemanov

    ~ ~ ~     

Not registered    Server would crash when manipulating input DPB due to memory corruption in Parameter Blocks management.

fixed by C. Valderrama

    ~ ~ ~     

Not registered    Server would crash when attempting to restore a database backup with corrupted VARCHAR data.

fixed by D. Yemanov

    ~ ~ ~     

Remote Interface Bugs

Not registered    A TCP/IP buffer size larger than 32 Kb was not being processed correctly.

fixed by A. Peshkov

    ~ ~ ~     

Not registered    The NO_NAGLE option was working improperly.

fixed by F. Polizo, A. Peshkov

    ~ ~ ~     

Not registered    NO_NAGLE and KEEPALIVE socket options were not enabled for CS builds.

fixed by D. Yemanov

    ~ ~ ~     

SF #1385092    A TCP/IP connection would appear to freeze the Superserver if it was disconnected abnormally while a large packet, e.g. a BLOB or a large SQL request, was being passed across the interface.

This was a long-standing InterBase/Firebird bug in the implementation of the protocol layer for Superserver on Windows. Borland invented two different thread management strategies: one for TCP/IP and one for the other protocols that only Windows supports, i.e. Named Pipes (sometimes referred to as “NetBEUI”) and the IPServer local connection. This bug occurred only with TCP/IP connections.

For TCP/IP, a multiplexing loop (main server loop), which is common for all ports, receives API packets from clients, creates requests and sends them to threads for processing. When it detects an incoming packet, it starts to receive it from the port.

Before this fix, it needed the entire API packet to come at once. However, in the course of converting a packet to a request (done by the XDR protocol), in cases where the size of the API packet happened to be greater than that of the network packet, the server had to wait for the next network packet from the port.

At this point, ports were being scanned for incoming packets only by calculating (timeout - interval since last packet received) for each port in the loop. If the next packet from a particular port did not come, for example because of an unplugged jack, the only way to interrupt this receive and allow the main server loop to carry on processing the other ports was to wait for the keepalive TCP timeout to elapse on the abandoned connection. Given that the default keepalive value is two hours, it would appear that the Superserver was “hung”.

fixed by A. Peshkov

    ~ ~ ~     

SF #1260310    Nessus vulnerability scanning could cause the server to drop connections.

fixed by A. Peshkov

    ~ ~ ~     

SF #1065511    Clients on Windows XP SP2 were slow connecting to a Linux server.

fixed by N. Samofatov

    ~ ~ ~     

SF #1065511    Clients on Windows XP SP2 were slow connecting to a Linux server.

fixed by N. Samofatov

    ~ ~ ~     

SF #571026    INET/INET_connect: gethostbyname was not working properly.

fixed by D. Yemanov

    ~ ~ ~     

SF #223058    Multi-hop server capability was broken.

fixed by D. Yemanov

    ~ ~ ~     

Not registered    Fixed memory leak from connection pool in isc_database_info.

fixed by N. Samofatov

    ~ ~ ~     

Not registered    Database aliases were not working in WNET.

fixed by D. Yemanov

    ~ ~ ~     

Not registered    Client would crash while disconnecting with an active event listener.

fixed by D. Yemanov

    ~ ~ ~     

Not registered    The client library would not react to environment variables being set via SetEnvironmentVariable().

fixed by C. Valderrama

    ~ ~ ~     

Indexing & Optimization

SF #459059D    Index breaks = ANY result. MORE INFO REQUIRED.

fixed by N. Samofatov

    ~ ~ ~     

Not registered    Ambiguous queries were still possible under some conditions.

fixed by A. Brinkman

    ~ ~ ~     

SF #735720    SELECT ... STARTING WITH :v was wrong when :v = ''

fixed by A. Brinkman

    ~ ~ ~     

Not registered    There were issues with negative dates, i.e. those below Julian date [zero], when stored in indices.

fixed by A. Brinkman

    ~ ~ ~     

SF #1211354    Redundant evaluations were occurring in COALESCE.

fixed by A. Brinkman

    ~ ~ ~     

Not registered    Error "index key too big" would occur when creating a descending index.

fixed by V. Horsun

    ~ ~ ~     

SF #1242982    Bug in compound index key mangling.

fixed by A. Brinkman

    ~ ~ ~     

Vulnerabilities

SF #1466193    Semaphore array`s permissions in fb_lock_mgr were 0666 - i.e., anyone could lock them and block all subsequent queries.

fixed by A. Peshkov

    ~ ~ ~     

Not registered    Possible buffer overflow in WNET.

fixed by A. Peshkov

    ~ ~ ~     

Not registered    Several buffer overflows were fixed.

fixed by A. Peshkov

    ~ ~ ~     

SF #1155520    Fixed a vulnerability that could make it possible for a user who was neither SYSDBA nor owner to create a database that would overwrite an existing database.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

ISQL Bugs

SF #781610    Comments in ISQL using '--' were causing problems.

fixed by J. Bellardo, B. Rodriguez Samoza

    ~ ~ ~     

Not registered    ISQL_disconnect_database was overwriting the Quiet flag permanently.

fixed by M. Penchev, C. Valderrama

    ~ ~ ~     

SF #1208932    SHOW GRANT did not distinguish object types.

fixed by C. Valderrama

    ~ ~ ~     

SF #494981    Bad exception report.

fixed by C. Valderrama

    ~ ~ ~     

SF #450404    ISQL would uppercase role in the command line.

fixed by C. Valderrama

    ~ ~ ~     

Various, not registered    

  1. Fix for the -b (Bail On Error) option when SQL commands are issued and no db connection exists yet.

  2. Applied Miroslav Penchev's patch for bug with -Q always returning 1 to the operating system, discovered by Ivan Prenosil.

fixed by M. Penchev, C. Valderrama

    ~ ~ ~     

Not registered    Metadata extraction for triggers, check constraints and views with check option was wrong.

fixed by C. Valderrama, D. Yemanov

    ~ ~ ~     

International Character Set Bugs

SF #1016040    Missing external libraries would cause an engine exception.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

Not registered    

  1. Charset/collation issues for expression-based view columns

  2. Lost charset/collation for local PSQL variables

fixed by D. Yemanov

    ~ ~ ~     

Not registered    Comparisons between strings in NONE and another character set would cause an error.

fixed by D. Yemanov, A. dos Santos Fernandes

    ~ ~ ~     

SF #1244126    There was a problem updating some text BLOBs when connected with character set NONE.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

SF #1242379    Applying a collation could change a VARCHAR's length

fixed by A. dos Santos Fernandes

    ~ ~ ~     

SQL Privileges

Not registered    Permissions were not being checked for view columns.

fixed by D. Yemanov

    ~ ~ ~     

Not registered    Privileges granted to procedures/triggers/views were being preserved after the object had been dropped.

fixed by D. Yemanov

    ~ ~ ~     

Not registered    Column-level SQL privileges were being preserved after the affected column was dropped.

fixed by D. Yemanov

    ~ ~ ~     

SF #223128    SYSDBA could grant non-existent roles

fixed by D. Yemanov

    ~ ~ ~     

UDF Bugs

Not registered    There were thread safety issues in datetime functions of the FBUDF library.

fixed by C. Valderrama

    ~ ~ ~     

Not registered    The UDF AddMonth() in the UDF library FBUDF had a bug that displayed itself when the calculation rolled the month past the end of the year.

fixed by C. Valderrama

    ~ ~ ~     

Not registered    Diagnostics when a UDF module was missing/unusable needed improvement.

fixed by A. Peshkov

    ~ ~ ~     

Not registered    There were some problems with the mapping of UDF arguments to parameters.

fixed by N. Samofatov

    ~ ~ ~     

Not registered    UDF arguments were being prepared/optimized twice.

fixed by D. Yemanov

    ~ ~ ~     

SF #544132, #728839    Nulls handling in UDFs was causing problems.

fixed by C. Valderrama

    ~ ~ ~     

Not registered    UDF access checking was incorrect.

fixed by D. Yemanov

    ~ ~ ~     

gbak

Not registered    There were issues with restoring if indexes used in explicit plans inside PSQL code had been dropped.

fixed by A. dos Santos Fernandes

    ~ ~ ~     

Not registered    gbak could not restore a database containing broken foreign keys.

Now, the restore continues to run, the user gets a diagnostic indicating which FK caused the problem. The affected index becomes inactive and, after restore, the database is left in shutdown state.

fixed by A. Peshkov

    ~ ~ ~     

Not registered    gbak would stall when used via the Services Manager and an invalid command line was passed.

fixed by V. Horsun

    ~ ~ ~     

Not registered    A computed column of a blob or array type would zero values in the first column of the table being restored.

fixed by D. Yemanov

    ~ ~ ~     

Not registered    Fixed some backup issues with stream BLOBs that caused them to be truncated under some conditions.

fixed by N. Samofatov

    ~ ~ ~     

Not registered    Interdependent views caused problems during the restore process.

fixed by A. Brinkman

    ~ ~ ~     

SF #750659    If you want to start a fresh db, you should be able to restore a backup done with the metadata-only option. Generator values were resisting metadata-only backup and retaining latest values from the live database, instead of resetting the generators to zero.

fixed by C. Valderrama, D. Yemanov

    ~ ~ ~     

SF #908319    In v.1.5, wrong error messages would appear when using gbak with service_mgr.

fixed by V. Horsun

    ~ ~ ~     

SF #1122344    gbak -kill option would drop an existing shadow.

fixed by D. Yemanov

    ~ ~ ~     

Not registered     gbak was adding garbage bytes to the SPB when called in the -se[rvice_mgr] mode.

fixed by A. dos Santos Fernandes, C. Valderrama, V. Horsun

    ~ ~ ~     

gpre

SF #504978    gpre variable names were being truncated.

fixed by C. Valderrama

    ~ ~ ~     

SF #527677    gpre "ANSI85 compatible COBOL" switch was broken.

fixed by C. Valderrama

    ~ ~ ~     

SF #1103666    gpre was using inconsistent lengths

fixed by C. Valderrama

    ~ ~ ~     

SF #1103670    gpre would invalidate a quoted cursor name after it was opened.

fixed by C. Valderrama

    ~ ~ ~     

SF #1103683    gpre was not checking the length of the DB alias.

fixed by C. Valderrama

    ~ ~ ~     

SF #1103740    gpre did not detect duplicate quoted cursor names

fixed by C. Valderrama

    ~ ~ ~     

Not registered    gpre could not generate more than 32,000 identifiers.

fixed by A. Harrison

    ~ ~ ~     

gstat

Not registered    Error output by gstat on Windows 32 was incorrect.

fixed by C. Valderrama

    ~ ~ ~     

fb_lock_print

Not registered    fb_lock_print could fail, with an exception message “the requested operation cannot be performed on a file with a user-mapped section open.

fixed by V. Horsun

    ~ ~ ~     

Linux Installs

SF #1011401    The start/stop script was breaking halt/reboot on Slackware.

by A. Peshkov

    ~ ~ ~     

Code Clean-up

(Not a bug)    -L[ocal] command-line switch for SS on Win32 is gone

by D. Yemanov

    ~ ~ ~     

Assorted clean-up    

  • Extensive, ongoing code cleanup and style standardization

  • Broken write-ahead logging (WAL) and journalling code is fully cleaned out

by C. Valderrama

    ~ ~ ~     

Platform-specific

Not registered    (SuSE Linux) Service would not restart correctly on SuSE Linux.

by A. Peshkov

    ~ ~ ~     

(CORE-839)    (Windows) Instclient.exe failed to install gds32.dll over an existing version from V1.5.1 or later.

fixed by P. Reeves

    ~ ~ ~     

Prev: Bugs FixedFirebird Documentation IndexUp: Bugs FixedNext: Firebird 2.0 Series Project Teams
Firebird Documentation IndexFirebird 2.0.6 Release NotesBugs Fixed → Firebird 2.0