************** * v2.0 Alpha 3 ************** * 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_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