************** * v1.5.4 ************** * HPUX ports Changes committed to CVS to support Classic and SuperServer builds for HPUX11 Contributor(s): Paul Beach (pbeach at ibphoenix.com) * Fixed bug CORE-1051 Possible stack corruption in the deferred work handler Contributor(s): Vlad Horsun * Fixed bug CORE-1042 Transaction numbers can overflow 32-bit signed integer and corrupt database Contributor(s): Vlad Horsun * Fixed bug CORE-921 Core dump in stored procedure using execute statement Contributor(s): Alex Peshkov * Fixed bug CORE-966 Bug in socket binding for database events Contributor(s): Paul Beach Dmitry Yemanov * Fixed bugs CORE-157 and CORE-363 Server hangs when a client registers events but the connection is not established Contributor(s): Paul Beach Alex Peshkov * Fixed bug CORE-973 BUGCHECK(183) when attempting to backout a record version after a crash Contributor(s): Ann Harrison * Fixed bug CORE-911 AV in Classic server after long idle period when using long running read committed read-only transaction Contributor(s): Vlad Horsun * Fixed unregistered bugs Error not detected when buffer overflows in isql Problems handling quoted strings Contributor(s): Paul Beach Dimitry Sibiryakov * Fixed unregistered bug GSTAT prints "unknown Windows NT error" instead of a proper Win32 error message Contributor(s): Claudio Valderrama ************** * v1.5.3 ************** * Fixed SF bug #1175157 Error in thread scheduler causes server to lockup in case if IO error at database attachment Contributor(s): Vlad Horsun * Fixed unregistered bug. Wrong permissions for the QLI help database Contributor(s): Alex Peshkov * Fixed unregistered bug. Wrong permissions for the QLI help database Contributor(s): Alex Peshkov * Fixed unregistered bug. No more than 32767 identifiiers are generated by GPRE Contributor(s): Ann Harrison * Added OldColumnNaming parameter to firebird.conf Allow users to revert to pre-V1.5 column naming in select expressions Contributor(s): Paul Reeves * Added diagnostics. Logged attempt to send signals via missing gds_relay Contributor(s): Alex Peshkov * Fixed unregistered security related bugs. 1) Server crashed when too long filename is provided 2) No longer trust UID received from the client side 3) isc_user_* functions worked wrongly under "superuser" account on win32 Contributor(s): Alex Peshkov * Fixed v1.5.2 bug. Comparisons between strings in NONE and other charset caused an error Contributor(s): Dmitry Yemanov * Fixed unregistered bug. 100% cpu load in case of write failure Contributor(s): Vlad Horsun * Fixed unregistered v1.5 bug. Wrong error detection in case of write failure Contributor(s): Vlad Horsun * Fixed bug SF #1076858 Possible corruption in classic server: page 0 is of wrong type (expected 6, found 1) Contributor(s): Vlad Horsun * Fixed unregistered bug. Crash occured in service gfix code when it tried to reattach to currently unavailable database. Since service can't interact with end user an endless loop leads to overflow service buffer and crash as result. Contributor(s): Vlad Horsun * Fixed SF bug #1242982. Bug in compound index key mangling. Contributor(s): Arno Brinkman * Fixed SF bug #739480. Locally exploitable stack overflow. Contributor(s): Alex Peshkov * Fixed unregistered bug. Unneeded evaluation of the last item by COALESCE function. Contributor(s): Arno Brinkman * Fixed SF bug #1191006. Using where params in SUM return incorrect results. Contributor(s): Arno Brinkman * Fixed SF bug #1016969. -804 Data type unknown in UPDATE with CASE and parameters. Contributor(s): Arno Brinkman * Fixed unregistered bug. BLOB sub-type bug in COALESCE/CASE. Contributor(s): Arno Brinkman * Fixed unregistered bug. Fixed Dialect 3 quoted identifiers issue in the ISQL command SHOW GENERATORS. Contributor(s): Claudio Valderrama * Fixed unregistered bug. Lost charset/collation for local PSQL variables causing string conversion errors. Contributor(s): Dmitry Yemanov * Fixed unregistered bug. Server crashes during database shutdown when there are active DDL operations. Contributor(s): Dmitry Yemanov * Fixed bug SF #1110717. Wrong charset of subquery in VIEWs. Contributor(s): Dmitry Yemanov * Fixed bug SF #1106825. Access Violation in fcblient.dll v1.5.2 on disconnecting. Contributor(s): Dmitry Yemanov * Fixed unregistered bug. Server crashes while performing a metadata scan for complex table. Contributor(s): Dmitry Yemanov * Fixed unregistered bug. Database corruption due to pre-triggers (e.g. record is deleted in BEFORE UPDATE trigger). Contributor(s): Dmitry Yemanov * Fixed unregistered bug. User savepoints are not released when commit retaining is issued. Contributor(s): Dmitry Yemanov * Fixed unregistered bug. Backport isql fixes: Another fix for the -b (Bail On Error) option when SQL commands are issued and no db connection exists yet. Apply Miroslav Penchev's patch for bug with -Q always returning 1 to the operating system, discovered by Ivan Prenosil. Contributor(s): Claudio Valderrama * Fixed unregistered bug. Computed column of blob/array type zeroes the first column of the table being restored. Contributor(s): Dmitry Yemanov * Fixed unregistered bug. Server crashed in some cases of the BLOB filter declaration. Contributor(s): Claudio Valderrama * Fixed v1.5.0 bug. Server locked up after unsuccessful attach to security.fdb. Contributor(s): Dmitry Yemanov Claudio Valderrama * Fixed unregistered bug. Conflict between single-line comments and block ones in ISQL. Contributor(s): Claudio Valderrama * Fixed unregistered bug. Bug in AddMonth() UDF when facing January. Contributor(s): Claudio Valderrama * Fixed bug SF #1124720. Problem with "FOR EXECUTE STATEMENT ... DO SUSPEND". Contributor(s): Alex Peshkov * Fixed unregistered bug. Bugchecks on AMD64 (and possibly other platforms) when database was migrated without backup/restore. Contributor(s): Nickolay Samofatov * ISQL improvement: Command line switch -b to bail out on error when used in non-interactive mode. Also, return an error code to the operating system. Contributor(s): Damyan Ivanov Claudio Valderrama * Fixed unregistered bug. Server crashed during some DDL operations. Contributor(s): Alex Peshkov * Fixed unregistered bug. Issues with descending indices used in referential constraints. Contributor(s): Alex Peshkov * Fixed v1.5.1 bug. Generators were garbage-initialized after metadata-only backup/restore. Contributor(s): Dmitry Yemanov ************** * v1.5.2 ************** * Fixed v1.0 regression. Blobs containing more than 65535 segments are not backed up by GBAK properly Contributor(s): Nickolay Samofatov * Fixed ISQL problems 1) statement terminators and '--' comments are no longer recognized in multi-line literals 2) tab characters are no longer translated to spaces in literal strings Contributor(s): Dimitry Sibiryakov Claudio Varderrama Nickolay Samofatov * Fixed bug SF #1065511 XP SP2 slow to connect to Linux server Contributor(s): Nickolay Samofatov * Fixed unregistered bug. Possible server crash when execute_immediate is used to release or rollback transaction to non-existing savepoint Contributor(s): Nickolay Samofatov * Fixed unregistered bug. Server locked when trying to restore database at location, prohibited in firebird.conf. Contributor(s): Alex Peshkov * Fixed v1.5.0 regression. Fix bugs in distribution of conjunctions to components of outer joins by optimizer. Wrong outer join results could have been returned. The fix also makes engine use better plans for outer joins in a number of cases. Contributor(s): Arno Brinkman * Fixed 1.5.1 optimiser bug. Fix bug with unneeded fetches in joined relations when "OR" is used on base relation. Contributor(s): Arno Brinkman * Fixed bug SF #728839. Left join defeats UDF by mangling a null descriptor. Contributor(s): Claudio Varderrama * Fixed bug SF #544132. UDF with NULL input parameter. Contributor(s): Claudio Varderrama * Fixed bug SF #1045970. CPU 100% with FB 1.5.1 (when events are used and client network connection is terminated) Note: Related to the previous events bugfix introduced in v1.5.1 Contributor(s): Dmitry Yemanov * Fixed v1.5.0 regression. Failed UDF name is never reported in the server log Contributor(s): Vlad Horsun * Fixed v1.5.1 regression. 1.5.0 was doing exit(3) on critical errors on Windows. No way you could use JIT debugger to analyse problems in your UDF routines 1.5.1 was calling debugger always and this introduced problem with automatic restarts of server 1.5.2 now calls debugger only if you set BugcheckAbort configuration file option to 1 Contributor(s): Vlad Horsun Nickolay Samofatov * Fixed unregistered bug. Error trying to delete from a naturally updatable view containing computed expressions Contributor(s): Dmitry Yemanov * Fixed unregistered bug. Numeric datatypes represented by floating-point variables are processed incorrect in EXECUTE STATEMENT Contributor(s): Alexander Peshkoff * Fixed unregistered bug. Memory leak when a query contains both GROUP BY and DISTINCT and result set is empty Contributor(s): Vlad Horsun * Fixed unregistered bug. Server leaks resources when an exception is thrown from the selectable stored procedure Contributor(s): Dmitry Yemanov * Fixed unregistered bug. Problem with deadlock detection when pessimistic locking (WITH LOCK syntax) is used Contributor(s): Nickolay Samofatov * Fixed unregistered bug. Server crashes when NULL is passed to EXECUTE STATEMENT ... INTO Contributor(s): Alexander Peshkoff * Fixed unregistered bug. Server log is polluted with sigpipe errors when running SuperServer on unix Contributor(s): Paul Reeves * Fixed unregistered bug. 100% CPU usage by the cache_writer thread in some rare cases Contributor(s): Vlad Horsun * Fixed unregistered bug. Server crashes with complex (lots of streams used in a sort/merge) queries Contributor(s): Dmitry Yemanov * Fixed unregistered bug. Possible server crash in op_connect handler Contributor(s): Aleksey Karyakin Dmitry Yemanov * Fixed unregistered bug. Server blocking when events are used with NAT gateways Contributor(s): Chris Waters Dmitry Yemanov * Fixed unregistered bug. Sweeper doesn't release its lock in the case of database shutdown Contributor(s): Vlad Horsun * Fixed unregistered bug. Least significant bits of value are lost when rounding floating-point value to int/int64 value Contributor(s): Vlad Horsun * Fixed unregistered bug. Backported fixes for a few memory access problems detected when testing HEAD under Valgrind Contributor(s): Nickolay Samofatov * Standard UDF library registration script changed Declarations of string manipulation routines in ib_udf.sql are altered to accept strings with lengths up to 255 characters Contributor(s): Nickolay Samofatov * Fixed unregistered bug. Run-time errors in 64-bit SuperServer builds on platforms such as Linux/AMD64/NPTL which use high-order bits of 64-bit thread ID Contributor(s): Nickolay Samofatov * Fixed unregistered bug. CURRENT_TIMESTAMP yielding unpredictable results on 64-bit platforms Contributor(s): Nickolay Samofatov * Fixed v1.5.1 regression Broken support for multi-dimensional array fields Contributor(s): Claudio Varderrama * Fixed v1.5.1 regression Plans for selectable stored procedures containing multiple FOR loops reported in reverse order Contributor(s): Vlad Horsun Nickolay Samofatov * Performance improvement Resource lists to check permissions are now computed on the fly as needed. This significantly reduces memory and CPU time consumption for complex schemas Contributor(s): Nickolay Samofatov Daniel Urban * POSIX build and packaging change 1) Work around bugs in GCC 3.3.2 and 3.3.3 2) Support GCC 3.4 build 3) Limit exports of Firebird libraries using version script 4) Link client library and UDF libraries with POSIX threads. This cures problems with single-threaded hosts like PHP linking with libfbclient.so from CS packages Contributor(s): Nickolay Samofatov * Fixed bug SF #1027636 The problem with output of Linux SuperServer startup script Contributor(s): Dale Mullins * POSIX build and packaging change Build system is extended to generate source bundles without autoconf dependency Contributor(s): Erik S. LaBianca * Fixed bug SF #1063254 EXISTS or SINGULAR predicate burried inside aggregate-functions caused wrong detection/mapping for aggregate queries. Contributor(s): Arno Brinkman ************** * v1.5.1 ************** * Fixed unregistered bug. Fix 100% CPU consumption possible when events are used Contributor(s): Dmitry Yemanov * Fixed v1.5 bug. Fix QLI crash when variables are used Contributor(s): Vladimir Tsvigun * Fixed v1.5 bug. Import (unmodified) libedit-2.6.9 to provide line editing capabilities for isql. This fixes crashes while long lines are entered Contributor(s): Nickolay Samofatov * Fixed optimiser bug. Fix bug with FULL JOIN and IS NULL in where clause. Contributor(s): Arno Brinkman * Fixed v1.5 bug. Fix memory leak in cpl applet. Contributor(s): Paul Reeves * Fixed v1.5 bug. Fixed problem with system log overflow in case of missing aliases.conf Contributor(s): Alexander Peshkoff * Fixed v1.5 bug. Problem with /etc/init.d/firebird modification. Contributor(s): Alexander Peshkoff * Fixed unregistered bug. GSTAT doesn't work with remote connection strings. Contributor(s): Dmitry Yemanov * Fixed v1.5 limitation. Allowed Services API in CS builds. Contributor(s): Nickolay Samofatov * Fixed bug SF #750659. Broken soname for libib_util.so. Contributor(s): Nickolay Samofatov * Charset improvement. Allowed using NONE as a fully transparent charset everywhere. Contributor(s): Jim Beesley Nickolay Samofatov * Added new collation. LT_LT for ISO8859_13 charset (Lithuanian language). Contributor(s): Jonas Jasas Jr. * Debugging enhancement. Added config-driven ability to abort server process in the case of bugchecks or structured exceptions (to produce a core dump). Contributor(s): Nickolay Samofatov * Fixed v1.5 bug. 1) Problem with IS NULL used in outer joined views. 2) Use MERGE instead of JOIN when indices are not applicable for a join. Contributor(s): Arno Brinkman * Fixed v1.5 bug. Procedure parameters are extracted incorrectly by ISQL. Contributor(s): Dimitry Sibiryakov * Fixed unregistered bug. -n option of GBAK is ignored for NOT NULL contraints. Contributor(s): Claudio Varderrama * Fixed bug SF #750659. Metadata backup and generator values. Contributor(s): Claudio Varderrama * Fixed unregistered bug. Memory leak in the Services API. Contributor(s): Dmitry Yemanov * Fixed unregistered bug. Interdependent views cannot be restored properly. Contributor(s): Arno Brinkman * Fixed v1.5 bug. Wrong mapping of COUNT(*) in a HAVING clause when used with IN, ANY/SOME, ALL. Contributor(s): Arno Brinkman * Fixed bug SF #919246. Exception/freeze in gds32. Contributor(s): Nickolay Samofatov * Fixed bug SF #918653. NULLS FIRST doesn't work in unions. Contributor(s): Nickolay Samofatov * Fixed bug SF #750664. Problems with generators in a read-only database. Contributor(s): Nickolay Samofatov * Fixed unregistered bug. Memory leak in isc_database_info(). Contributor(s): Nickolay Samofatov * Fixed v1.5 bug. Restore performance regression. Contributor(s): Nickolay Samofatov * Fixed bugs SF #627057, #922602. Wrong invariant dependencies tracking logic. Contributor(s): Nickolay Samofatov * Fixed unregistered bug. Server crashes on NULL in LIKE ESCAPE. Contributor(s): Nickolay Samofatov * Fixed unregistered bug. Solved a number of problems with the win32 lock manager. Problems manifested themselves as low performance when several operations were waiting on locks simultaneously. Contributor(s): Nickolay Samofatov * Fixed unregistered bug. Length of string types containing binary data (OCTETS) is determined incorrectly in UDFs. Contributor(s): Fred Polizo Jr. * New port. Introduced AMD64 port. Contributor(s): Nickolay Samofatov * Fixed v1.5 bug. Memory leak in EXECUTE STATEMENT. Contributor(s): Alexander Peshkoff * Fixed v1.5 bug. Problem with searching firebird.conf in $FIREBIRD on win32. Contributor(s): Alexander Peshkoff * Fixed bug QC #7449. UDF arguments are prepared/optimized twice. Contributor(s): Dmitry Yemanov * Fixed unregistered bug. Generator pages are not flushed properly. Contributor(s): Oleg LOA Vlad Horsun Dmitry Yemanov * Fixed bug QC #7496. Memory leak in SPs when aggregation errors are handled in a WHEN block. Contributor(s): Oleg LOA * Fixed SF bug #784121. Expression evaluation is not supported in LEFT JOIN. Contributor(s): Claudio Varderrama * Fixed unregistered bug. Server crashes when views and selectable procedures are intermixed. Contributor(s): Dmitry Yemanov * Improved win32 installation utilities. Added a service description string to the services configuration info. Contributor(s): Olivier Mascia * Fixed v1.5 bug. Memory corruptions in the embedded DSQL API implementation. Contributor(s): Nickolay Samofatov ************** * v1.5 Final ************** * None ************** * v1.5 RC 9 ************** * Various installation fixes and improvements. Contributor(s): Mark O'Donohue Alexander Peshkoff Nickolay Samofatov Paul Reeves Olivier Mascia * Fixed RC8 bug. Streamed blobs are restored incorrectly. Contributor(s): Nickolay Samofatov * Fixed RC8 bug. Restored support for new BLR codes in the built-in BLR blob filter. Contributor(s): Alexander Peshkoff Dmitry Yemanov Nickolay Samofatov * Fixed RC8 bug. Server crashes or wrong results related to views/SPs referenced from different contexts. Contributor(s): Dmitry Yemanov * Upgraded examples. Example database and scripts are upgraded to SQL dialect 3. Contributor(s): Helen Borrie Vlad Horsun * Fixed RC8 bug. Record format is not updated properly in some cases. Contributor(s): Eugeny Kilin * Improved win32 installation utilities. Link instreg, instsvc and instclient with C/C++ runtime statically to avoid dependencies from MS libraries. Contributor(s): Olivier Mascia * Fixed RC8 bug. Changed isc_get_client_version() API to return ISC (i.e. compatibility) version info. Contributor(s): Paul Reeves * Fixed unregistered bug. Possibility of SEGV in ISQL when exiting w/o connect or create database. Contributor(s): Alexander Peshkoff * Fixed RC8 bug. Fixed a couple of threading issues in the client library. Contributor(s): Nickolay Samofatov * Fixed RC8 bug. Computed fields evaluate to NULL in triggers. Contributor(s): Dmitry Yemanov * Fixed RC8 bug. Restored valid user permissions for the security database. Contributor(s): Paul Reeves * Fixed bug SF #211781. Win32: Server don't close thread handles. Contributor(s): Dmitry Yemanov * Fixed RC8 bug. Fixed instclient.exe to generate correct file version info for gds32. Contributor(s): Olivier Mascia ************** * v1.5 RC 8 ************** * C/C++ client interface version added FB_API_VER defined to 15 for Firebird 1.5 in ibase.h Contributor(s): Nickolay Samofatov * Fixed unregistered bug. Server crash when closing a blob after a transaction is finished. Contributor(s): Dmitry Yemanov * Fixed unregistered bug. Server crash in some cases of sort finilization. Contributor(s): Vlad Horsun Oleg LOA * Fixed RC7 bug. Wrong behaviour of CreateInternalWindow flag in the service mode. Contributor(s): Dmitry Yemanov * Fixed RC7 bug. Wrong pathname resolution in the database creation. Contributor(s): Dmitry Yemanov * Fixed unregistered bug. Server crash when GBAK is running as a service in multi-volume operations. Contributor(s): Oleg LOA * Fixed unregistered bug. Server crash when NULL is evaluated in the BETWEEN predicate. Contributor(s): Oleg LOA * New win32 installation tool. Added instclient.exe tool as a replacement for the previous instgds.exe. Contributor(s): Olivier Mascia * Fixed RC7 bug. Fixed some race conditions in the server initialization code. Contributor(s): Nickolay Samofatov * Fixed RC7 bugs. Some packaging/installation issues on Linux. Contributor(s): Mark O'Donohue * Fixed unregistered bug. Charset problem when mixing none (constants)/ascii charset and other character-sets in concatenation. Contributor(s): Arno Brinkman * Fixed RC7 bug. Forcedly set SO_KEEPALIVE flag for POSIX CS connections independently of what was given by xinetd/inetd to us. Contributor(s): Nickolay Samofatov * Fixed bug SF #489762. Trigger on view with union receive nulls. Contributor(s): Dmitry Yemanov * Fixed bug SF #489764. Trigger with except-s on view with union. Contributor(s): Dmitry Yemanov ************** * v1.5 RC 7 ************** * Fixed unregistered bug. Server crashes when explicit PLAN with MERGE and JOINs is specified. Contributor(s): Arno Brinkman * Fixed unregistered bug. Possible issues in the metadata cache. Contributor(s): Eugeny Kilin * Fixed RC6 bug. Problem in the cyclic metadata dependency handling. Contributor(s): Eugeny Kilin Nickolay Samofatov * Fixed RC6 bug. Solved problems with global new/delete operators in host applications using STL. Contributor(s): Nickolay Samofatov * Fixed unregistered bug. Reject user names with non-printable characters in GSEC. Contributor(s): Alexander Peshkoff * Fixed unregistered bug. Failure of GROUP BY operation. Contributor(s): Arno Brinkman * Fixed unregistered bug. Unnamed columns when some functions/operations are used in the select list. Contributor(s): Claudio Varderrama * Fixed RC6 bug. Wrong index utilization in some cases. Contributor(s): Arno Brinkman * Fixed RC6 bug. Server crash with explicit plans used in subqueries, when outer aggregation is performed. Contributor(s): Dmitry Yemanov * GSTAT enhancement. Command-line switches "-r" and "-t" are now supported via the Services API. Contributor(s): Vlad Horsun * Fixed RC6 bug. Removed handle leaks in the cached security database connection. Contributor(s): Dmitry Yemanov * Fixed RC6 bug. Long prepare time for explicit plans in complex joins. Contributor(s): Dmitry Yemanov * Security fix. Verify secondary database pathnames against DatabaseAccess entry of firebird.conf. Contributor(s): Alexander Peshkoff * Fixed RC6 bug. Server crashes in some cases of savepoints usage. Contributor(s): Nickolay Samofatov * Renamed the registry key. 1) The registry location is changed from "HKLM\SOFTWARE\FirebirdSQL\Firebird\CurrentVersion" to "HKLM\SOFTWARE\Firebird Project\Firebird Server\Instances". 2) The server path location is changed from "RootDirectory" to "DefaultInstance" for consistency with future versions. Contributor(s): Olivier Mascia * Enhanced win32 guardian. Added switch to start Classic server as an application. Contributor(s): Paul Reeves * Fixed RC6 bug. 1) Fixed various issues with the win32 CS lock manager. 2) Enabled automatic lock manager pool resizing. Contributor(s): Nickolay Samofatov * Fixed unregistered bug. Possible server crash after unsuccessful index creation. Contributor(s): Dmitry Yemanov * Fixed RC6 bug. Incorrect NULLs handling in unique indices. Contributor(s): Dmitry Yemanov * Added new collation. ISO_HUN for ISO8859_2 charset (Hungarian language). Contributor(s): Sandor Szollosi * Fixed RC6 bug. CURRENT_ROLE isn't cleared for an invalid role specified. Contributor(s): Dmitry Yemanov * Fixed unregistered bug. Problems with parsing remote paths in GFIX (in-limbo transactions information). Contributor(s): Vlad Horsun * Fixed RC6 bug. Problems with security.fdb access. Contributor(s): Alexander Peshkoff ************** * v1.5 RC 6 ************** * Fixed unregistered bug. Fixed minor inconsistencies in charsets naming. Contributor(s): Peter Jacobi * Fixed unregistered bug. GSTAT crash in some switch combinations. Contributor(s): Dmitry Yemanov * Fixed unregistered bug. Fixed broken savepoint handling in BREAK/LEAVE/EXIT. Contributor(s): Dmitry Yemanov * Fixed optimizer. 1) Prefer single indices instead of composite ones. 2) Prefer full-match unique indices. Contributor(s): Arno Brinkman * Fixes and enhancements to win32 instreg / instsvc install tools. See their help output for details. Contributor(s): Olivier Mascia * Fixed unregistered bug. Improved OCTETS output in ISQL. Contributor(s): Peter Jacobi * Fixed RC5 bug. Fixed BREAK/LEAVE incompatibility with FOR EXECUTE STATEMENT loops. Contributor(s): Dmitry Yemanov * Fixed RC5 bug. Bug with expressions without fields inside aggregate-functions. Contributor(s): Arno Brinkman * Fixed RC5 bug. EXECUTE STATEMENT returning BLOB datatype. Contributor(s): Alexander Peshkoff * Fixed RC5 bug. Various issues with server-side database aliases. In particular, restore support for relative paths in local connection strings Contributor(s): Nickolay Samofatov * Fixed RC5 bug. Possibly incorrect stream mapping in DSQL parser Contributor(s): Arno Brinkman * Fixed RC5 bug. Make COALESCE/CASE output descriptor more SQL-standard. Contributor(s): Arno Brinkman * Fixed RC5 bug. Engine crash during execution of DDL altering long recursive procedure->trigger chains Contributor(s): Nickolay Samofatov * Fixed RC5 bug. Thread-safety issues in the SS client library and Windows CS listener process Contributor(s): Nickolay Samofatov * Fixed RC5 bug. Fix more Windows CS lock-ups. It passes heavy stress-tests now, seems to be stable Note: Automatic lock table resizing has been disabled for this target. You may need to adjust LockMemSize parameter if you experience "lock manager out of room" errors or failures during database restore Contributor(s): Nickolay Samofatov * Fixed RC5 bug. Rollback unplanned change of isc_que_events API function parameter types Contributor(s): Dimitry Sibiryakov * Fixed RC5 bug. Engine crashes if IO error happens early during database startup in SS builds Contributor(s): Nickolay Samofatov * Maximum number of indices per table increased Backported appropriate changes from 1.0.3 tree Notes: 1) Old maximum number of indices was 64, new max value is (DB_PAGE_SIZE/16)-2 2) When actual number of indices for a particular table exceeds 256 engine behavior may be unstable Contributor(s): Nickolay Samofatov * Fixed bug SF #721792 Long runnning connection causes mem leak in OS kernel device Contributor(s): Nickolay Samofatov ************** * v1.5 RC 5 ************** * Fixed RC4 bug. Incorrect GDSCODE evaluation in the case of user-defined exceptions. Contributor(s): Dmitry Yemanov * Fixed bugs SF #774987, #775003. 1) ltrim('') and rtrim('') return NULL; rtrim forgets 1st char 2) log(x, y) in fact returns log(y, x) Contributor(s): Paul Vinkenoog Nickolay Samofatov * Fixed RC4 bug. Incorrect nested aggregates tracking. Contributor(s): Arno Brinkman * Fixed RC4 bug. Various lockups in win32 CS. Contributor(s): Nickolay Samofatov * Fixed unregistered bug. Server crash caused by lost transaction context. Contributor(s): Alexander Peshkoff * Explicit locking change. Make FOR UPDATE and WITH LOCK independent subclauses. Contributor(s): Nickolay Samofatov * Fixed unregistered bug. Server crash for any combination of sub-select & between. Contributor(s): Alexander Peshkoff * Fixed unregistered bug. Occasional server crash on plan generation. Contributor(s): Dmitry Yemanov ************** * v1.5 RC 4 ************** * Fixed RC3 bug. Server crash on some metadata operations. Contributor(s): Alexander Peshkoff * Fixed RC3 bug. Fixed restore of backup file without required UDF(s). Contributor(s): Alexander Peshkoff * Fixed RC3 bug. Metadata cache issues related to CREATE OR ALTER statement. Contributor(s): Dmitry Yemanov * Fixed RC3 bug. Broken exception handling in SPs/triggers. Contributor(s): Dmitry Yemanov * Fixed bug SF #736318. " STARTING WITH " fails when using indices. Contributor(s): Dmitry Yemanov * Fixed RC3 bug. When one merge was done no other merge could be generated by the optimizer. Contributor(s): Arno Brinkman * Fixed RC3 bug. Various tempfile-related issues. Contributor(s): Dmitry Yemanov * Fixed RC3 bug. Wrong console input processing in ISQL. Contributor(s): Tomas Skoda . * Fixed unregistered bug. Non-existent deadlock is raised after execution of pre-(update/delete) triggers. Contributor(s): Alexander Peshkoff * Parser improvement. Make INSERTING/UPDATING/DELETING keywords non-reserved. Contributor(s): Nickolay Samofatov * Error reporting improvements. Added new (more specific) error messages for some of v1.5 changes. Contributor(s): Dmitry Yemanov Arno Brinkman Alexander Peshkoff * Fixed RC3 bug. Disabled explicit SELECT locking for non-trivial queries (aggregates, SPs, joins, unions). Contributor(s): Dmitry Yemanov Nickolay Samofatov * Installation improvement / security fix. Added -login switch to instsvc allowing to install FB service as non-localsystem account. Contributor(s): Alexander Peshkoff * Fixed RC3 bug. 1) Made savepoints SQL99-compliant. 2) Fixed bug related to exception handling when savepoints are used. Contributor(s): Dmitry Yemanov * Fixed RC3 bug. 'no current record for fetch operation' error for queries where a MERGE was done and/or SP/view/aggregates/unions were used together. Contributor(s): Arno Brinkman * Re-introduced trimming of VARCHAR fields in the remote protocols. Contributor(s): Dmitry Yemanov * Fixed unregistered bug. Random server crash in the case of big queries being prepared. Contributor(s): Dmitry Yemanov * Fixed RC3 bug regarding API compatibility. Contributor(s): Dimitry Sibiryakov * Fixed RC3 memory leaks. Contributor(s): Dmitry Yemanov * Fixed RC3 problem. Server crash on restore (caused by GCC 3.2 bug). Contributor(s): Nickolay Samofatov Dimitry Sibiryakov ************** * v1.5 RC 3 ************** * Fixed RC2 bug. Server crash on restore of some databases. Contributor(s): Nickolay Samofatov * Configuration improvement. Make path management in firebird.conf to follow the OS requirements. Contributor(s): Alexander Peshkoff * Fixed unregistered bug. Wrong UDF arguments of types DATE/TIME (dialect 3). Contributor(s): Oleg LOA * Fixed unregistered bug. Possible reference integrity violation. Contributor(s): Vlad Horsun Dmitry Yemanov * Fixed RC2 installation issues on Linux. 1) Permissions problem for firebird.conf (SF #745090). 2) Generate aliases.conf on install. 3) Use rpmbuild to create packages. Contributor(s): Erik S. LaBianca Nickolay Samofatov * Fixed RC2 bug. Incorrect handling of numeric NULLs as EXCEPTION or EXECUTE STATEMENT arguments. Contributor(s): Dmitry Yemanov * Fixed RC2 bugs. 1) UDF linkage problems on Linux. 2) Allow C programs use our shared libraries on POSIX platforms. 3) Make libfbembed.so compatible with third-party tools such as Kylix. Contributor(s): Nickolay Samofatov * Fixed unregistered bug. Allow easy adjustment of LockSemCount on POSIX platforms. No need to use gds_drop or reboot machine to make new setting take effect Contributor(s): Nickolay Samofatov * Parser improvement. Make FIRST/SKIP keywords non-reserved. Contributor(s): Nickolay Samofatov * Fixed RC2 bug. Problems with fbclient.dll on Win9x. Contributor(s): Alexander Peshkoff * Fixed RC2 bug. Optimizer crash when all indices of a table had the selectivity of 1. Contributor(s): Arno Brinkman * Fixed RC2 bug. Various issues with the lock manager. Contributor(s): Nickolay Samofatov * Fixed unregistered bug. Wrong attachment reference after exception in PSQL. Contributor(s): Alexander Peshkoff * Fixed unregistered bug. BREAK/LEAVE and EXIT statements are now available for usage in triggers. Contributor(s): Dmitry Yemanov * Fixed RC2 bug. Server crash when NULL is used as EXECUTE STATEMENT argument. Contributor(s): Alexander Peshkoff * Fixed RC2 bug. Server crash when explicit pessimistic locks are used from PSQL. Contributor(s): Nickolay Samofatov ************** * v1.5 RC 2 ************** * Fixed unregistered bug. Possible index corruptions during garbage collection. Contributor(s): Vlad Horsun Dmitry Yemanov * Fixed unregistered bug. Solved problems with temporary files management: 1) Security hole on all POSIX platforms except FREEBSD/OPENBSD related to mktemp usage (possible DoS attacks or privileges elevation) 2) Only 27 unique filenames generated on win32 (which could cause unpredictable behavior in SS builds) Contributor(s): Nickolay Samofatov * Fixed RC1 bug. Various server crashes in the remote protocol code. Contributor(s): Nickolay Samofatov * Event manager change. Disabled usage of definite aux port in CS builds due to known issues. Contributor(s): Dmitry Yemanov * Fixed unregistered bug. 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 Contributor(s): Arno Brinkman * Fixed RC1 bug. Aggregates from a different parent context were not allowed in the HAVING clause. Contributor(s): Arno Brinkman * Fixed unregistered bug. Possible crashes on disconnect when event notification is used. Contributor(s): Dmitry Yemanov * Service manager changes. Features of GSTAT/GSEC are not available via Services API in win32 CS (until v1.6 release). Contributor(s): Dmitry Yemanov * Fixed unregistered bug. Wrong record statistics is reported when operation fails due to some reason. Contributor(s): Dmitry Yemanov * Fixed RC1 bug. Problems with the service manager being attached from different clients simultaneously. Contributor(s): Dmitry Yemanov * Fixed RC1 bug. Various server crashes when any remote protocol is used. Note: IMPORTANT!!! - Don't forget to update the client library, because this bug existed in both server and client. Contributor(s): Dmitry Yemanov * Fixed unregistered bug. stdin/stdout cannot be used to redirect console I/O in win32 build of GBAK. Contributor(s): Alexander Peshkoff * Fixed RC1 bug. Server crash in EXECUTE STATEMENT combined with exception handling block. Contributor(s): Alexander Peshkoff * Fixed unregistered bug. Broken lock table resizing in CS. No more "lock manager out of room" (Win32 CS 1.5 RC1) or crashes (possible in all other CS builds of Interbase/Firebird). Contributor(s): Nickolay Samofatov * INTL improvement. Make UPPER function work for WIN1251 charset without explicit collations. Contributor(s): Nickolay Samofatov Dmitry Yemanov * Fixed RC1 bug. Cannot connect to the service manager with non-default password. Contributor(s): Dmitry Yemanov * Fixed RC1 bug. Fixed problem with CREATE OR ALTER TRIGGER. Contributor(s): Dmitry Yemanov * Fixed RC1 bug. Server crashes in some cases of error handling. Contributor(s): Alexander Peshkoff * Fixed unregistered bug. Possible database corruption when you modify/delete the same record in pre-trigger for which this trigger was called. This issue also was known as BUGCHECK(291) before. Contributor(s): Alexander Peshkoff * Fixed RC1 bug. Incorrect values returned by ROW_COUNT. Contributor(s): Dmitry Yemanov * Fixed unregistered bug. Buffer overrun in isc_database_info() call. Contributor(s): Oleg LOA * IMPORTANT!!! - Configuration manager change. Now the server exits on missing / wrong firebird.conf with error report in system log. Contributor(s): Alexander Peshkoff * Fixed RC1 bug. SP with input parameters and aggregate tracking/validating methods failed. Contributor(s): Arno Brinkman * Fixed RC1 bug. Crash on disconnect in the embedded server. Contributor(s): Dmitry Yemanov * Fixed RC1 bug. Parameters from SPs in a sub-select were not remaped to the proper context in a aggregate query. Example: SELECT (SELECT SP.X FROM SP_TEST(T1.ID) SP) FROM TABLE1 T1 GROUP BY T1.ID Contributor(s): Arno Brinkman * Fixed RC1 bug. Problem with start/stop commands of instsvc. Contributor(s): Dmitry Yemanov * Fixed Services API. Enabled statistics Services API for POSIX CS builds. Contributor(s): Nickolay Samofatov ************** * v1.5 RC 1 ************** * Fixed Beta 4 bug. EXECUTE STATEMENT and SQLDA > 32KB. Contributor(s): Alexander Peshkoff * Changed parser. 1) ROWS_AFFECTED is renamed to ROW_COUNT 2) CONNECTION_ID/TRANSACTION_ID are renamed to CURRENT_CONNECTION/CURRENT_TRANSACTION 3) Some of newly introduced tokens are made non-reserved Contributor(s): Dmitry Yemanov * Fixed Beta 4 bugs. 1) sub-selects inside COALESCE function 2) parameter ordering Contributor(s): Arno Brinkman * Fixed Services API. Partially enabled Services API for win32 CS builds. Contributor(s): Dmitry Yemanov * Fixed unregistered bug. Wrong type of event delivery (unnecessary usage of OOB packets). Contributor(s): Jim Starkey Paul Reeves * Fixed Beta 4 bug. Optimizer couldn't ignore bad indices in some cases. Contributor(s): Dmitry Yemanov * Improved lock manager Deadlocks are now detected and reported as soon all blocking processes received notifications, i.e. instantly in all normal cases Contributor(s): Nickolay Samofatov * Fixed Beta 4 bug. Locking and performance issues in win32 CS. Contributor(s): Nickolay Samofatov * Fixed Beta 4 bug. Error during backup with "ignore in-limbo transactions" option. Contributor(s): Dmitry Yemanov * Fixed unregistered bug. Server crashes in some Services API operations. Contributor(s): Arno Brinkman * Fixed Beta 4 bug. Problems with IP address in connection strings. Contributor(s): Dmitry Yemanov * Fixed Beta 4 bug. Compatibility problems with new IBX versions. Contributor(s): Dmitry Yemanov * Fixed Beta 4 bug. EXECUTE STATEMENT: numeric variables and dialect 3 databases. Contributor(s): Alexander Peshkoff * Advanced security abilities. Implemented configurable access for databases, external tables and UDF libraries. Contributor(s): Alexander Peshkoff * Fixed resource/memory leaks. Contributor(s): Mike Nordell Alexander Peshkoff Nickolay Samofatov Dmitry Yemanov * Fixed unregistered bug. Buffer overrun with multidimensional arrays. Contributor(s): Dmitry Yemanov * Fixed Beta 4 bug. RECREATE VIEW with check option. Contributor(s): Dmitry Yemanov * Fixed Beta 4 bug. Problems with loading INTL plugins. Contributor(s): Mike Nordell ************** * v1.5 Beta 4 ************** * Fixed bugs SF #213460, #678718. Various issues with events used on multihomed hosts. Note: Now it's also possible to setup a definite port for event processing. Contributor(s): Dmitry Yemanov * Fixed some resource leaks. Contributor(s): Mike Nordell Alexander Peshkoff * Fixed Beta 3 bug. Bug with an aggregate sub-query inside a IN clause. Contributor(s): Arno Brinkman * Fixed Services API. Enabled Services API for posix CS builds. Notes: 1. Appropriate changes in Win32 CS are not ready yet 2. Backup/restore service was fixed, tested and should work 3. Database validation was partially fixed and may work 4. Other services are probably non-functional in CS builds yet Contributor(s): Nickolay Samofatov * SQL enhancement. Allowed NULLs in unique constraints and indices (SQL-99 spec). Contributor(s): Dmitry Yemanov Nickolay Samofatov * Fixed Beta 3 bug. Problems with RECREATE VIEW. Contributor(s): Dmitry Yemanov * Performance improvement. 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). Contributor(s): Nickolay Samofatov * Fixed unregistered bug. Database corruption when backing out the savepoint after large number of DML operations (so transaction-level savepoint is dropped) and record was updated _not_ under the savepoint and deleted under savepoint. Contributor(s): Nickolay Samofatov * Improved EXECUTE STATEMENT. Now it's possible to return values from the dynamic SQL. Syntax: EXECUTE STATEMENT INTO ; (singleton form) or FOR EXECUTE STATEMENT INTO DO ; Contributor(s): Alexander Peshkoff * Fixed Beta 3 bug. With a large amount of SQL the server crashed on generating BLR. Contributor(s): Arno Brinkman ************** * v1.5 Beta 3 ************** * Fixed Beta 2 bug. EXECUTE STATEMENT doesn't work in autocommit transactions. Contributor(s): Dmitry Yemanov * Fixed Beta 2 bug. Server crashes due to problems in the optimizer. Contributor(s): Arno Brinkman * Fixed Beta 2 bug. Minor ODS upgrade is no longer critical. Now you can attach any ODS 10.0 database without errors (no need to backup/restore). Contributor(s): Dmitry Yemanov * Fixed Beta 2 bug. "Wrong page type" error during some DDL operations. Contributor(s): Dmitry Yemanov * Fixed unregistered bug. Server hangs during disconnect after mass updates. Contributor(s): Dmitry Yemanov * Improved optimizer. Sub-selects in SET clause of UPDATE now can use indices. Contributor(s): Arno Brinkman * Fixed unregistered bug. "Context already in use" error in the case of DISTINCT with sub-selects. Contributor(s): Arno Brinkman * Enhanced isc_database_info abilities. List of currently active transactions is now available via isc_database_info call. Contributor(s): Nickolay Samofatov * Fixed Beta 2 bug. ISQL cannot work with scripts containing character code 0xFF. Contributor(s): Dmitry Yemanov * Fixed Beta 2 bug. Ineffective PLANs made by the optimizer for SPs and views. Contributor(s): Arno Brinkman * Performance improvement. Shortcut boolean evaluation. Note: The behaviour is controlled by "CompleteBooleanEvaluation" option of firebird.conf. Default is 0 (shortcut evaluation). Contributor(s): Mike Nordell * Fixed Beta 2 bug. Stack overflow during statement preparation. Contributor(s): Dmitry Yemanov Mike Nordell * Performance improvement. Speed-up for index operations (IA32 CPU architecture only) Contributor(s): Mike Nordell * Fixed Beta 2 bug. Wrong record operation statistics. Contributor(s): Evgeny Kilin Dmitry Yemanov * Fixed Beta 2 bug. Wrong line-number statistics in DSQL. Contributor(s): Nickolay Samofatov * Fixed Beta 2 bug. Server crashes during some operations. Contributor(s): Alexander Peshkoff * Change in universal triggers. Allowed access to both (OLD and NEW) contexts in universal triggers. Contributor(s): Dmitry Yemanov * Improved optimizer. When an equal-node and other nodes (geq, leq, between...) are available for an index retrieval, then use the equal node always instead of the others. Contributor(s): Arno Brinkman * Fixed unregistered bug. Long delays during connecting/disconnecting on WinXP. Contributor(s): Arno Brinkman * Fixed Beta 2 bug. Server crash during service manager operations. Contributor(s): Dmitry Yemanov * Generic cleanup. Removed a lot of unused code. Contributor(s): Blas Rodriguez Somoza Erik Kunze ************** * v1.5 Beta 2 ************** * Fixed bug SF #523589. View is affecting the result of a query. Comment: Problem was that RSE's (inside a view) where not flagged as variant. Contributor(s): Arno Brinkman * Changed behaviour of the forced writes mode. Now, if FW=off (disabled), you can control how often dirty pages are flushed on disk. Note: It allows to use disabled FW mode with more reliablity than before (mostly it affects win32 platforms). Contributor(s): Blas Rodriguez Somoza * Renamed ISC4.GDB. The security database has been renamed to security.fdb. Contributor(s): Dmitry Yemanov * New configuration file. firebird.conf is finally published. Note: Directory handling options are not available yet. Contributor(s): Dmitry Yemanov * New user-defined functions. Functions LPAD and RPAD are added to IB_UDF library. Contributor(s): Juan Guerrero * Fixed Beta 1 bug. ISQL wasn't able to extract universal triggers. Contributor(s): Dmitry Yemanov * Fixed unregistered bug. Sometimes GFIX didn't allow to specify "-user" and "-password" switches ("incompatible swiches" error). Contributor(s): Dmitry Yemanov * Security connection cache. Connection to the security database is now cached, thus allowing to decrease time of subsequent database attachments. Contributor(s): Dmitry Yemanov * Some improvements. 1. Reduce memory usage by the server. 2. Direct external I/O when the memory is not available for the sorting. 3. Increased number of streams and predicates supported by the optimizer. Contributor(s): Dmitry Yemanov * Fixed bug SF #508594. LEFT JOIN with VIEWs. Comment: Simple LEFT JOIN on a VIEW with only an ON clause didn't use an index even if it was possible. Contributor(s): Arno Brinkman * Fixed Beta 1 bug. Server crashes during retrieval of the database statistics. Contributor(s): Dmitry Yemanov * Fixed Beta 1 bug. Wrong context was used with FieldX IN (sub-select) predicate. Contributor(s): Arno Brinkman * Fixed Beta 1 bug. Yet another "deadlock" error during metadata updates. Contributor(s): Dmitry Yemanov * Fixed Beta 1 bug. It wasn't possible to use non-aggregate related-fields from an aggregate query inside a sub-query. Contributor(s): Arno Brinkman * Fixed Beta 1 bug. The client library cannot be loaded in some cases. Contributor(s): Dmitry Yemanov * Fixed Beta 1 bug. The guardian service cannot stop the server. Contributor(s): Dmitry Yemanov * 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 Note: Collations for the above charsets are not available yet. Contributor(s): Blas Rodriguez Somoza ************** * v1.5 Beta 1 ************** * CREATE VIEW changes. Disallowed PLAN subclause. Contributor(s): Dmitry Yemanov * Changed aggregate tracking behavior Introduce backwards compatibilty within aggregates. Deepest field inside aggregate determine where an aggregate-context should belong to. Contributor(s): Arno Brinkman * Improved optimizer. Better optimizations of "complex" JOIN queries (LEFT JOIN, views, SPs, etc). Contributor(s): Arno Brinkman * Fixed Alpha 5 bug. Major memory leaks are fixed. Contributor(s): Dmitry Yemanov * New API functions. IB7-compliant functions to return version of the client library. isc_get_client_version(), isc_get_client_major_version(), isc_get_client_minor_version() Contributor(s): Dmitry Yemanov * Sort/merge improvement. Merging (SORT MERGE plans) is now done via in-memory sorting module. Contributor(s): Dmitry Yemanov * Fixed Alpha 5 bug. "Invalid transaction handle (expecting explicit transaction start)" error. Contributor(s): Dmitry Yemanov * New memory manager. Internal implementation of the memory manager has been changed to give us better performance. Contributor(s): Nickolay Samofatov * Win32 build changes. 1. Changed names of USER32 objects to allow the server run simultaneously with IB/FB1. 2. Map name for local (IPC) protocol is changed, so v1.5 client library is no longer compatible with the previous versions via IPC. 3. All transport protocol names (INET port and service, WNET pipe, IPC map) are now configurable via firebird.conf. Contributor(s): Dmitry Yemanov * Fixed unregistered bug. Trashed RDB$FIELD_LENGTH for views that contain concatenation of long CHAR/VARCHAR fields. Contributor(s): Dmitry Yemanov * Triggers improvement. Added runtime action checks (INSERTING/UPDATING/DELETING predicates). Example: if (INSERTING) then new.OPER_TYPE = 'I'; else new.OPER_TYPE = 'U'; Contributor(s): Dmitry Yemanov * Fixed unregistered bug. Cursors (WHERE CURRENT OF clause) cannot be used in triggers. Contributor(s): Dmitry Yemanov * Fixed Alpha 5 bug. SAVEPOINT-related statements were allowed in PSQL via EXECUTE STATEMENT. Contributor(s): Dmitry Yemanov * Fixed bug SF #221921. ORDER BY has no effect. Contributor(s): Arno Brinkman * Fixed bug SF #213859. Subquery connected with 'IN' clause. Contributor(s): Arno Brinkman * Fixed Alpha 5 bug. Wrong plan is used in the case of compound indices. Contributor(s): Arno Brinkman , Dmitry Yemanov * Fixed Alpha 5 bug. Backward compatibility with explicit plans is broken. Contributor(s): Dmitry Yemanov * ORDER BY improvement. Allowed arbitrary expressions in the ORDER BY clause. Contributor(s): Nickolay Samofatov * Fixed unregistered bug. When UNIONS where used in a VIEW and that VIEW was used in the WHERE clause inside an sub-select then the engine crashed. Contributor(s): Arno Brinkman * Fixed Alpha 5 bug. Fixed FB XDR double representation for Linux server and client. This fixes numerous bugs with double precision columns and UDF's when using Linux server and Jaybird or Windows client. Contributor(s): Nickolay Samofatov * Fixed Alpha 5 bug. PLAN wasn't correctly returned. Contributor(s): Arno Brinkman * Fixed Alpha 5 bug. Server crash or "deadlock" error during execution of ALTER PROCEDURE statement. Contributor(s): Nickolay Samofatov * Generic code cleanup. Structures within Y-valve. Contributor(s): Alexander Peshkoff Nickolay Samofatov * Comments improvement. Single-line comments (--) are now allowed in any position of the SQL statement. Contributor(s): Dmitry Yemanov * Fixed unregistered bug. "Request sycnhronization error" with BREAK statement. Contributor(s): Dmitry Yemanov * Fixed bug SF #625899. Bugcheck 291. Contributor(s): Alexander Peshkoff * PSQL change. EXECUTE VARCHAR is renamed to EXECUTE STATEMENT. Contributor(s): Alexander Peshkoff * Fixed Alpha 5 bug and SF #219525. No current record for fetch operation. Contributor(s): Arno Brinkman * Fixed unregistered bug. QLI doesn't understand BIGINT (aka INT64) datatype. Contributor(s): Dmitry Yemanov * Fixed unregistered bug. Length of text variables inside procs/triggers wasn't copied to descriptor structure. Contributor(s): Arno Brinkman ************** * v1.5 Alpha 5 ************** * FIRST/SKIP and ORDER BY changes. 1. Implemented ORDER BY clause in subqueries. 2. Disallowed FIRST/SKIP for views. 3. Allowed zero as valid argument for FIRST. Contributor(s): Dmitry Yemanov * Fixed unregistered bug. Buffer overflow (MAXPATHLEN) and rewritten local function dirname. Contributor(s): Erik Kunze * Fixed unregistered bug. Make SQLDA parameter mapping consistent with order and number of parameters in source SQL string. Notes: You can enable older mapping behavior (for backward compatibility) using "OldParameterOrdering" configuration manager parameter. Contributor(s): Nickolay Samofatov * Fixed Alpha 4 bug. Crash when grouping by invariant subquery. Contributor(s): Nickolay Samofatov * Improved optimizer. Let sub-selects also use indices when their parent is a stored procedure. Contributor(s): Arno Brinkman * Fixed unregistered bug. Removed request size limitation. Contributor(s): Dmitry Yemanov * Fixed unregistered bug. Nulls first/last and collation handling in "order by" clause of unions. Contributor(s): Nickolay Samofatov * Fixed Alpha 4 bug. Optimizer, LEFT OUTER JOIN and error "no current record for fetch operation". Contributor(s): Arno Brinkman * Fixed Alpha 4 bug. Wrong privileges checks. Contributor(s): Dmitry Yemanov * Fixed Alpha 4 bug. UDF node didn't contain any character set, was always NONE. Contributor(s): Arno Brinkman * Generic code cleanup. Renamings, new safe macros, support for mingw. Contributor(s): Erik Kunze , Ignacio J. Ortega , Dimitry Sibiryakov * Explicit record locking. Finalized explicit locking implementation. Should be stable and consistent now. Contributor(s): Nickolay Samofatov * Improved optimizer. Better handling of AND nodes inside an OR node. Contributor(s): Arno Brinkman * Fixed Alpha 4 bug. Restore problem for databases having views that use procedures AND are used by procedures. Contributor(s): Nickolay Samofatov * Fixed Alpha 4 bug. Bad performance of the memory manager and some memory leaks. Contributor(s): Dmitry Yemanov * Fixed Alpha 4 bug. Wrong ordinals of GDS32 exports. Contributor(s): Dmitry Yemanov ************** * v1.5 Alpha 4 ************** * Fixed Alpha 3 bug. Database cannot be restored properly in some situations. Contributor(s): Nickolay Samofatov * Fixed Alpha 3 bug. Dynamic exception messages don't work properly. Contributor(s): Dmitry Yemanov * Fixed unregistered bug. Exceptions inside for/while loop in triggers are not handled correctly. Contributor(s): Alexander Peshkoff * Fixed bug SF #623992. Double forward slash in connection string. Contributor(s): Paul Reeves , Mark O'Donohue * Fixed unregistered bug. Deadlock during some database operations. Contributor(s): Alexander Peshkoff * Improved optimizer. If a few indices with much different selectivity could be used for index retrieval, only better of them are used while others are ignored. Contributor(s): Dmitry Yemanov * Fixed Alpha 3 bug. Memory corruption that prevented restore of databases with procedures using plan expressions with long index names. Contributor(s): Nickolay Samofatov * Fixed unregistered bug. Quoted identifiers problem in plan expressions. Contributor(s): Nickolay Samofatov * Win32 Classic Server. CS architecture is now supported on Win32 as well, but it still cannot be considered stable, so any feedback is welcome. Contributor(s): Dmitry Yemanov * Fixed Alpha 3 bug. API routines are not accessible if gds32.dll is explicitly loaded. Contributor(s): Dmitry Yemanov * Fixed unregistered bug. Stored procedures are no longer recompiled before deletion. Contributor(s): Nickolay Samofatov * New collation for WIN1251 charset. WIN1251_UA for both Ukrainian and Russian languages. Contributor(s): Dmitry Yemanov * Client library change. API routines are no longer exported by ordinals. Contributor(s): Dmitry Yemanov * New configuration manager. Enable the same plain file based configuration for all supported platforms. Default configuration file will be released in the first beta build. Contributor(s): Dmitry Yemanov * Improved optimizer. Added better support for using indices with "OR". Pick the best available compound index from all "AND" nodes. Contributor(s): Arno Brinkman * Fixed Alpha 3 bug. Database appears corrupted (damaged BLOB pages). Contributor(s): Dmitry Yemanov * Savepoints. Added support for explicit savepoint management. Syntax: SAVEPOINT savepoint_name; (create savepoint) ROLLBACK [WORK] TO [SAVEPOINT] savepoint_name; (rollback to previously created savepoint) Notes: Not available in PSQL. Contributor(s): Nickolay Samofatov * Protocol cleanup. IPX/SPX network protocol is no longer supported. Contributor(s): Sean Leyne * Fixed Alpha 3 bug. Memory corruption when working with long record verion chains. Contributor(s): Dmitry Yemanov * Obsolete platforms cleanup. 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 Contributor(s): Sean Leyne * Improved optimizer. Added support for detecting use of index with sub-selects in aggregate select. Contributor(s): Arno Brinkman * Improved thread scheduler for Win32 SS. Now the server should be more responsible under heavy load. Contributor(s): Alexander Peshkoff * Explicit record locking. 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]] Contributor(s): Nickolay Samofatov ************** * v1.5 Alpha 3 ************** * Fixed bug SF #558364. Triggers fail to compile if PLAN used. Note: Now you can use plans in triggers. Contributor(s): Ignacio J. Ortega * Fixed unregistered bug. Distributed (2PC) transaction cannot be properly rolled back due to network errors. Contributor(s): Vlad Horsun , Erik Kunze * Fixed Alpha 2 bug. Possible buffer overrun if dynamic exception messages are used. Contributor(s): Dmitry Yemanov * Fixed Alpha 2 bug. Problem with sub-select and GROUP BY clause. Contributor(s): Arno Brinkman * Fixed Alpha 2 bug. The server hangs with a bugcheck #284 (cannot restore singleton select data). Contributor(s): Dmitry Yemanov * Generic cleanup. ISC_STATUS_LENGTH and MAXPATHLEN macros. Contributor(s): Erik Kunze * Fixed Alpha 2 bug. Version information is missing in libraries and tools. Contributor(s): Dmitry Yemanov * Fixed Alpha 2 bug. Backported a few bits of FB1 code which have been lost. Contributor(s): Claudio Varderrama , Dmitry Yemanov * Fixed bug SF #496784. When optimizer find indexes for LEFT JOIN, work like INNER JOIN. Note: Fixed problem which caused complex outer joins to produce wrong results. Contributor(s): Nickolay Samofatov * Fixed Alpha 2 bug. Changes in aliases.conf are not applied until the server is restarted. Contributor(s): Dmitry Yemanov ************** * v1.5 Alpha 2 ************** * Fixed unregistered bug. BLOB subtype is ignored in system domains generated for expression fields in views. Contributor(s): Dmitry Yemanov * Fixed installation bug. instreg.exe doesn't create "GuardianOptions" registry value. Contributor(s): Dmitry Yemanov * Fixed unregistered bug. Resource leaks in DDL recursive procedure handling which caused some DDL to fail. Contributor(s): Nickolay Samofatov * Fixed unregistered bug. Check constraint which uses only one table field is now dropped automatically when this field is dropped. Contributor(s): Nickolay Samofatov * Fixed Alpha 1 bug. GROUP BY ordinal doesn't work with column aliases. Contributor(s): Arno Brinkman * Fixed Alpha 1 bug. Views are not being created correctly (missing records in RDB$VIEW_RELATIONS). Contributor(s): Dmitry Yemanov ************** * v1.5 Alpha 1 ************** * Fixed unregistered bug. A well-known "decompression overran buffer" error appears during the schema creation. Contributor(s): Evgeny Kilin * New ROWS_AFFECTED system variable (SF #451927). Return number of rows affected by the last INSERT/UPDATE/DELETE statement. Notes: 1. Available in PSQL only. 2. For any other statement than INSERT/UPDATE/DELETE, result is always zero. Contributor(s): Dmitry Yemanov * Dynamic exception messages (SF #446240). Allow to throw an exception with another message than this exception has been created with. Syntax: EXCEPTION name [value]; Contributor(s): Dmitry Yemanov * New SQLCODE and GDSCODE system variables (SF #547383). Provide an access to a code of the catched error within the WHEN-block. Notes: 1. Available in PSQL only. 2. Makes sense in WHEN-block only, in other places returns 0 (success). Contributor(s): Dmitry Yemanov * Exception re-initiate semantics. Allow an already catched exception to be re-thrown from the WHEN-block. Syntax: EXCEPTION; Note: Makes sense in WHEN-block only, in other places evaluates to no-op. Contributor(s): Digitman * Fixed unregistered bug. The server crashes during the garbage collection under heavy load. Contributor(s): Nickolay Samofatov * Deferred metadata compilation. Solve a lot of reasons of the well-known "object in use" error. Contributor(s): Nickolay Samofatov * New NULL order handling. Allow user-defined ordering of NULLs. Syntax: [ORDER BY ] = {col | int} [COLLATE collation] [ASC[ENDING] | DESC[ENDING]] [NULLS {FIRST | LAST}] [, ...] Note: Default behaviour is NULLS LAST. Contributor(s): Nickolay Samofatov * Fixed unregistered bug. gstat shows wrong value for maxdup element. Contributor(s): Dmitry Kuzmenko * New registry key is used on win32. Currently it's SOFTWARE\Firebird Project\Firebird Server. Contributor(s): - * User-defined constraint index names (SF #451925). Allow an index name to be either constraint name or user-defined name. Syntax: = [CONSTRAINT constraint] {UNIQUE [] | PRIMARY KEY [] | REFERENCES other_table [( other_col [, other_col ...])] [ON DELETE {NO ACTION|CASCADE|SET DEFAULT|SET NULL}] [ON UPDATE {NO ACTION|CASCADE|SET DEFAULT|SET NULL}] [] | CHECK ( )} = [CONSTRAINT constraint] {{PRIMARY KEY | UNIQUE} ( col [, col ...]) [] | FOREIGN KEY ( col [, col ...]) REFERENCES other_table [ON DELETE {NO ACTION|CASCADE|SET DEFAULT|SET NULL}] [ON UPDATE {NO ACTION|CASCADE|SET DEFAULT|SET NULL}] [] | CHECK ( )} = USING [ASC[ENDING] | DESC[ENDING]] INDEX name Note: Index is named the same way as a constraint by default. Contributor(s): Dmitry Yemanov * New RECREATE VIEW statement. A shorthand for DROP VIEW / CREATE VIEW couple of statements. Syntax: RECREATE VIEW name ; Contributor(s): Dmitry Yemanov * Fixed unregistered bug. Trigger which name starts with 'RDB$' cannot be altered or dropped at all. Contributor(s): Dmitry Yemanov * Changed file names. Renamed distribution files to make sure we're Firebird. Now they're fbserver, fbclient, firebird.msg etc. Note: The client library is fbclient now and it should be used in all new FB-based projects. gds32 contains nothing but redirected exports and is provided for compatibility only. Contributor(s): - * Minor ODS upgrade. Added new system indices (RDB$INDEX_41, RDB$INDEX_42, RDB$INDEX_43), now ODS version is 10.1. Contributor(s): Dmitry Yemanov , Nickolay Samofatov * New CREATE OR ALTER statement (SF #451935). Allow either creating or altering a database object depending on its existance. Syntax: CREATE OR ALTER name ; Notes: 1. Applicable to SPs/triggers only. 2. The statement has the same meaning as CREATE OR REPLACE one in Oracle. Contributor(s): Dmitry Yemanov * Fixed unregistered bug. Broken dependencies (like DB$34) appear in the database after metadata changes. Contributor(s): Dmitry Yemanov * Enhanced declaration of local variables. Simplify syntax and allow declaring and defining variable at the same time. Syntax: DECLARE [VARIABLE] name [{'=' | DEFAULT} value]; Example: DECLARE my_var INTEGER = 123; Contributor(s): Claudio Valderrama * Disabled BREAK statement for triggers (like EXIT) due to known internal limitations. Contributor(s): Dmitry Yemanov * Enhanced grouping (SF #555839, #546274). Allow to GROUP BY internal functions and subqueries. Also allow to GROUP BY ordinal (i.e. column position). Contributor(s): Arno Brinkman * New COALESCE internal function (SF #451917). Allow 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. Syntax: COALESCE (value {, value} ... ) Notes: 1. COALESCE (V1, V2) is equivalent to the following case specification: CASE WHEN V1 IS NOT NULL THEN V1 ELSE V2 END 2. COALESCE (V1, V2, ..., Vn), for n >= 3, is equivalent to the following case specification: CASE WHEN V1 IS NOT NULL THEN V1 ELSE COALESCE (V2, ..., Vn) END 3. The function has the same meaning as NVL one in Oracle. Example: SELECT PROJ_NAME AS Projectname, COALESCE(e.FULL_NAME, '[> not assigned <]') AS Employeename FROM PROJECT p LEFT JOIN EMPLOYEE e ON (e.EMP_NO = p.TEAM_LEADER) Contributor(s): Arno Brinkman * New NULLIF internal function (SF #451917). Return a NULL value for a sub-expression if it has a specific value, otherwise return the value of the sub-expression. Syntax: NULLIF (value, value) Note: NULLIF (V1, V2) is equivalent to the following case specification: CASE WHEN V1 = V2 THEN NULL ELSE V1 END Example: UPDATE PRODUCTS SET STOCK = NULLIF(STOCK, 0) Contributor(s): Arno Brinkman * New CASE internal function (SF #451917). Allow the result of a column to be determined by a the results of a case expression. Syntax: = | = CASE value ... [ELSE value] END = WHEN value THEN value = CASE ... [ELSE value] END = WHEN THEN value Note: The function has the same meaning as DECODE one in Oracle. Examples: 1. Simple case: SELECT o.ID, o.Description, CASE o.Status WHEN 1 THEN 'confirmed' WHEN 2 THEN 'in production' WHEN 3 THEN 'ready' WHEN 4 THEN 'shipped' ELSE 'unknown status ''' || o.Status || '''' END FROM Orders o 2. Searched case: SELECT o.ID, o.Description, CASE WHEN (o.Status IS NULL) THEN 'new' WHEN (o.Status = 1) THEN 'confirmed' WHEN (o.Status = 3) THEN 'in production' WHEN (o.Status = 4) THEN 'ready' WHEN (o.Status = 5) THEN 'shipped' ELSE 'unknown status ''' || o.Status || '''' END FROM Orders o Contributor(s): Arno Brinkman * Fixed bug SF #545725. Automatic/background sweep hangs. Contributor(s): Alexander Peshkoff * Fixed unregistered bug. The server crashes when XSQLDA structures are prepared for not all statement parameters. Contributor(s): Dmitry Yemanov * Enabled support for empty BEGIN...END blocks. Contributor(s): Dmitry Yemanov * Partially fixed bug SF #567931. Metadata security hole. Contributor(s): Dmitry Yemanov * Fixed unregistered bug. INT64 arrays don't work. Contributor(s): Artem Petkevych * Fixed bug SF #437859. Execute procedure and string concat. Note: This change allows any expression to be used as a SP parameter. Contributor(s): Dmitry Yemanov * Fixed bug SF #562417. Aggregate concatenated empty char. Contributor(s): Dmitry Yemanov * Readline (cmd history) support added to ISQL. Contributor(s): Mark O'Donohue * New BIGINT datatype (SF #446206). Allow native SQL usage of 64-bit exact numerics. Note: Available in dialect 3 only. Contributor(s): Dmitry Yemanov * Universal triggers (SF #451922). Allow one trigger to be fired for a number of action types. Syntax: CREATE TRIGGER name FOR table [ACTIVE | INACTIVE] [OR ] [OR ] [POSITION number] AS = {BEFORE | AFTER} = {DELETE | INSERT | UPDATE} Example: CREATE TRIGGER my_trigger FOR my_table BEFORE INSERT OR UPDATE AS BEGIN IF (NEW.DOC_ID IS NULL) THEN EXCEPTION my_exception; END Contributor(s): Dmitry Yemanov * New CONNECTION_ID and TRANSACTION_ID system variables (SF #446238, #446243). Return appropriate internal identifier stored on the database header page. Notes: 1. Available in SQL/PSQL. 2. The values are reset after a database is restored. Contributor(s): Dmitry Yemanov * Server-side database aliases (SF #446180). Any database can be attached to 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 = d:\dbs\my\database.gdb connection string: localhost:my_database Contributor(s): Dmitry Yemanov * New plugin manager and INTL interface. Contributor(s): John Bellardo * In-memory sorting. If SORT plan is used for a SQL statement, the sorting is done in memory. If there's not enough memory for this operation, old temporary file based method is used. Contributor(s): Dmitry Yemanov * Fixed bug SF #538201. Crash with extract from null as date. Contributor(s): Claudio Varderrama * New EXECUTE VARCHAR statement (SF #446256). Allow execution of dynamic SQL statements in SPs/triggers. Syntax: EXECUTE VARCHAR value; Notes: 1. Available in PSQL only. 2. Currently cannot return values, so SELECT statements are not allowed. 3. Recursion level is limited to 50 (hardcoded). Example: EXECUTE VARCHAR my_var; Contributor(s): Alexander Peshkoff * Major code cleanup. Contributor(s): Sean Leyne , Erik Kunze * New memory manager. Contributor(s): John Bellardo * New exception handling logic. Contributor(s): Mike Nordell , John Bellardo * New autoconf-based build configuration. Contributor(s): John Bellardo , Mark O'Donohue , Erik Kunze * The code port from C to C++. Contributor(s): Mike Nordell , John Bellardo , Mark O'Donohue