Firebird Documentation Index → Firebird 1.5.6 Release Notes → Bugfixes and Additions since Release 1.0 |
Table of Contents
The figure in brackets, e.g. (1.5) indicates the first release or sub-release in which the described improvement or bug-fix was distributed.
By O. Mascia
(1.5) Enhanced Win32 install tools instsvc.exe and instreg.exe
By A. Harrison, ported to 1.5 by N.Samofatov
(1.5) Maximum number of indices per table increased from 64 to (DB_PAGE_SIZE/16)-2
By D. Yemanov, A. Brinkman, A. Peshkoff
(1.5) Added new (more specific) error messages for some of v1.5 changes.
By A. Peshkoff
(1.5) Added -login switch to instsvc allowing FB service to be installed as non-localsystem account.
By D. Yemanov
(1.5) Re-introduced trimming of VARCHAR fields in the remote protocols.
By A. Peshkoff
(1.5) Made path management in firebird.conf conform to the OS requirements.
By N. Samofatov
(1.5) Allow easy adjustment of LockSemCount on POSIX platforms, without need to use gds_drop or reboot machine to make new setting take effect
By N. Samofatov
(1.5) Make FIRST/SKIP keywords non-reserved.
By D. Yemanov
(1.5) BREAK/LEAVE and EXIT statements are now available for usage in triggers.
By A. Brinkman
(1.5) Enabled aggregate functions from different parent context to be used inside another aggregate function.
Example:
SELECT MAX((SELECT COUNT(*) FROM RDB$RELATIONS)) FROM RDB$RELATIONS
By N. Samofatov, D. Yemanov
(1.5) Make UPPER function work for WIN1251 charset without explicit collations.
By A. Peshkoff
(1.5) Now the server will exit from encountering a missing or wrong firebird.conf by sending an error report to the system log.
By D. Yemanov
(1.5) Changed parser.-
ROWS_AFFECTED is renamed to ROW_COUNT
CONNECTION_ID/TRANSACTION_ID are renamed to CURRENT_CONNECTION/CURRENT_TRANSACTION
Some of the newly introduced tokens are made non-reserved
By N. Samofatov
(1.5) Deadlocks are now detected and reported as soon all blocking processes received notifications, i.e. instantly in all normal cases.
By A. Peshkoff
(1.5) Implemented configurable access for databases, external tables and UDF libraries.
By D. Yemanov, N. Samofatov
(1.5) Allow NULLs in unique constraints and indices (SQL-99 spec).
By N. Samofatov
(1.5) VIO undo log now uses B+ tree to store savepoint record data. It improves performance when doing multiple updates of record in a single transaction just a little (usually 2-3 orders of magnitude for 100000 records).
By A. Peshkoff
(1.5) Now it's possible to return values from the dynamic SQL using the INTO <variables> syntax.
Syntax:
EXECUTE STATEMENT <value> INTO <var_list>; (singleton form)
or
FOR EXECUTE STATEMENT <value> INTO <var_list> DO <stmt_list>;
By A. Brinkman
(1.5) Subselects in SET clause of UPDATE now can use indices.
(1.5)When an equal-node and other nodes (geq, leq, between...) are available for an index retrieval, then prefer the equal node.
(1.5) Better optimizations of "complex" JOIN queries (LEFT JOIN, views, SPs, etc).
By N. Samofatov
(1.5) List of currently active transactions is now available via isc_database_info call.
By Mike Nordell
(1.5) Implemented shortcut boolean evaluation. Behaviour is controlled by "CompleteBooleanEvaluation" option of firebird.conf. Default is 0 (shortcut evaluation).
By Mike Nordell
(1.5) Speed-up for index operations on IA32 CPU architecture.
By Blas Rodriguez Somoza, Erik Kunze
(1.5) Removed a lot of unused code.
By Blas Rodriguez Somoza
(1.5) Changed behaviour of the forced writes mode: now, if FW=off (disabled), you can control how often dirty pages are flushed on disk (allows better reliability when FW is disabled on Win32 platforms).
By D. Yemanov
(1.5) The security database has been renamed to security.fdb and this version of Firebird has a new configuration file (firebird.conf).
By Juan Guerrero
(1.5) New user-defined functions LPAD and RPAD added to IB_UDF library.
By D. Yemanov
(1.5) Connection to the security database is now cached, thus allowing to decrease time of subsequent database attachments.
By D. Yemanov
(1.5) 1. Reduce memory usage by the server.
(1.5) 2. Direct external I/O when the memory is not available for the sorting.
(1.5) 3. Increased number of streams and predicates supported by the optimizer.
By Blas Rodriguez Somoza
(1.5) New character sets: DOS737, DOS775, DOS858, DOS862, DOS864, DOS866, DOS869, WIN1255, WIN1256, WIN1257, ISO8859_3, ISO8859_4, ISO8859_5, ISO8859_6, ISO8859_7, ISO8859_8, ISO8859_9, ISO8859_13. No collations are available yet for these charsets.
By D. Yemanov
(1.5) Disallowed PLAN subclause.
By A. Brinkman
(1.5) Introduced backwards compatibility within aggregates. Deepest field inside aggregate determines where an aggregate-context should belong.
By D. Yemanov
(1.5) IB7-compliant functions to return version of the client library--isc_get_client_version(), isc_get_client_major_version(), isc_get_client_minor_version()
By D. Yemanov
(1.5) Merging (SORT MERGE plans) is now done via in-memory sorting module.
By N. Samofatov
(1.5) New memory manager's internals have been changed to give us better performance.
By D. Yemanov
(1.5) Changes.-
Changed names of USER32 objects to allow the server to run simultaneously with IB/FB1.
Map name for local (IPC) protocol is changed, so v1.5 client library is no longer compatible with the previous versions via IPC.
All transport protocol names (INET port and service, WNET pipe, IPC map) are now configurable via firebird.conf.
By D. Yemanov
(1.5) Added runtime action checks (INSERTING/UPDATING/DELETING predicates).
Example
if (INSERTING) then new.OPER_TYPE = 'I'; else new.OPER_TYPE = 'U';
By N. Samofatov
(1.5) Allowed arbitrary expressions in the ORDER BY clause.
By A. Peshkoff, N. Samofatov
(1.5) Cleaned up structures within Y-valve.
By D. Yemanov
(1.5) Single-line comments (--) are now allowed in any position of the SQL statement.
By D. Yemanov
(1.5) Changes --
Implemented ORDER BY clause in subqueries.
Disallowed FIRST/SKIP for views.
Allowed zero as valid argument for FIRST.
By A. Brinkman
(1.5) Improvement: let subqueries also use indices when their parent is a stored procedure.
By D. Yemanov
(1.5) Removed request size limitation.
By N. Samofatov
(1.5) Nulls first/last options for indexes.
By N. Samofatov
(1.5) Collation handling in "order by" clause of unions.
By Erik Kunze, Ignacio J. Ortega, D. Sibiryakov
(1.5) Renamings, new safe macros, support for mingw.
By N. Samofatov
(1.5) Explicit record locking implementation finalized. Should be stable and consistent now.
By A. Brinkman
(1.5) Improvement: better handling of AND nodes inside an OR node.
By D. Yemanov
(1.5) If a few indices with much different selectivity could be used for index retrieval, only better of them are used while others are ignored.
By D. Yemanov
(1.5) CS architecture is now supported on Win32, but it still cannot be considered stable, so any feedback is welcome.
By N. Samofatov
(1.5) Stored procedures are no longer recompiled before deletion.
By D. Yemanov
(1.5) New collation for WIN1251 charset: WIN1251_UA for both Ukrainian and Russian languages.
By D. Yemanov
(1.5) API routines are no longer exported by ordinals.
By D. Yemanov
(1.5) Enable the same plain file based configuration for all supported platforms.
By A. Brinkman
(1.5) Added better support for using indices with "OR". Pick the best available compound index from all "AND" nodes.
Added support for detecting use of index with sub-selects in aggregate select.
By N. Samofatov
(1.5) Added support for explicit savepoint management in DSQL.
By Sean Leyne
(1.5) IPX/SPX network protocol is no longer supported.
By Sean Leyne
(1.5) Some platform are no longer supported by the current source code. DELTA, IMP, DG_X86, M88K, UNIXWARE, Ultrix, NeXT, ALPHA_NT, DGUX, MPE/XL, DecOSF, SGI, HP700, Netware, MSDOS, SUN3_3.
By A. Peshkoff
(1.5) : now the server should be more responsive under heavy load.
By N. Samofatov
(1.5) Added support for explicit locking. Wait behavior in isc_tpb_wait transaction modes is not stable yet.
Syntax
SELECT <...> [FOR UPDATE [OF col [, col ...]] [WITH LOCK]]
By Erik Kunze
(1.5) ISC_STATUS_LENGTH and MAXPATHLEN macros.
By D. Yemanov
(1.5) PSQL: enabled support for empty BEGIN...END blocks.
By D. Yemanov
(1.5) Implemented execute procedure and string concat, allowing any expression to be used as a SP parameter.
By D. Yemanov
(1.5) Aggregate concatenated empty char.
By D. Yemanov
(1.5) New ROWS_AFFECTED system variable in PSQL: return number of rows affected by the last INSERT/UPDATE/DELETE statement. For any other statement than INSERT/UPDATE/DELETE, result is always zero.
By D. Yemanov
(1.5) Dynamic exception messages: allow to throw an exception with a message different to the one the exception was created with.
Syntax
EXCEPTION name [value];
By D. Yemanov
(1.5) New SQLCODE and GDSCODE system variables providing access to the code of the caught error within the WHEN-block in PSQL. Outside WHEN-block, returns 0 (success).
Exception re-initiate semantics: allows an already caught exception in PSQL to be re-thrown from the WHEN-block.
Syntax
EXCEPTION;
No effect outside WHEN-block.
By N. Samofatov
(1.5) Allow user-defined ordering of NULLs.
(1.5) SOFTWARE\FirebirdSQL\Firebird
By D. Yemanov
(1.5) User-defined constraint index names: allows name of an index enforcing a constraint to be either the same as the constraint name or any user-defined name.
By D. Yemanov
(1.5) New RECREATE VIEW statement, shorthand for DROP VIEW / CREATE VIEW coupling of statements.
Syntax
RECREATE VIEW name <view_definition>;
By various authors
(1.5) Renamed distribution files to make sure we're Firebird. Now they're fbserver, fbclient, firebird.msg etc. The client library is fbclient now and it should be used in all new FB-based projects.
By D. Yemanov, N. Samofatov
(1.5) Added new system indices (RDB$INDEX_41, RDB$INDEX_42, RDB$INDEX_43), now ODS version is 10.1.
By D. Yemanov
(1.5) New CREATE OR ALTER statement for triggers and stored procedures, allows creating or altering a database object according to whether it exists or not.
Syntax
CREATE OR ALTER name <object_definition>;
By Claudio Valderrama
(1.5) Simplify syntax and allow declaring and defining variable at the same time.
Syntax
DECLARE [VARIABLE] name <variable_type> [{'=' | DEFAULT} value];
Example
DECLARE my_var INTEGER = 123;
By A. Brinkman
(1.5) Enhanced grouping: allow to GROUP BY internal functions and subqueries. Also allow to GROUP BY ordinal (i.e. column position, a.k.a degree of column in output set).
By A. Brinkman
(1.5) New COALESCE internal function allowing a column value to be calculated by a number of expressions, the first expression returning a non NULL value is returned as the column value.
By A. Brinkman
(1.5) New NULLIF internal function returns NULL for a sub-expression if it has a specific value, otherwise returns the value of the sub-expression.
By A. Brinkman
(1.5) New CASE internal function allows the result of a column to be determined by a the results of a case expression.
By M. O'Donohue
(1.5) Command history retrieval (like Unix readline
) added to ISQL.
By D. Yemanov
(1.5) New BIGINT datatype allowing native SQL usage of 64-bit exact numerics (Dialect 3 only).
By D. Yemanov
(1.5) Universal triggers allowing one trigger to be fired for a number of action types.
By D. Yemanov
(1.5) New CONNECTION_ID and TRANSACTION_ID system available in PSQL. Return appropriate internal identifier stored on the database header page.
By D. Yemanov
(1.5) Server-side database aliases: attach to any database using an "alias" name instead of its physical pathname. The list of known database aliases is stored in aliases.conf file under the server installation root.
Example
Alias entry in the configuration file:
my_database = c:\dbs\my\database.gdb
Connection string in application:
localhost:my_database
By John Bellardo
(1.5) New plugin manager and INTL interface.
By D. Yemanov
(1.5) If SORT plan is used for a SQL statement, the sorting is done in memory. If there's not enough memory for this operation, reverts to old method using temporary file.
By A. Peshkoff
(1.5) New EXECUTE STATEMENT PSQL extension statement allows execution of dynamic SQL statements in SPs/triggers.
By Sean Leyne, Erik Kunze
(1.5) Major code cleanup.
By John Bellardo
(1.5) New memory manager.
By Mike Nordell, John Bellardo
(1.5) New exception handling logic.
By John Bellardo, M. O'Donohue, Erik Kunze
(1.5) New autoconf-based build configuration.
By
(1.5) The code port from C to C++.
fixed by A. Brinkman
Compound index key mangling exhibited a bug. Now fixed.
fixed by A. Brinkman
Unnecessary evaluation was being performed on the last argument of the COALESCE function.
fixed by A. Brinkman
Using search parameters in a SUM() operation would return incorrect results
fixed by A. Brinkman
UPDATE with a CASE expression involving parameters would throw an SQLCode -804 exception ("Data type unknown").
fixed by A. Brinkman
COALESCE/CASE displayed a bug regarding BLOB sub-type.
fixed by V. Horsun
The wrong error was being detected when a write failure occurred. (v.1.5 Regression.) Fix was back-ported from Firebird 2 HEAD.
fixed by D. Yemanov
An access violation could occur in fcblient.dll v1.5.2 on disconnecting. (v.1.5.2 Regression.) Fix back-ported from Firebird 2 HEAD.
fixed by D. Yemanov
Generators were being initialized with garbage values on restoring from a metadata-only backup. (v.1.5.1 regression.) Fix backported from Firebird 2 HEAD.
fixed by D. Yemanov
User savepoints were not being released when commit retaining was issued. Fix back-ported from Firebird 2 HEAD.
fixed by C. Valderrama
Back-ported some isql fixes from Firebird 2 HEAD:
Another fix for the -b (Bail On Error) option when SQL commands are issued and no database connection yet existed.
Applied Miroslav Penchev's patch for a bug discovered by Ivan Prenosil, where the -Q switch would always return 1 to the operating system.
Fixed a conflict between single-line and block comments.
fixed by D. Yemanov
If a table contained a computed column of BLOB or ARRAY type, the first column of the table could be zeroed during a restore. Fix back-ported from Firebird 2 HEAD.
fixed by C. Valderrama, D. Yemanov
The server would lock up if a request to attach to security.fdb was unsuccessful. (v.1.5 regression.) Fix back-ported from Firebird 2 HEAD.
fixed by C. Valderrama
The fbudf function AddMonth()
exhibited wrong behaviour when facing January. Fix
back-ported from Firebird 2 HEAD.
fixed by A. Peshkoff
The FOR EXECUTE STATEMENT ... DO SUSPEND
construct in PSQL was exhibiting
problems. Fix back-ported from Firebird 2 HEAD.
fixed by N. Samofatov
Bugchecks were being exhibited on AMD64 (and possibly other platforms) when a database was copied, rather than migrated using backup/restore. Fix back-ported from Firebird 2 HEAD.
fixed by A. Peshkoff
There were issues with descending indices used in referential constraints. Fix back-ported from Firebird 2 HEAD.
fixed by A. Brinkman
An equality search on the first segment of a compound index, if it was an integer type, would result in redundant additional scans on specific values (2^n, e.g. 131072). Fix back-ported from Firebird 2 HEAD.
fixed by D. Yemanov
Comparisons between strings in character set NONE and another character set would cause an error. (V. 1.5.2 regression.)
Firebird Documentation Index → Firebird 1.5.6 Release Notes → Bugfixes and Additions since Release 1.0 |