************************** * v2.0 Release Candidate 5 ************************** * Fixed RC4 bug (CORE-924) An attempt to select DB_KEY from a procedure crashes the server Contributor(s): Dmitry Yemanov * Fixed RC4 bug (CORE-923) Events (if many ones are registered) not working via the local protocol Contributor(s): Dmitry Yemanov * Fixed bug (CORE-921) Core dump in stored procedure using execute statement Contributor(s): Alex Peshkov * Fixed bug (CORE-911) AV in Classic server after long idle period when using long running read committed readonly transaction Contributor(s): Vlad Horsun * Fixed RC4 bug (CORE-906) Updating table with non-unique index causes unique data violation error Contributor(s): Vlad Horsun * Fixed RC4 bug (CORE-904) Too big use of memory in "prepare" Contributor(s): Vlad Horsun * Fixed bug (CORE-902) Server crashes intermittently when executing DDL/DML statements Contributor(s): Vlad Horsun * Fixed RC4 bug (CORE-898) Two uninitialized variables cause a server crash in alice.cpp / common_main Contributor(s): Vlad Horsun * Fixed RC4 bug (CORE-895) In some rare cases unique index violation is possible. The case is when existing index entry is the last entry on the page and inserted record with the same key have a number less than in existing entry Contributor(s): Vlad Horsun ************************** * v2.0 Release Candidate 4 ************************** * Fixed RC3 bug (CORE-839) Instclient failed to install gds32 over an existing version from V1.5.1 or later Contributor: Paul Reeves * Fixed unregistered bug Service didn't restart correctly on SUSE Linux Contributor(s): Alex Peshkov * Fixed RC3 bug (CORE-855) Aggregates in the WHERE clause vs derived tables Contributor(s): Arno Brinkman * Fixed RC3 bug (CORE-883) The built-in BLR printer (isc_print_blr) doesn't support all FB2 features Contributor(s): Vlad Horsun Dmitry Yemanov * Fixed RC3 bug (CORE-841) Access violation in services API (CORE-841) Contributor(s): Alex Peshkov * Fixed RC3 bug (CORE-879) Dependencies are not cleared when creation of expression index fails Contributor(s): Vlad Horsun * Fixed RC3 bug (CORE-860) Server crashes when attempting to restore a v1.5 backup Contributor(s): Dmitry Yemanov * Fixed RC3 bug (CORE-858) Server crash when using UDF in PSQL Contributor(s): Claudio Valderrama * Fixed RC3 bug (CORE-857) CONTAINING not working correctly Contributor(s): Adriano dos Santos Fernandes * Fixed RC3 bug (CORE-852) substring(current_user from 4) without "for" fails Contributor(s): Adriano dos Santos Fernandes ************************** * v2.0 Release Candidate 3 ************************** * Fixed RC2 bug GSTAT and NBAK should not require firebird.conf on Win32 Contributor(s): Dmitry Yemanov * Added new collation ES_ES_CI_AI (case- and accent-insensitive) for ISO8859_1 charset (Spanish language) Contributor(s): Adriano dos Santos Fernandes * Fixed unregistered bug Server crashes with complex joins or derived tables and grouping Contributor(s): George Sergeev * Fixed RC2 bug Server lockup when an exception occurs during expression index evaluation Contributor(s): Vlad Horsun * Fixed RC2 bug STARTS WITH not working properly on an indexed column with charset UTF8 Contributor(s): Adriano dos Santos Fernandes * Fixed unregistered bug Don't crash if some bad client passes more than the supported number of remote protocol versions Contributor(s): Aleksey Karyakin Alex Peshkov * Fixed unregistered bug TCP buffer size bigger than 32K cannot be processed correctly Contributor(s): Alex Peshkov * Fixed unregistered bug NoNagle option for TCP sockets doesn't work properly Contributor(s): Fred Polizo Alex Peshkov * Fixed RC2 bug Views WITH CHECK OPTION cannot be restored Contributor(s): Dmitry Yemanov * Fixed RC2 bug Server occasionally crashes when explicit plans present in procedures Contributor(s): Dmitry Yemanov * Fixed RC2 bug NBACKUP utility was missing in the Linux SS packages Contributor(s): Alex Peshkov * Fixed RC2 bug Suboptimal execution path is chosen if an explicit plan presents for a complex inner join Contributor(s): Dmitry Yemanov * Fixed RC2 bug Expression: '' CONTAINING '' wrongly returned FALSE Contributor(s): Adriano dos Santos Fernandes * Fixed RC2 bug Wrong results for ALL predicates in the ODS11 optimizer Contributor(s): Dmitry Yemanov * Fixed RC2 bug Wrong decoding of the SPB tags Contributor(s): Alex Peshkov ************************** * v2.0 Release Candidate 2 ************************** * Fixed RC1 bug SuperServer performs slower than v1.5 on SMP machines Contributor(s): Arno Brinkman * Fixed RC1 bug Domain level CHECK constraints don't allow NULL values Contributor(s): Dmitry Yemanov * Fixed RC1 bug Embedded server cannot connect via TCP, error "connection rejected by remote interface" Contributor(s): Vlad Horsun * Fixed RC1 bug Error "operating system directive ReleaseSemaphore failed" under heavy concurrent load Contributor(s): Christian Barheine Dmitry Yemanov * Fixed RC1 bug The INTL library (fbintl) cannot be loaded on some Windows distributions Contributor(s): Dmitry Yemanov * Configuration file change Option CreateInternalWindow is no longer required to run a few server instances and it has been removed Contributor(s): Dmitry Yemanov * Fixed RC1 bug MERGE plan is used for related streams, causing "no current record" error Contributor(s): Arno Brinkman * Fixed unregistered bug Index data corruption under heavy concurrent load Contributor(s): Vlad Horsun * Fixed unregistered bug AV when configured to use big (about 32K) TCP packets Contributor(s): Claudio Valderrama Alex Peshkov * Added new collation ISO_PLK for ISO8859_2 charset (Polish language) Contributor(s): Jaroslaw Glowacki Adriano dos Santos Fernandes * Fixed RC1 bug SHOW GENERATORS doesn't work in ISQL Contributor(s): Adriano dos Santos Fernandes * Fixed SF #1466193 Semaphore array`s permissions in fb_lock_mgr were 0666 - i.e. anyone could lock them and block all future queries Contributor(s): Alex Peshkov * Fixed unregistered bug 2.0 regression - install of SuperServer over existing Classic was broken Contributor(s): Alex Peshkov * Fixed SF #1456002 2.0 regression - gsec illegally reported error on attempt to use long (>8 characters) password Contributor(s): Alex Peshkov * Fixed SF #1011401 start/stop script broke halt/reboot on slackware Contributor(s): Alex Peshkov * Fixed unregistered bug 2.0 regression - SuperServer startup script stopped all 'fbserver' processes, being specially dangerous in case of running both 2.0 and 1.5 on the same box Contributor(s): Alex Peshkov * Fixed unregistered bug fbguard did not detach from controlling terminal Contributor(s): Alex Peshkov * Fixed unregistered bug 2.0 regression - SuperServer did not shutdown properly due to unhandled exception in semaphore destructor Contributor(s): Alex Peshkov * Fixed RC1 bug Set up the permissions for NBAK delta files properly to avoid server lockups Contributor(s): Alex Peshkov * Fixed unregistered bug Error "invalid transaction handle" when calling isc_array_lookup_bounds() from multiple threads Contributor(s): Dmitry Yemanov * Fixed unregistered bug Allow NO_NAGLE and KEEPALIVE socket options for CS builds Contributor(s): Dmitry Yemanov * Fixed RC1 bug Some integer operations delivered double precision result in Dialect 1 Contributor(s): Dmitry Yemanov * Fixed RC1 bug Big number of buffer pages causes the server fault Contributor(s): Dmitry Yemanov * Fixed RC1 bug Wrong results by PSQL cursors that use a GROUP BY clause Contributor(s): Dmitry Yemanov * Fixed RC1 bug Missing nullability indicator in XSQLDA for EXECUTE BLOCK parameters Contributor(s): Vlad Horsun * Fixed unregistered bug Improperly allowed assignments to columns deleted by a concurrent transaction Contributor(s): Dmitry Yemanov * Fixed RC1 bug Permission checks performed in the wrong order (column level before table level) Contributor(s): Dmitry Yemanov ************************** * v2.0 Release Candidate 1 ************************** * Enhancement Isql now shows the command line parameters and their explanations instead of a simple list of switches when unknown parameters are used. Contributor(s): Michal Kubecek * Fixed SF #1446987 BLOB not found Contributor(s): Vlad Horsun * Fixed Beta 2 bug Server crashes when dropping a constraint based on inactive index Contributor(s): Vlad Horsun * New port Introduced AMD64 port for FreeBSD Contributor(s): Sergey Skvortsov Alex Peshkov * Security change LegacyHash config option now defaults to 1 (TRUE) Contributor(s): Alex Peshkov * Fixed Beta 2 bug (SF #1449377) Wrong sum result of derived table with no cast union select Contributor(s): Arno Brinkman * Fixed SF #1434147 Bugs with COUNT (DISTINCT XXX) when XXXX is a high integer Contributor(s): Vlad Horsun * Fixed SF #1422471 Memory leak in EXECUTE STATEMENT Contributor(s): Alex Peshkov * Fixed Beta 2 bug Incorrect malformed string error Contributor(s): Adriano dos Santos Fernandes * Fixed Beta 2 bug Wrong behaviour on OS error in critical mutexes Contributor(s): Alex Peshkov * Fixed Beta 2 bug Unexpected exception (like out of memory condition) lost in gbak Contributor(s): Alex Peshkov * Fixed unregistered bug Possible buffer overflow in WNET Contributor(s): Alex Peshkov * Fixed Beta 2 bug Legacy users' management API failed due to not initialized memory Contributor(s): Alex Peshkov * Diagnostic enhancement Syslog messages also go to user's tty if process attached to it Contributor(s): Alex Peshkov * Fixed Beta 2 bug "invalid handle" exception during events shutdown (local protocol only) Contributor(s): Dmitry Yemanov * Fixed Beta 2 bug PSQL cursors return incorrect results in case of sorting/aggregation Contributor(s): Dmitry Yemanov * Fixed Beta 2 bug RETURNING INTO returns incorrect results Contributor(s): Dmitry Yemanov * Fixed SF #1435997 Close database error -901 for embedded server Contributor(s): Dmitry Yemanov * Fixed SF #1260310 Nessus scan causes server to drop connections Contributor(s): Alex Peshkov * Fixed Beta 2 bug (SF #1439268) Sequence of commands crash FB server Contributor(s): Adriano dos Santos Fernandes * Fixed SF #1385092 Firebird 1.5 SS freezes on terminated connection on blob Contributor(s): Alex Peshkov * Fixed Beta 2 bug Server crashes due to bug in the Knuth-Morris-Pratt algorithm (LIKE implementation) Contributor(s): Adriano dos Santos Fernandes * Fixed SF #1436066 Adding index during DB activity causes GFIX errors Contributor(s): Vlad Horsun * Fixed Beta2 bug Wrong processing (missing records) of GREATER-THAN operator for compound indices in some cases Contributor(s): Vlad Horsun * Fixed unregistered bug A few types of subqueries are wrongly treated as being variant, causing performance issues Contributor(s): Dmitry Yemanov * Fixed Beta 2 bug (SF #$1433583) Unexpected error "key size exceeds implementation restriction" for UTF-8 charset Contributor(s): Adriano dos Santos Fernandes * Fixed unregistered bug Indices used in explicit plans inside PSQL could be dropped, thus causing restore issues Contributor(s): Adriano dos Santos Fernandes * Fixed unregistered bug fb_lock_print fails with message: "the requested operation cannot be performed on a file with a user-mapped section open". Contributor(s): Vlad Horsun * Information API enhancements 1) isc_info_active_transactions_count returns number of active transactions (SF #1315814) 2) isc_transaction_info returns transaction isolation level and options (SF #1089646) 3) isc_info_creation_date returns creation date of the database See also: /doc/sql.extensions/README.isc_info_xxx Contributor(s): Vlad Horsun * Fixed unregistered bug Transaction ID cannot silently (and dangerously) overflow anymore (the limit is still 2^31) Contributor(s): Vlad Horsun * Fixed unregistered bug Read committed transactions block garbage collection Contributor(s): Vlad Horsun * Fixed unregistered bug ALL predicate may return wrong results Contributor(s): Dmitry Yemanov * Fixed unregistered bug Thread safety issues in datetime functions of the FBUDF library Contributor(s): Claudio Valderrama * Build improvement FBUDF library no longer depends on FBCLIENT Contributor(s): Claudio Valderrama * Fixed unregistered bug Permissions are not checked for view columns Contributor(s): Dmitry Yemanov * Fixed unregistered bug Server crashes if positioned UPDATE/DELETE is executed via DSQL and it references a cursor which is already released. Contributor(s): Vlad Horsun * Fixed SF bug #1404157 DFW is not ready for RECREATE TABLE/VIEW Contributor(s): Dmitry Yemanov * Fixed unregistered bug Restored the code which replaces ROLLBACK with COMMIT if a transaction has not modified any data Contributor(s): Dmitry Yemanov * Fixed unregistered bug ROW_COUNT is cleared after SUSPEND execution Contributor(s): Dmitry Yemanov * Fixed SF bug #1408079 Parser does not validate string literal markers Contributor(s): Claudio Valderrama * Fixed Beta 2 bug Incorrect ambiguity error raised for quantified predicates (ANY/ALL/IN) Contributor(s): Arno Brinkman * Fixed unregistered bugs 1) Wrong statistics if relation\index data is longer than 2^32 bytes length 2) Wrong statistics: average index key length rounded to integer value Contributor(s): Vlad Horsun * Fixed unregistered bug Attachments with isc_dpb_no_garbage_collect option force the sweep Contributor(s): Vlad Horsun * Fixed Beta 2 bug Wrong string length calculated for UNICODE_FSS system domains in users views and tables Contributor(s): Adriano dos Santos Fernandes Dmitry Yemanov * Fixed Beta 2 bug Incorrectly stored source for CURRENT_TIME\CURRENT_TIMESTAMP in procedure parameters default values Contributor(s): Vlad Horsun ************** * v2.0 Beta 2 ************** * Forward port from 1.5.3 Added OldColumnNaming support Contributor: Paul Reeves * Fixed Beta 1 bug Problem causing collation to be lost in sqlsubtype when using dynamic charset Contributor(s): Adriano dos Santos Fernandes * Fixed Beta 1 bug Expression indices work incorrectly with the COLLATE clause Contributor(s): Dmitry Yemanov * Fixed Beta 1 bug Wrong results when a few candidate predicates have different matching rules to lower/upper bounds of the index Contributor(s): Arno Brinkman * Added new collations WIN_CZ for WIN1250 charset (Czech language, case-insensitive) WIN_CZ_CI_AI for WIN1250 charset (Czech language, case-insensitive, accent-insensitive) Contributor(s): Ivan Prenosil Adriano dos Santos Fernandes * Fixed unregistered bug The client library doesn't react on setting envvars via SetEnvironmentVariable() Contributor(s): Claudio Valderrama * Fixed SF bug #1404215 Column dependencies are not stored for views Contributor(s): Dmitry Yemanov * Fixed Beta 1 bug Remote connections to the Services API performed with a wrong host are in fact served by the local protocol instead of throwing an error Contributor(s): Dmitry Yemanov * Fixed Beta 1 bug Bugcheck #205 (index bucket overfilled) during restore Contributor(s): Dmitry Yemanov * Fixed Beta 1 bug Expression indices cannot be used for navigation in outer joins Contributor(s): Dmitry Yemanov * Fixed Beta 1 bug Wrong (incomplete) errors are reported by system triggers Contributor(s): Dmitry Yemanov * Fixed SF bug #229237 Blank passwords poorly supported Contributor(s): Alex Peshkov * Fixed unregistered bug Made the server version information human readable in ISQL when using the -z flag Contributor(s): Claudio Valderrama * Fixed unregistered bugs A few buffer overruns in ISQL Contributor(s): Alex Peshkov Dmitry Yemanov * Fixed Beta 1 bug An infinite fetch from explicit PSQL cursors based on a navigationally sorted stream Contributor(s): Dmitry Yemanov * Security enhancements 1) Active protection from brute-force attack in services API 2) Redirection of remote requests is controlled by firebird.conf Contributor(s): Alex Peshkov * Fixed unregistered bug Incorrect encryption of password in embedded services manager Contributor(s): Alex Peshkov * Fixed Beta 1 bug Unexpected warnings about missing UDF libraries during restore on Win32 Contributor(s): Dmitry Yemanov * Fixed Beta 1 bug Linux SS performance degradation related to the threads management Contributor(s): Alex Peshkov * Fixed unregistered bug Incorrect Win32 error output by GSTAT Contributor(s): Claudio Valderrama * Fixed Beta 1 bug Incorrect report by GFIX validation about corruption of primary/unique indices Contributor(s): Arno Brinkman * Fixed Beta 1 bugs 1) Long restore for complex interdependent metadata 2) Indices not used for small tables 3) Bad join order for non-indexed relationships Contributor(s): Arno Brinkman Dmitry Yemanov * Enhanced CAST function (SF #1371274) Now it's possible to use CAST to advise the engine about parameter types, hence avoiding the famous "Datatype unknown" error Example(s): SELECT CAST(? AS INT) FROM RDB$DATABASE Contributor(s): Dmitry Yemanov * Fixed SF bug #1191206 A few constraint issues Contributor(s): Dmitry Yemanov * Fixed SF bug #1292106 ORDER BY with FOR UPDATE WITH LOCK crashes index Contributor(s): Dmitry Yemanov * Fixed SF bug #609538 Alter Index FK - bad error message Contributor(s): Dmitry Yemanov * Added new charset Charset WIN1258 for Vietnamese language Contributor(s): Nguyen The Phuong Adriano dos Santos Fernandes * Fixed unregistered bug GPRE is unable to generate more than 32K identifiers Contributor(s): Ann Harrison * Fixed Beta 1 bug Datatype changes of index-constrained columns are allowed Contributor(s): Dmitry Yemanov * Fixed Beta 1 bug Wrong result for STARTING WITH and subquery containing CASE function Contributor(s): Adriano dos Santos Fernandes * Fixed Beta 1 bug Backup of the security database is not allowed using Services API Contributor(s): Alex Peshkov * Cleaned up ibase.h Public headers don't contain private declarations anymore Contributor(s): Dmitry Yemanov Alex Peshkov * Fixed unregistered bug Wrong error can be reported when you access not active contexts in multi-action triggers Contributor(s): Dmitry Yemanov * Fixed SF #1368741 Wrong result for UPPER() Contributor(s): Adriano dos Santos Fernandes * Enhanced API call isc_blob_lookup_desc() now also describes blobs that are outputs of stored procedures Contributor(s): Adriano dos Santos Fernandes * Fixed Beta 1 bug Server crashes when TRIM function is used in aggregation Contributor(s): Dmitry Yemanov * Fixed unregistered bug Server crashes when manipulating input DPB due to memory corruption in Parameter Blocks management Contributor(s): Claudio Valderrama * Fixed Beta 1 bug Column names are lost in case of UNION containing derived fields Contributor(s): Arno Brinkman * Fixed Beta 1 bug Server crashes when a few expression indices are used simultaneously Contributor(s): Vlad Horsun * Fixed SF bug #1175157 Error in thread scheduler causes server to lockup Contributor(s): Vlad Horsun * Fixed unregistered bug Wrong ISQL metadata extraction for triggers, check constraints and views with check option Contributor(s): Claudio Valderrama Dmitry Yemanov * Fixed Beta 1 bug Server crash when attempting to load metadata for expression index that belong to a not scanned table Contributor(s): Vlad Horsun * Fixed unregistered bug Internal error is reported when attempting to pass/return blobs to/from string functions inside PSQL Contributor(s): Dmitry Yemanov * Fixed Beta 1 bug Corrupted IDs of system generators after restore Contributor(s): Dmitry Yemanov * Fixed Beta 1 bug Explicit plan could be rejected/ignored in ODS11 databases Contributor(s): Arno Brinkman * Root directory lookup change Registry is no longer used by the server processes Contributor(s): Dmitry Yemanov * Fixed unregistered bugs 1) Improper thread data operations during the protocol port cleanup 2) No transaction rollback / attachment cleanup for broken TCP connections Contributor(s): Vlad Horsun Dmitry Yemanov * Fixed unregistered bug Wrong error message is decoded when firebird.msg is missing or outdated Contributor(s): Dmitry Yemanov * Fixed unregistered bug Memory corruption and server crash caused by buffer overflows inside the BLR->ASCII blob filter Contributor(s): Dmitry Yemanov * Fixed Beta 1 bug Bad optimization of joins order Contributor(s): Dmitry Yemanov * Fixed Beta 1 bug Incorrect source SQL is stored in the metadata for DEFAULT CURRENT_TIME[STAMP] Contributor(s): Vlad Horsun Dmitry Yemanov * Fixed Beta 1 bug Column defaults remain cached after DROP DEFAULT statement Contributor(s): Vlad Horsun * Enhanced SET TRANSACTION statement All TPB options are now supported: - NO AUTO UNDO - IGNORE LIMBO - LOCK TIMEOUT Example(s): SET TRANSACTION WAIT SNAPSHOT NO AUTO UNDO LOCK TIMEOUT 10 See also: doc/sql.extensions/README.set_transaction.txt Contributor(s): Claudio Valderrama * Fixed Beta 1 bug Server crash caused by invalid reference to RDB$ROLES.RDB$SYSTEM_FLAG in ODS10 databases Contributor(s): Claudio Valderrama * Fixed Beta 1 bug Corrupted incremental backups are created after changes in large blobs Contributor(s): Nickolay Samofatov * Fixed unregistered bug Server crash when attempting to restore a database backup with corrupted VARCHAR data Contributor(s): Dmitry Yemanov * Fixed unregistered bug A successful status vector could be reported to the user after a failed DDL operation Contributor(s): Vlad Horsun * Fixed unregistered bug Threading issues in the DSQL metadata cache causing unexpected "invalid transaction handle" errors under load Contributor(s): Dmitry Yemanov * Fixed Beta 1 bug Incorrect checking of subqueries/derived tables in the HAVING clause Contributor(s): Arno Brinkman * Fixed unregistered bug Wrong result by the division operation after DDL changes Example(s): 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 Contributor(s): Dmitry Yemanov * Fixed Beta 1 bug Memory corruption causing server to crash when using CURRENT_TIME[STAMP] in some complex cases (nested procedure calls or views) Contributor(s): Dmitry Yemanov * Fixed SF bug #1184099 Incorrectly padding when using charset OCTETS Contributor(s): Claudio Valderrama Adriano dos Santos Fernandes * Fixed unregistered bug Unexpected errors caused by improperly handled dead record versions created by the system transaction during DDL operations Contributor(s): Ann Harrison * Further optimizer improvements Better cost-based calculation Contributor(s): Arno Brinkman * Fixed Beta 1 bug ALTER TABLE SET DEFAULT incorrectly modifies RDB$FIELDS instead of RDB$RELATION_FIELDS Contributor(s): Claudio Valderrama * Fixed Beta 1 bug Index is not rebuilt after a datatype change Contributor(s): Vlad Horsun * Fixed Beta 1 bug (SF #1192225) Automatic NOT NULL in PK columns incomplete Contributor(s): Claudio Valderrama * Fixed unregister bug GBAK adds garbage bytes to SPB when called in the -SE mode Contributor(s): Adriano dos Santos Fernandes Claudio Valderrama Vlad Horsun * Added new DDL statement RECREATE TRIGGER statement is now available in DDL Note(s): Semantics is the same as for other RECREATE statements Contributor(s): Dmitry Yemanov * Fixed unregister bug SuperServer deadlock in the DSQL metadata cache Contributor(s): Alex Peshkov * Fixed unregistered bug Server crashes during some DDL actions Example(s): alter table rdb$relations add rdb$garbage varchar(30); Contributor(s): Jim Starkey * Fixed SF bug #223060 Slow processing of GREATER-THAN operator Contributor(s): Vlad Horsun * Fixed unregistered bug Check constraints are not SQL compliant in regard to the NULL handling Example(s): CHECK (DEPTNO IN (10, 20, 30)) should allow NULL values in the DEPTNO column but it does not Contributor(s): Paul Ruizendaal Dmitry Yemanov * Fixed unregistered bug Primary key could be created on a column having NULL values Example(s): 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; Contributor(s): Vlad Horsun * Fixed Beta 1 bug Wrong access permissions to the QLI help database Contributor(s): Alex Peshkov * Fixed Beta 1 bug OLD/NEW context references are improperly recognized as matching another table Contributor(s): Arno Brinkman * Fixed SF bug #1334034 REVOKE damages ACL Contributor(s): Dmitry Yemanov ************** * v2.0 Beta 1 ************** * Fixed Alpha 3 bug Client crashes while calling isc_interpret() for isc_except error code Contributor(s): Dmitry Yemanov * Fixed Alpha 3 bug ALTER TABLE doesn't see uncommitted relations Contributor(s): Dmitry Yemanov Vlad Horsun * Fixed Alpha 3 bug Server crashes while performing the sweep Contributor(s): Vlad Horsun * Fixed Alpha 3 bug Improperly reused error codes causing wrong lookup in older firebird.msg Contributor(s): Claudio Valderrama * Changed security2.fdb 1) Table USERS_BG is renamed to RDB$USERS 2) User name is now UNICODE_FSS instead of ASCII Contributor(s): Alex Peshkov * Fixed unregistered bug "Cannot find record fragment" bugcheck happens during GC in system tables Contributor(s): Vlad Horsun * Fixed Alpha 3 bug Server crashes when attempting to release a BLOB Contributor(s): Vlad Horsun * Fixed Alpha 3 bug Incorrect ODS layout in AMD64 builds Contributor(s): Alex Peshkov * Fixed Alpha 3 bug Removed collation alias PT_BR for WIN1252, rolled back to globally unique collation names Contributor(s): Adriano dos Santos Fernandes * Fixed SF bug #1211328 Maximum BLOB size (error reporting) Contributor(s): Dmitry Yemanov * Fixed unregistered bug System triggers of wrong ODS are executed Contributor(s): Dmitry Yemanov * Fixed SF bug #217042 IB doesn't validate weird constructions Contributor(s): Claudio Valderrama * Fixed Alpha 3 bug Deletes perform slower than in v1.5 Contributor(s): Dmitry Yemanov * Fixed SF bug #1292007 INSERT and UPDATE allow duplicate field name Contributor(s): Claudio Valderrama * Fixed Alpha 3 bug (SF #1305110) FB 2.0 clash between UDF and internal LOWER function Note(s): UDF lower is now declared as "LOWER" in ib_udf2.sql Contributor(s): Claudio Valderrama * Fixed SF bug #223128 SYSDBA can grant non existent roles Contributor(s): Dmitry Yemanov * Fixed Alpha 3 bug Broken GSEC compatibility (-database switch) Contributor(s): Alex Peshkov * Fixed Alpha 3 bug Bugcheck or wrong result caused by the FETCH statement Contributor(s): Dmitry Yemanov * Fixed unregistered bug Server crashes when too big key is specified for an index retrieval Contributor(s): Dmitry Yemanov * Fixed Alpha 3 bug ISQL doesn't extract default values for stored procedure parameters Contributor(s): Claudio Valderrama * Fixed unregistered bug SQL string is stored truncated within the RDB$*_SOURCE columns in some cases Contributor(s): Dmitry Yemanov * Fixed Alpha 3 bug Index is rebuilt while being described via the COMMENT ON INDEX statement Contributor(s): Claudio Valderrama * Fixed Alpha 3 bug SEGV when legacy isc_interprete() is called Contributor(s): Claudio Valderrama * Fixed Alpha 3 bug Server crashes on some DDL operations performed on not yet committed tables Contributor(s): Dmitry Yemanov * Installation enhancement Added optional switch -i[interactive] to instsvc.exe to allow interactive mode for LocalSystem services Contributor(s): Dmitry Yemanov * Fixed unregistered bug Broken implementation of the MATCHES predicate in GDML Contributor(s): Dmitry Yemanov * Fixed Alpha 3 bug Issue of SQLVAR.sqllen from non-system MBCS fields Contributor(s): Adriano dos Santos Fernandes * Fixed unregistered bug GBAK cannot restore a database containing broken foreign keys Contributor(s): Alex Peshkov * SQL enhancement Allowed value expressions to be returned via the RETURNING clause See also: /doc/sql.extentions/README.returning.txt Contributor(s): Dmitry Yemanov * Fixed Alpha 3 bug Implict NOT NULL (in PRIMARY KEY constraint) is generated with the same constraint name of the PK Contributor(s): Adriano dos Santos Fernandes * Fixed unregistered bugs 1) Unpredictable behaviour of gds__log() on POSIX in signal handlers 2) Signal safety issues in SuperServer shutdown 3) Buffer overrruns in physical I/O functions Contributor(s): Alex Peshkov * SQL enhancement CURRENT_TIME and CURRENT_TIMESTAMP now optionally allow seconds precision See also: /doc/sql.extentions/README.current_time.txt Contributor(s): Dmitry Yemanov * Fixed Alpha 3 bug Not enough process permissions caused rejecting of XNET connections Contributor(s): Dmitry Yemanov * Security enhancement 1) Always require login/password for remote clients 2) Temporary disable logins for clients, making too many wrong attempts to login Contributor(s): Alex Peshkov * Fixed unregistered bug Comparisons between strings in NONE and other charset caused an error Contributor(s): Dmitry Yemanov Adriano dos Santos Fernandes * Fixed unregistered bug Incorrect UDF access checking Contributor(s): Dmitry Yemanov * Fixed Alpha 3 bug (SF #1249187) String literals dest. for large CHAR fields truncated Contributor(s): Adriano dos Santos Fernandes * Fixed Alpha 3 bug (SF #1256675) Create foreign constraint without PK sometimes fails Contributor(s): Vlad Horsun * Fixed Alpha 3 bug WHEN EXCEPTION handler doesn't work Contributor(s): Claudio Valderrama Dmitry Yemanov * DDL enhancement SET/DROP DEFAULT clauses are now available for ALTER DOMAIN and ALTER TABLE statements See also: /doc/sql.extentions/README.ddl.txt Contributor(s): Claudio Valderrama * Improved Services API Services are now executed as threads rather than processes on some threadable CS builds Contributor(s): Dmitry Yemanov * Fixed unregistered bugs 1) '1.5' / '0.5' doesn't work in Dialect 1 2) avg ('1.5') doesn't work in Dialect 1 3) 5 * '1.5' produces INT result instead of DOUBLE PRECISION in Dialect 1 4) sum ('1.5') produces NUMERIC(15, 2) result instead of DOUBLE PRECISION in Dialect 1 5) - '1.5' doesn't work in Dialect 1 6) '1.5' * '0.5' and '1.5' / '0.5' are not forbidden in Dialect 3 Contributor(s): Dmitry Yemanov * Fixed SF bug #1250150 Can't drop procedure Contributor(s): Vlad Horsun * Fixed Alpha 3 bug Expression index dependencies aren't tracked correctly Contributor(s): Vlad Horsun * Fixed bug SF #1238104 Incorrect sweep internal report Contributor(s): Claudio Valderrama * Added UDF function IB_UDF_srand is now available in the IB_UDF library Contributor(s): Adriano dos Santos Fernandes * Added new collation BS_BA for WIN1250 charset (Bosnian language) Contributor(s): Fikret Hasovic * Fixed Alpha 3 bugs 1) "WITH CHECK OPTION" bug 2) Issue with unreleased contexts in derived tables 3) Outer references to higher scope-levels are rejected in derived tables Contributor(s): Arno Brinkman * Fixed Alpha 3 bugs 1) NEXT VALUE FOR bug for dialect 3 (32bit impementation was used) 2) Issue with GEN_ID(, NULL) Contributor(s): Dmitry Yemanov * Fixed Alpha 3 bug Foreign-key checks failed due to the new INTL changes Contributor(s): Arno Brinkman * Fixed Alpha 3 bug (SF #1289925) isc_array_lookup_bounds bug Contributor(s): Dmitry Yemanov * Fixed Alpha 3 bugs 1) Issues with NEW/OLD contexts and derived tables 2) Issues with the IN predicate 3) Invalid parsing of PLANs inside views Contributor(s): Arno Brinkman * Fixed bug SF #1244126 Update text BLOBs when connected with NONE charset Contributor(s): Adriano dos Santos Fernandes * Fixed bug SF #1242106 1) Incorrect commit instead of rollback during shutdown 2) Crash or bugcheck during SuperServer shutdown with active attachments Contributor(s): Dmitry Yemanov * Fixed bug SF #1242982 Bug in compound index key mangling Contributor(s): Arno Brinkman * 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 Alpha 3 bug (SF #1242106) In-Limbo transaction Services API broken Contributor(s): Vlad Horsun * Fixed bug SF #1242379 Collation changes VARCHAR's length Contributor(s): Adriano dos Santos Fernandes * Added ROLLBACK RETAIN syntax support ROLLBACK RETAIN statement is now supported in DSQL Contributor(s): Dmitry Yemanov * Fixed unregistered bugs 1) Do not overwrite destination during NBACKUP restore 2) Fixed cases of corrupted backups created by NBACKUP 3) Fixed some memory/handle leaks Contributor(s): Nickolay Samofatov * Fixed Alpha 3 bug Threading issues in DSQL causing errors at prepare Contributor(s): Dmitry Yemanov ************** * v2.0 Alpha 3 ************** * DDL improvement Allow to create foreign key constraints without need to get exclusive lock on whole database Contributor(s): Vlad Horsun * Fixed unregistered bug Fix 'partner index not found' error when one classic process dropped FK and another process trying to delete master record Contributor(s): Vlad Horsun * ISQL improvement Make SQLDA_DISPLAY display input SQLDA parameters of INSERTs, UPDATEs and DELETEs Contributor(s): Adriano dos Santos Fernandes * Fixed unregistered bug Server crashed when PLAN for VIEW is specified but no table alias was given Contributor(s): Vlad Horsun * Fixed Alpha 2 bug (SF #1184591) Invalid ROW_COUNT variable value after DELETE Contributor(s): Dmitry Yemanov * Fixed unregistered bugs 1) redundant attempts to get an exclusive database lock during shutdown 2) inaccurate timeout counting 3) database lock is not released after bringing database online in the exclusive mode 4) removed a 5 sec timeout when bringing database online in the shared mode Contributor(s): Dmitry Yemanov * Fixed bug SF #1016040 Missing external libraries causes engine exception Contributor(s): Adriano dos Santos Fernandes * DML enhancement Implemented RETURNING clause for the INSERT statement See also: /doc/sql.extentions/README.returning Contributor(s): Dmitry Yemanov * Fixed bug SF #1186607 Foreign key relation VARCHAR <-> INT Contributor(s): Vlad Horsun * Fixed bug SF #1211325 BLOBs in external tables Contributor(s): Vlad Horsun * New charsets/collations 1) KOI8-R (Russian language) and KOI8-U (Ukrainian language) charsets and dictionary collations 2) WIN1257_LV (Latvian), WIN1257_LT (Lithuanian), WIN1257_EE (Estonian) collations Contributor(s): Oleg Loa Aleksey Karyakin * Parser improvement Try report the line/column of an incomplete statement. Contributor(s): Claudio Valderrama * Fixed unregistered bugs 1) Charset/collation issues for expression-based view columns 2) Lost charset/collation for local PSQL variables Contributor(s): Dmitry Yemanov * Fixed Alpha 2 bug (SF #1171256) Local Protocol (XNET) isn't using aliases Contributor(s): Dmitry Yemanov * Fixed unregistered bug Database alises didn't work in WNET Contributor(s): Dmitry Yemanov * Fixed bug SF #1211354 Redundant evaluations in COALESCE Contributor(s): Arno Brinkman * Fixed unregistered bug Client crashed while disconnecting with active event listener Contributor(s): Dmitry Yemanov * Fixed SF bug #1208932 SHOW GRANT does not distinguish object types Contributor(s): Claudio Valderrama * Optimizer improvement Use more realistic cost value for unique retrieval Contributor(s): Arno Brinkman * Fixed SF bug #494981 Bad exception report Contributor(s): Claudio Valderrama * DDL enhancement Implemented ALTER EXTERNAL FUNCTION to change the entry_point or the module_name when the UDF cannot be dropped due to existing dependecies Contributor(s): Claudio Valderrama * Fixed Alpha 2 bugs 1) bug with selectivity of non-equality comparisons 2) changed the invertions selection code to help in both MERGE and JOIN paths 3) implemented metadata extract for expression indices 4) the threading issues in fbembed Contributor(s): Dmitry Yemanov * DDL enhancement Implemented the COMMENT statement to set the metadata descriptions See also: /doc/sql.extentions/README.ddl.txt Contributor(s): Claudio Valderrama * Fixed bug SF #908319 1.5 wrong err msg using gbak with service_mgr Contributor(s): Vlad Horsun * Fixed unregistered bug A few internal buffer overflows are fixed Contributor(s): Alex Peshkov * Fixed unregistered bug After an attempt to "create view v(c1) as select 1 from v" all clones of system request remained active forever Contributor(s): Alex Peshkov * Fixed Alpha 2 bug Server crashed in incorrect written EXECUTE BLOCK statement Example(s): EXECUTE BLOCK AS BEGIN INSERT INTO DUMMY (ID) VALUES(?); END Contributor(s): Vlad Horsun * Fixed unregistered bug ISQL_disconnect_database overwriting the Quiet flag permanently Contributor(s): Miroslav Penchev Claudio Valderrama * Fixed unregistered bug Server crashed during the table metadata scan in some cases Contributor(s): Dmitry Yemanov * Fixed unregistered bug Error "index key too big" when creating a descending index Contributor(s): Vlad Horsun * Fixed SF bug #1191006 Using where params in SUM return incorrect results Contributor(s): Arno Brinkman * Fixed Alpha 2 bug Problem with distributing sort to deeper RSE Example(s): SELECT RDB$RELATION_NAME FROM (SELECT FIRST 10 * FROM RDB$RELATIONS ORDER BY RDB$RELATION_NAME DESC) ORDER BY RDB$RELATION_NAME Contributor(s): Arno Brinkman * Fixed SF bug #1122344 gbak -kill option drops existing shadow Contributor(s): Dmitry Yemanov * Fixed SF bug #750662 Multiple declaration of blob filters Contributor(s): Dmitry Yemanov * Parser improvement UNIONs are allowed in ANY/ALL/IN subqueries Contributor(s): Dmitry Yemanov * Fixed SF bug #743679 FIRST / SKIP not well implemented Contributor(s): Dmitry Yemanov * Optimizer improvement NOT conditions are simplified and optimized via index when possible Example(s): (NOT NOT A = 0) -> (A = 0) (NOT A > 0) -> (A <= 0) Contributor(s): Dmitry Yemanov * Fixed SF bug #450404 ISQL uppercases role in the command line Contributor(s): Claudio Valderrama * Fixed unregistered bug 100% CPU load when an I/O error causes a rollover to non-existing shadow Contributor(s): Dmitry Yemanov * Fixed Alpha 2 bug (SF #1173988) Minor glitches in GBAK output Contributor(s): Claudio Valderrama * Fixed unregistered bug 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 * New INTL interface A new interface allowing the following enhancements and features Contributor(s): Nickolay Samofatov * INTL enhancements 1) Well-formedness checks of string constants and parameters 2) Uppercase and lowercase all possible (and not only ASCII) characters in default collation orders 3) Check length of characters (and not bytes) for new MBCS (including UTF8) 4) Inform original character set in sqlsubtype of XSQLVAR when connecting with NONE Contributor(s): Adriano dos Santos Fernandes * BLOB enhancements 1) Allow usage of collations 2) Perform comparison using entire content 3) Convert between character sets when assigning from string or BLOB Contributor(s): Adriano dos Santos Fernandes * Unicode 4.0 support UTF8 character set with collations UCS_BASIC and UNICODE Contributor(s): Adriano dos Santos Fernandes * Brazilian collations 1) Collation PT_BR for ISO8859_1 and WIN1252 character sets 2) Collation WIN_PTBR for WIN1252 character set Contributor(s): Adriano dos Santos Fernandes Paulo Henrique Albanez * New string functions LOWER, BIT_LENGTH, CHAR_LENGTH/CHARACTER_LENGTH, OCTET_LENGTH, TRIM. See also: /doc/sql.extentions/README.length /doc/sql.extentions/README.trim Contributor(s): Adriano dos Santos Fernandes * INTL plugins Character sets and collations are installed using a manifest file. Server write to the log when conflicts exist. Contributor(s): Adriano dos Santos Fernandes * Fixed SF #1073212 Order by big columns (collate) terminates server Contributor(s): Adriano dos Santos Fernandes * Fixed SF #939844 Queries > 263 chars with UNICODE DB throws GDS Exception Contributor(s): Adriano dos Santos Fernandes * Fixed SF #977785 Wrong character lengths MBCS (UTF-8, East-Asian charsets) Contributor(s): Adriano dos Santos Fernandes * Fixed SF #536243 UNICODE_FSS charset and UPPER function Contributor(s): Adriano dos Santos Fernandes * Fixed SF #942726 UPPER does not convert aacute to Aacute for ISO8859_1 Contributor(s): Adriano dos Santos Fernandes * Fixed SF #544630 Problems when connecting using UNICODE Contributor(s): Adriano dos Santos Fernandes * Fixed SF #540547 Concatenation, numeric fields & charset Contributor(s): Adriano dos Santos Fernandes * Fixed unregistered bug Query produce different result depending on index presence when the last character of the string is the first character of a compression pair Contributor(s): Adriano dos Santos Fernandes * Fixed unregistered bug SUBSTRING and multi-byte BLOB don't work correctly Contributor(s): Adriano dos Santos Fernandes * Fixed unregistered bug Pattern matching with multi-byte BLOB is performed in binary mode Contributor(s): Adriano dos Santos Fernandes * Fixed unregistered bug It's not safe to connect with MBCS if database has columns using different character set Contributor(s): Adriano dos Santos Fernandes ************** * v2.0 Alpha 2 ************** * Fixed bug (SF #1016969) Unknown datatype for parameters in result of searched CASE expression Contributor(s): Arno Brinkman * Fixed Alpha 1 bug (SF #1188734) WHERE CURRENT OF doesn't work Contributor(s): Dmitry Yemanov * Fixed Alpha 1 bug (SF #1168898) Domain with check containing select Contributor(s): Arno Brinkman * Fixed Alpha 1 bug Bug with VALUE keyword in check constraint and bug with VALUE keyword where VALUE represents a column Contributor(s): Arno Brinkman * Fixed Alpha 1 bug Bug with ORDER BY and DISTINCT on OUTER JOIN Contributor(s): Arno Brinkman * Fixed Alpha 1 bug Select-list alias hides an expression datatype Contributor(s): Arno Brinkman * Fixed Alpha 1 bug Server crashed when SUBSTRING is used in the expression index Contributor(s): Adriano dos Santos Fernandes Dmitry Yemanov * Optimizer improvements Better choice of streams order in joins and better index usage in general Contributor(s): Dmitry Yemanov * Fixed Alpha 1 bugs 1) Bad optimization for tables with zero selectivities 2) Wrong choice of index in the case of the same selectivity and number of indices 3) Wrong total selectivity calculated for compound non-equality comparisons Contributor(s): Dmitry Yemanov Arno Brinkman * Fixed unregistered bug Database corruption when row is deleted in a BEFORE UPDATE trigger Contributor(s): Dmitry Yemanov * Fixed Alpha 1 bug Server crashed during validation of broken ODS11 indices Contributor(s): Dmitry Yemanov * Fixed unregistered bug Computed column of blob/array type zeroes the first column of the table being restored Contributor(s): Dmitry Yemanov * Fixed bug SF #1155520 Any user can replace databases created by others Contributor(s): Adriano dos Santos Fernandes * Shutdown ability Posix SS builds now handle SIGTERM and SIGINT to shutdown all connections gracefully Contributor(s): Alex Peshkov * Fixed unregistered bug GBAK stalled when it's used via the service manager and invalid command line is passed Contributor(s): Vlad Horsun * Added new GBAK switch -RECREATE_DATABASE [OVERWRITE] Simple RECREATE_DATABASE is equal to CREATE_DATABASE RECREATE_DATABASE OVERWRITE is equal to REPLACE_DATABASE Contributor(s): Vlad Horsun * Changed default value for TcpNoNagle config option TCP_NODELAY socket option is now set by default Contributor(s): Konstantin Kuznetsov * Fixed Alpha 1 bug (SF #1173948) Prompt is shown when using -i switch 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 Privileges granted to procedures/triggers/views are preserved after dropping the object Contributor(s): Dmitry Yemanov * Fixed unregistered bug EXECUTE PROCEDURE doesn't check SQL permissions at the prepare stage Contributor(s): Dmitry Yemanov * NEW context changes Reject any assignment to the NEW trigger context (make it read-only) in AFTER triggers Contributor(s): Dmitry Yemanov * Fixed Alpha 1 bug Expression index cannot be used for navigation Contributor(s): Dmitry Yemanov * Implemented RECREATE EXCEPTION and CREATE OR ALTER EXCEPTION statements (SF #1167973) Allow either creating, recreating or altering an exception, depending in its existance Contributor(s): Dmitry Yemanov * Fixed unregistered bug Bug in AddMonth() UDF when facing January Contributor(s): Claudio Valderrama * Fixed unregistered bug System transaction is reported as dead Contributor(s): Adriano dos Santos Fernandes Vlad Horsun * Fixed Alpha 1 bug (SF #1169884) Navigation vs IS NULL vs compound index Contributor(s): Arno Brinkman * Fixed Alpha 1 bug (SF #1169730) Database corruption caused by the new GC code Contributor(s): Vlad Horsun * Fixed Alpha 1 bug (SF #1169728) FIRST 1 vs ORDER DESC vs explicit plan (ODS11) Contributor(s): Arno Brinkman * Fixed Alpha 1 bug (SF #1169723) Database that will not restore using FB 2.0 Alpha1 Contributor(s): Dmitry Yemanov * Fixed Alpha 1 bug (SF #1169708) Select from selectable SP takes MUCH more time than before Contributor(s): Dmitry Yemanov * Fixed Alpha 1 bug (SF #1169707) Database corruption - page 0 expected type 5, found 1 Contributor(s): Dmitry Yemanov * Fixed unregistered bug A number of buffer overflows Contributor(s): Alex Peshkov * Fixed Alpha 1 bug (SF #1168910) ISQL stops when meet any chars in comment Contributor(s): Dimitry Sibiryakov * Fixed unregistered bug Server crashed due to plan buffer overflows Contributor(s): Dmitry Yemanov * Fixed Alpha 1 bug Lost sort node that caused unordered data to be returned Contributor(s): Dmitry Yemanov * Fixed unregistered bug SQL role wasn't properly parsed by the engine Contributor(s): Claudio Valderrama * Fixed Alpha 1 bug Broken loopback connections via XNET. Contributor(s): Dmitry Yemanov * Fixed Alpha 1 bug Server crashed during SQL optimization Contributor(s): Arno Brinkman * A number of ISQL changes 1) Stop possible crash with long terminators 2) Make SET SQLDA_DISPLAY work in release versions 3) Avoid several SQL> prompts when using the INPUT command interactively 4) Stop some memory leaks Contributor(s): Claudio Valderrama * Fixed Alpha 1 bug "gbak -se" (backup/restore via the service manager) didn't work Contributor(s): Dmitry Yemanov ************** * v2.0 Alpha 1 ************** * Fixed bug SF #1124720 Problem with "FOR EXECUTE STATEMENT ... DO SUSPEND;" Contributor(s): Alex Peshkov * Compatibility related change New security.fdb is renamed to security2.fdb Contributor(s): Alex Peshkov * Optimizer improvements 1) Usage of segment-level selectivities 2) Better support for IS NULL 3) Better support for STARTING WITH 4) Matching both OR and AND nodes to indices 5) Better cost estimations and hence better join orders 6) Allowed indexed order (navigational walk) for outer joins Note(s): Available in ODS 11.0 only Contributor(s): Arno Brinkman * Improved GROUP BY and ORDER BY clauses Allowed column aliases in both these clauses Example(s): SELECT RDB$RELATION_ID AS ID FROM RDB$RELATIONS ORDER BY ID SELECT RDB$RELATION_NAME AS ID, COUNT(*) FROM RDB$RELATION_FIELDS GROUP BY ID Contributor(s): Arno Brinkman * Improved ORDER BY clause Allowed ordinals to work on a select list which contain an asterisk Example(s): SELECT * FROM RDB$RELATIONS ORDER BY 9 Contributor(s): Arno Brinkman * Fixed bug SF #1076858 Possible corruption in classic server Contributor(s): Vlad Horsun * Changed view updates logic Apply NOT NULL constraints to base tables only, ignoring the ones inherited by view columns from domain definitions Contributor(s): Dmitry Yemanov * Fixed bug SF #1116809 Incorrect data type conversion Contributor(s): Adriano dos Santos Fernandes * Fixed bug SF #1111570 Drop table having check that references more than one column Contributor(s): Claudio Valderrama * Fixed unregistered bug Possible server lockup/crash when 'RELEASE SAVEPOINT xxx ONLY' syntax is used or when existing savepoint name is reused in transaction context Contributor(s): Nickolay Samofatov * Improved configuration Allow the first path of ExternalFilesAccess to be used as default when external file is to be created Contributor(s): Alex Peshkov * Fixed bug SF #1108909 View can be created w/o rights on table name like "a b" Contributor(s): Claudio Valderrama * Partially fixed bug SF #217042 IB doesn't validate weird constructions Contributor(s): Claudio Valderrama * Extended isc_dsql_sql_info() API call Allows to retrieve relation aliases, if required Contributor(s): Dmitry Yemanov * Fixed unregistered bug Usage of an invalid index in an explicit plan causes garbage to be shown in the error message instead of the rejected index name Contributor(s): Claudio Valderrama * Fixed unregistered bug Rare client crashes caused by improperly cleaned XDR packets Contributor(s): Dmitry Yemanov * Fixed bugs SF #504978, #527677, #1103666, #1103670, #1103683, #1103740 1) GPRE variable names being truncated 2) "ANSI85 compatible COBOL" switch broken 3) GPRE uses inconsistent lengths 4) GPRE invalidates a quoted cursor name after it's opened 5) GPRE doesn't check the length of the db alias 6) GPRE doesn't detect duplicate quoted cursors names Contributor(s): Claudio Valderrama * Fixed bug SF #512975 Embed spaces and CR+LF before DEFAULT Contributor(s): Claudio Valderrama * Fixed unregistered bug Server crash during SuperServer shutdown Contributor(s): Alex Peshkov * Cleanup Command line switch L for SuperServer is no longer recognized as the old local protocol was deleted Contributor(s): Dmitry Yemanov * Security improvement Another layout of security.fdb Also, security.fdb has been renamed to security2.fdb Contributor(s): Alex Peshkov * Fixed unregistered bug Column-level privileges are preserved after this column is dropped Contributor(s): Dmitry Yemanov * Fixed unregistered bug Memory leak when selectable stored procedures are called from PSQL or in subqueries Contributor(s): Nickolay Samofatov * Index improvements Don't check uniqueness for null keys Contributor(s): Vlad Horsun * SQL improvements 1) Introduced SEQUENCE as a synonym for GENERATOR (as per SQL-99) 2) Added SQL-99 compliant NEXT VALUE FOR expression 3) Implemented REVOKE ADMIN OPTION FROM statement See also: /doc/sql.extentions/README.sequence_generators /doc/sql.extentions/README.ddl.txt Contributor(s): Dmitry Yemanov * Fixed unregistered bug Backup issues with stream BLOBs Contributor(s): Nickolay Samofatov * Fixed unregistered bug Diagnostics about missing/unusable UDF module Contributor(s): Alex Peshkov * Optimizer improvements 1) Distribute HAVING clause conjunctions to the WHERE clause when possible 2) Distribute UNION conjunctions to the inner streams when possible 3) Improved cross join and merge/sort handling 4) Better optimization of mixed AND/OR predicates Contributor(s): Arno Brinkman Dmitry Yemanov * SQL improvement Supported UDFs to be called as procedures (i.e. ignoring their output) in PSQL 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. See also: /doc/README.isql_enhancements.txt Contributor(s): Damyan Ivanov Claudio Valderrama * Context variables Added support for context variables via RDB$GET_CONTEXT and RDB$SET_CONTEXT system functions See also: /doc/sql.extentions/README.context_variables2 Contributor(s): Nickolay Samofatov * Fixed bug SF #1065511 XP SP2 slow to connect to Linux server Contributor(s): Nickolay Samofatov * Fixed bugs SF #459059 and #543106 1) index breaks = ANY result 2) bug with ALL keyword Contributor(s): Dmitry Yemanov * ODS change Enlarged exception messages from 78 to 1021 bytes Contributor(s): Vlad Horsun * Fixed bug SF #1057538 UDF output parameter not being the last crashes the server Contributor(s): Claudio Valderrama * Fixed unregistered bug System users "AUTHENTICATOR" and "SWEEPER" were lost, causing "SQL SERVER" to be reported instead Contributor(s): Alex Peshkov * Configuration change Added new parameter LegacyHash to firebird.conf Contributor(s): Alex Peshkov * Security improvements 1) New (more secure) password hash calculation algorithm 2) Ability for users to modify their own passwords 3) Rejected any remote (non-embedded) access to security.fdb 4) Use Services API in GSEC 5) Protect from attempts to brute-force accounts/passwords Contributor(s): Alex Peshkov * Configuration change Added new parameter GCPolicy to firebird.conf Contributor(s): Vlad Horsun * Garbage collection improvements New GC thread implementation and combined cooperative + background activity Contributor(s): Vlad Horsun * Fixed unregistered bug Some cases where ambiguous queries were still possible Contributor(s): Arno Brinkman * ODS change Added RDB$DESCRIPTION to RDB$GENERATORS Contributor(s): Claudio Valderrama * CURRENT_TIMESTAMP and 'NOW' improvements Return milliseconds when a current timestamp is asked for Contributor(s): Dmitry Yemanov * SQL improvement Allowed PLAN, ROWS and ORDER BY clauses in UPDATE/DELETE statements See also: /doc/sql.extentions/README.select_expressions Contributor(s): Oleg Loa * 64-bit builds A number of changes (including ODS support) to support Firebird on 64-bit platforms Contributor(s): Nickolay Samofatov * SQL improvement Added an equivalence predicate which behaves exactly as equality/inequality, but treats NULL = NULL as TRUE Syntax: A IS [NOT] DISTINCT FROM B See also: /doc/sql.extentions/README.distinct Contributor(s): Oleg Loa Dmitry Yemanov * SQL improvements 1) Allowed FIRST/SKIP/ROWS/PLAN and ORDER BY clauses in views 2) Added CROSS JOIN (A CROSS JOIN B means something like A INNER JOIN B ON 1 = 1 or just FROM A, B) 3) Allowed UNION in subqueries and INSERT statement See also: /doc/sql.extentions/README.select_expressions Contributor(s): Dmitry Yemanov * New transaction option Added lock timeouts for WAIT transactions (see new TPB value isc_tpb_lock_timeout) Contributor(s): Aleksey Karyakin Dmitry Yemanov * WNET protocol changes WNET (aka NetBEUI) protocol no longer performs client impersonation Contributor(s): Dmitry Yemanov * Fixed unregistered bug Introduced 40-bit (64-bit internally) record numbers to avoid ~30GB table size limit Contributor(s): Nickolay Samofatov * Buffer cache improvements 1) Much faster algorithms to process the dirty pages tree 2) Increased maximum page cache size to 128K pages (2GB for 16K page size) Contributor(s): Oleg Loa Dmitry Yemanov * Security improvements Fixed a number of known vulnerabilities in API Contributor(s): Claudio Valderrama Alex Peshkov * Fixed unregistered bug Don't rollback prepared 2PC sub-transaction Contributor(s): Vlad Horsun * Server log improvement Add filename and line number to BUGCHECK log messages Contributor(s): Arno Brinkman * GSEC improvement Now GSEC returns the error code when used as a non-interactive utility Contributor(s): Claudio Valderrama * Fixed unregistered bug Server crash with DECLARE FILTER Contributor(s): Alex Peshkov * SQL extention Allowed UNION DISTINCT as a synonym for simple UNION (as per SQL-99 spec) Contributor(s): Dmitry Yemanov * Fixed bug SF #571026 INET/INET_connect: gethostbyname Contributor(s): Dmitry Yemanov * Fixed bug SF #223058 Multi-hop server ability broken Contributor(s): Dmitry Yemanov * Optimizer improvement Let's choose a reasonable join order for intermixed inner and outer joins Contributor(s): Dmitry Yemanov * Configuration change Added new parameter UsePriorityScheduler to firebird.conf Contributor(s): Alex Peshkov * ISQL improvement ODS version is now shown as a part of SHOW DATABASE command Contributor(s): Claudio Valderrama * Minor BLOB improvement Introduced BLOB SUB_TYPE BINARY as a synonym for SUB_TYPE 0 Contributor(s): Claudio Valderrama * ODS change Introduced a concept of ODS type to be able to distinguish between InterBase databases, Firebird databases, databases created by debug builds of Firebird and private forks Contributor(s): Nickolay Samofatov * UDF improvement Ability to signal SQL NULL via a NULL pointer See also: /doc/sql.extentions/README.ddl.txt Contributor(s): Claudio Valderrama * Expression indices Implemented indices based on arbitrary expressions Syntax: CREATE [UNIQUE] [ASC[ENDING] | DESC[ENDING]] INDEX ON ( ) See also: /doc/sql.extentions/README.expression_indices Contributor(s): Oleg Loa Aleksey Karyakin Dmitry Yemanov * IIF builtin function Added IIF (, , ) as a shortcut for CASE WHEN THEN ELSE END See also: /doc/sql.extentions/README.iif Contributor(s): Oleg Loa * Fixed unregistered bug A number of possible server crashes, as reported by Valgrind Contributor(s): Nickolay Samofatov * IN/OR improvements Constant IN predicate or multiple OR booleans are now evaluated faster Contributor(s): Oleg Loa * NULL becomes a syntactical value You may now specify A = NULL, B > NULL, etc (all of them evaluate to FALSE) See also: /doc/sql.extentions/README.null_value Contributor(s): Dmitry Yemanov * Concatenation overflow A compile-time check has been dropped in favour of the runtime one Contributor(s): Oleg Loa Dmitry Yemanov * Fixed unregistered bug Issues with dates below Julian date stored in indices Contributor(s): Arno Brinkman * PSQL stack trace Added ability to report a PSQL stack trace when exception occurs Contributor(s): Vlad Horsun * OLD context changes Reject any assignment to the OLD trigger context (e.g. make it read-only) Contributor(s): Dmitry Yemanov * Index scan imporvement NULLs are ignored during the index scan (when it makes sense) Contributor(s): Arno Brinkman * Fixed bug SF #735720 SELECT ... STARTING WITH :v is wrong when :v = '' Contributor(s): Arno Brinkman * Fixed unregistered bug Crash when changing data type for field and specify wrong type or domain name Contributor(s): Nickolay Samofatov * ODS change Added RDB$DESCRIPTION and RDB$SYSTEM_FLAG to RDB$ROLES Contributor(s): Claudio Valderrama * Fixed some BLOB issues 1) Outrageous memory consumption when blobs are converted from strings during request processing 2) Materialization doesn't cause invalidation of BLOB IDs too early Contributor(s): Nickolay Samofatov * Fixed unregistered bug Problems with UDF argument mapping to parameters Contributor(s): Nickolay Samofatov * Fixed unregistered bug Server crash due to incorrect accounting of attachment pointers used inside the lock structure Contributor(s): Nickolay Samofatov * Improved ISQL 1) Fixed bug SF #223126 - Misplaced collation when extracting metadadata with ISQL 2) Fixed bug SF #223513 - Ambiguity between tables and views 3) Fixed bug SF #518349 - ISQL show mangles relationship Contributor(s): Blas Rodriguez Somoza * Fixed bug SF #910423 ALTER TABLE altering to VARCHAR Contributor(s): Claudio Valderrama * Improved ISQL 1) Fixed bug SF #910430 - ISQL and database dialect 2) Add SET HEADING ON/OFF option 3) Add -M2 command-line option to send output of statistics and plans to the same file than the rest of the output See also: /doc/README.isql_enhancements.txt Contributor(s): Claudio Valderrama * Fixed unregistered bug Rounding problems in date/time arithmetics Contributor(s): Nickolay Samofatov * Fixed unregistered bug Wrong counting of line numbers in DSQL parser when multi-line literals and identifiers are used Contributor(s): Nickolay Samofatov * Fixed v1.5 bug Random crash on restore Contributor(s): Jim Starkey * Fixed unregistered bug Crash/lock-up with multiple calls of isc_dsql_prepare for a single statement (like IBO does) Contributor(s): Nickolay Samofatov * Fixed unregistered bug Server crash when too big/small system year is set up Contributor(s): Dmitry Yemanov * User-defined plans improvements 1) Propagate plan fragments to nested levels of joins, thus allowing to manually optimize complex outer joins 2) Check the user-supplied plan for correctness in outer joins 3) Added short-circuit optimization for user-supplied plans Contributor(s): Dmitry Yemanov * Fixed unregistered bug Server crash when the stream number exceeds the limit Contributor(s): Dmitry Yemanov * Fixed unregistered bug. Memory leak in EXECUTE STATEMENT Contributor(s): Alex Peshkov * Fixed unregistered bug UDF arguments are being prepared/optimized twice Contributor(s): Dmitry Yemanov * Index structure improvements More effective compressing Contributor(s): Arno Brinkman * New database shutdown modes are introduced Single-user and full shutdown modes are implemented See also: /doc/README.shutdown_modes.txt Contributor(s): Nickolay Samofatov * Fixed unregistered bug Memory leak during conversion from string to blob Contributor(s): Nickolay Samofatov * C/C++ client interface version added FB_API_VER defined to 20 for Firebird 2.0 in ibase.h Contributor(s): Nickolay Samofatov * Implemented EXECUTE BLOCK statement It is now possible to use dynamic PSQL with this statement See also: /doc/sql.extentions/README.execute_block Contributor(s): Vlad Horsun * Implemented support for default parameters for stored procedures See also: /doc/sql.extentions/README.default_parameters Contributor(s): Vlad Horsun * DSQL parser changed It now always detects table aliases ambiguity and abandoned support for implicit double table aliases Contributor(s): Arno Brinkman * Fixed unregistered bug Problems with interdependent views during restore process Contributor(s): Arno Brinkman * Fixed SF #750664 Issues with read-only databases and transactions Contributor(s): Nickolay Samofatov * Fixed unregistered bug Fixed memory leak from connection pool in isc_database_info Contributor(s): Nickolay Samofatov * Per-segment index selectivity maintenance Per-segment selectivity information is now available to the optimizer opening possibilities for more clever access path decisions Contributor(s): Dmitry Yemanov Arno Brinkman * Fixed/re-worked invariant tracking in PSQL and request cloning logic This fixes numerous issues with recursive procedures, for example SF #627057 Contributor(s): Nickolay Samofatov * Re-worked logic of updatable views This solves problems with views that are implicitly updatable, but still have update triggers See also: /doc/sql.extentions/README.view_updates Contributor(s): Dmitry Yemanov * Added SQL200X ROWS clause New syntax to limit amount of records you want to get See also: /doc/sql.extentions/README.rows Contributor(s): Dmitry Yemanov * Fixed SF #781610 Problems with -- comments in ISQL Contributor(s): John Bellardo Blas Rodriguez Somoza * Support for explicit cursor syntax in PSQL It is now possible to declare and use multiple cursors in PSQL See also: /doc/sql.extentions/README.cursors Contributor(s): Dmitry Yemanov * LIKE/CONTAINING/STARTING WITH functions re-worked 1) functions now work with BLOBs correctly 2) use single-pass Knuth-Morris-Pratt algorithm for pattern matching 3) fix crash when NULL is used as ESCAPE character for LIKE Contributor(s): Nickolay Samofatov * Fixed unregistered bug Fixed server crash with explicit plans used in subqueries, when outer aggregation is performed. Contributor(s): Dmitry Yemanov * Nulls ordering is changed to be SQL200X-compliant (SF #225218) Implemented nulls placement behavior is MSSQL-like, works on ODS11 databases only since it requires new indices for operation. Contributor(s): Nickolay Samofatov * Enable support for databases on raw devices You can now use raw devices to store database. Especially usable with database aliases Contributor(s): Erik Kunze Nickolay Samofatov * New indices code Very fast, nicely tolerates large amount of duplicates, limit of 256 bytes key length removed Contributor(s): Arno Brinkman * Internal logging enhanced 1) Implemented thread- and signal- safe debug logging facilities 2) Updated routines that print out various internal structures (DSQL node tree, BLR, DYN, etc) Contributor(s): Nickolay Samofatov * Improved PLAN clause Allowed to specify more possible paths for the engine Example: PLAN (A ORDER IDX1 INDEX (IDX2, IDX3)) See also: /doc/sql.extentions/README.plan Contributor(s): Dmitry Yemanov * Further optimizer improvements 1) MERGE PLAN may now be generated for joins using equality comparsion on expressions 2) Better logic regarding unique indices handling 3) Improved logic for OR expressions Contributor(s): Arno Brinkman * New local protocol XNET is now used as local protocol for Windows and is supported in CS builds See also: /doc/README.xnet Contributor(s): Dmitry Yemanov * Services API are fully ported to Classic architecture All Services API are supported on Linux and Windows CS Contributor(s): Nickolay Samofatov * SUBSTRING enhanced SUBSTRING built-in function now supports arbitrary expressions in parameters Contributor(s): Oleg Loa Dmitry Yemanov * Added LEAVE