************** * v2.0 Alpha 1 ************** * Fixed SF #1116809 Incorrect data type conversion Contributor(s): Adriano dos Santos Fernandes * 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 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 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 * Reworked constraint checking logic More precise checks for PK/UK/FK constraints Contributor(s): Vlad Horsun * 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