8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-23 00:03:02 +01:00
firebird-mirror/doc/WhatsNew

669 lines
24 KiB
Plaintext

**************
* v2.0 Alpha 1
**************
* Cleanup
Command line switch L for SuperServer is no longer recognized as the old local protocol was deleted.
Contributor(s):
Dmitry Yemanov <yemanov at yandex.ru>
* Security improvement
Another layout of security.fdb
Contributor(s):
Alex Peshkov <peshkoff at mail.ru>
* Fixed unregistered bug
Column-level privileges are preserved after this column is dropped
Contributor(s):
Dmitry Yemanov <yemanov at yandex.ru>
* Fixed unregistered bug
Memory leak when selectable stored procedures are called from PSQL or in subqueries
Contributor(s):
Nickolay Samofatov <nickolay at broadviewsoftware.com>
* Index improvements
Don't check uniqueness for null keys
Contributor(s):
Vlad Horsun <horsun at kdb.dp.ua>
* SQL improvements
1) Introduced SEQUENCE as a synonym for GENERATOR (as per SQL-99)
2) Added SQL-99 compliant NEXT VALUE FOR <sequence_name> 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 <yemanov at yandex.ru>
* Fixed unregistered bug
Backup issues with stream BLOBs
Contributor(s):
Nickolay Samofatov <nickolay at broadviewsoftware.com>
* Fixed unregistered bug
Diagnostics about missing/unusable UDF module
Contributor(s):
Alex Peshkov <peshkoff at mail.ru>
* 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 <firebird at abvisie.nl>
Dmitry Yemanov <yemanov at yandex.ru>
* SQL improvement
Supported UDFs to be called as procedures (i.e. ignoring their output) in PSQL
Contributor(s):
Nickolay Samofatov <nickolay at broadviewsoftware.com>
* 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 <divanov at creditreform.bg>
Claudio Valderrama <cvalde at usa.net>
* 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 <nickolay at broadviewsoftware.com>
* Fixed SF #1065511
XP SP2 slow to connect to Linux server
Contributor(s):
Nickolay Samofatov <nickolay at broadviewsoftware.com>
* Fixed bugs SF #459059 and #543106
1) index breaks = ANY result
2) bug with ALL keyword
Contributor(s):
Dmitry Yemanov <yemanov at yandex.ru>
* ODS change
Enlarged exception messages from 80 to 1021 bytes
Contributor(s):
Vlad Horsun <horsun at kdb.dp.ua>
* Fixed bug SF #1057538
UDF output parameter not being the last crashes the server
Contributor(s):
Claudio Valderrama <cvalde at usa.net>
* Fixed unregistered bug
System users "AUTHENTICATOR" and "SWEEPER" were lost, causing "SQL SERVER" to be reported instead
Contributor(s):
Alex Peshkov <peshkoff at mail.ru>
* Configuration change
Added new parameter LegacyHash to firebird.conf
Contributor(s):
Alex Peshkov <peshkoff at mail.ru>
* 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 <peshkoff at mail.ru>
* Configuration change
Added new parameter GCPolicy to firebird.conf
Contributor(s):
Vlad Horsun <horsun at kdb.dp.ua>
* Garbage collection improvements
New GC thread implementation and combined cooperative + background activity
Contributor(s):
Vlad Horsun <horsun at kdb.dp.ua>
* Fixed unregistered bug
Some cases where ambiguous queries were still possible
Contributor(s):
Arno Brinkman <firebird at abvisie.nl>
* ODS change
Added RDB$DESCRIPTION to RDB$GENERATORS
Contributor(s):
Claudio Valderrama <cvalde at usa.net>
* CURRENT_TIMESTAMP and 'NOW' improvements
Return milliseconds when a current timestamp is asked for
Contributor(s):
Dmitry Yemanov <yemanov at yandex.ru>
* 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 <loa at mail.ru>
* 64-bit builds
A number of changes (including ODS support) to support Firebird on 64-bit platforms
Contributor(s):
Nickolay Samofatov <nickolay at broadviewsoftware.com>
* Reworked constraint checking logic
More precise checks for PK/UK/FK constraints
Contributor(s):
Vlad Horsun <horsun at kdb.dp.ua>
* 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 <loa at mail.ru>
Dmitry Yemanov <yemanov at yandex.ru>
* 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 <yemanov at yandex.ru>
* New transaction option
Added lock timeouts for WAIT transactions (see new TPB value isc_tpb_lock_timeout)
Contributor(s):
Aleksey Karyakin <karyakin at cmpmail.com>
Dmitry Yemanov <yemanov at yandex.ru>
* WNET protocol changes
WNET (aka NetBEUI) protocol no longer performs client impersonation
Contributor(s):
Dmitry Yemanov <yemanov at yandex.ru>
* Fixed unregistered bug
Introduced 40-bit (64-bit internally) record numbers to avoid ~30GB table size limit
Contributor(s):
Nickolay Samofatov <nickolay at broadviewsoftware.com>
* 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 <loa at mail.ru>
Dmitry Yemanov <yemanov at yandex.ru>
* Security improvements
Fixed a number of known vulnerabilities in API
Contributor(s):
Claudio Valderrama <cvalde at usa.net>
Alex Peshkov <peshkoff at mail.ru>
* Fixed unregistered bug
Don't rollback prepared 2PC sub-transaction
Contributor(s):
Vlad Horsun <horsun at kdb.dp.ua>
* Server log improvement
Add filename and line number to BUGCHECK log messages
Contributor(s):
Arno Brinkman <firebird at abvisie.nl>
* GSEC improvement
Now GSEC returns the error code when used as a non-interactive utility
Contributor(s):
Claudio Valderrama <cvalde at usa.net>
* Fixed unregistered bug
Server crash with DECLARE FILTER
Contributor(s):
Alex Peshkov <peshkoff at mail.ru>
* SQL extention
Allowed UNION DISTINCT as a synonym for simple UNION (as per SQL-99 spec)
Contributor(s):
Dmitry Yemanov <yemanov at yandex.ru>
* Fixed bug SF #571026
INET/INET_connect: gethostbyname
Contributor(s):
Dmitry Yemanov <yemanov at yandex.ru>
* Fixed bug SF #223058
Multi-hop server ability broken
Contributor(s):
Dmitry Yemanov <yemanov at yandex.ru>
* Optimizer improvement
Let's choose a reasonable join order for intermixed inner and outer joins
Contributor(s):
Dmitry Yemanov <yemanov at yandex.ru>
* Configuration change
Added new parameter UsePriorityScheduler to firebird.conf
Contributor(s):
Alex Peshkov <peshkoff at mail.ru>
* ISQL improvement
ODS version is now shown as a part of SHOW DATABASE command
Contributor(s):
Claudio Valderrama <cvalde at usa.net>
* Minor BLOB improvement
Introduced BLOB SUB_TYPE BINARY as a synonym for SUB_TYPE 0
Contributor(s):
Claudio Valderrama <cvalde at usa.net>
* 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 <nickolay at broadviewsoftware.com>
* UDF improvement
Ability to signal SQL NULL via a NULL pointer
See also:
/doc/sql.extentions/README.ddl.txt
Contributor(s):
Claudio Valderrama <cvalde at usa.net>
* Expression indices
Implemented indices based on arbitrary expressions
Syntax:
CREATE [UNIQUE] [ASC[ENDING] | DESC[ENDING]] INDEX <index_name> ON <table_name> ( <value_expression> )
See also:
/doc/sql.extentions/README.expression_indices
Contributor(s):
Oleg Loa <loa at mail.ru>
Dmitry Yemanov <yemanov at yandex.ru>
* IIF builtin function
Added IIF (<search_condition>, <value1>, <value2>) as a shortcut for CASE WHEN <search_condition> THEN <value1> ELSE <value2> END
See also:
/doc/sql.extentions/README.iif
Contributor(s):
Oleg Loa <loa at mail.ru>
* Fixed unregistered bug
A number of possible server crashes, as reported by Valgrind
Contributor(s):
Nickolay Samofatov <nickolay at broadviewsoftware.com>
* IN/OR improvements
Constant IN predicate or multiple OR booleans are now evaluated faster
Contributor(s):
Oleg Loa <loa at mail.ru>
* 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 <yemanov at yandex.ru>
* Concatenation overflow
A compile-time check has been dropped in favour of the runtime one
Contributor(s):
Oleg Loa <loa at mail.ru>
Dmitry Yemanov <yemanov at yandex.ru>
* Fixed unregistered bug
Issues with dates below Julian date stored in indices
Contributor(s):
Arno Brinkman <firebird at abvisie.nl>
* PSQL stack trace
Added ability to report a PSQL stack trace when exception occurs
Contributor(s):
Vlad Horsun <horsun at kdb.dp.ua>
* OLD context changes
Reject any assignment to the OLD trigger context (e.g. make it read-only)
Contributor(s):
Dmitry Yemanov <yemanov at yandex.ru>
* Index scan imporvement
NULLs are ignored during the index scan (when it makes sense)
Contributor(s):
Arno Brinkman <firebird at abvisie.nl>
* Fixed bug SF #735720
SELECT ... STARTING WITH :v is wrong when :v = ''
Contributor(s):
Arno Brinkman <firebird at abvisie.nl>
* Fixed unregistered bug
Crash when changing data type for field and specify wrong type or domain name
Contributor(s):
Nickolay Samofatov <nickolay at broadviewsoftware.com>
* ODS change
Added RDB$DESCRIPTION and RDB$SYSTEM_FLAG to RDB$ROLES
Contributor(s):
Claudio Valderrama <cvalde at usa.net>
* 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 <nickolay at broadviewsoftware.com>
* Fixed unregistered bug
Problems with UDF argument mapping to parameters
Contributor(s):
Nickolay Samofatov <nickolay at broadviewsoftware.com>
* Fixed unregistered bug
Server crash due to incorrect accounting of attachment pointers used inside the lock structure
Contributor(s):
Nickolay Samofatov <nickolay at broadviewsoftware.com>
* 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 <blas at puertareal.com>
* Fixed bug SF #910423
ALTER TABLE altering to VARCHAR
Contributor(s):
Claudio Valderrama <cvalde at usa.net>
* 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 <cvalde at usa.net>
* Fixed unregistered bug
Rounding problems in date/time arithmetics
Contributor(s):
Nickolay Samofatov <nickolay at broadviewsoftware.com>
* Fixed unregistered bug
Wrong counting of line numbers in DSQL parser when multi-line literals and identifiers are used
Contributor(s):
Nickolay Samofatov <nickolay at broadviewsoftware.com>
* Fixed v1.5 bug
Random crash on restore
Contributor(s):
Jim Starkey <jas at netfrastructure.com>
* Fixed unregistered bug
Crash/lock-up with multiple calls of isc_dsql_prepare for a single statement (like IBO does)
Contributor(s):
Nickolay Samofatov <nickolay at broadviewsoftware.com>
* Fixed unregistered bug
Server crash when too big/small system year is set up
Contributor(s):
Dmitry Yemanov <yemanov at yandex.ru>
* 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 <yemanov at yandex.ru>
* Fixed unregistered bug
Server crash when the stream number exceeds the limit
Contributor(s):
Dmitry Yemanov <yemanov at yandex.ru>
* Fixed unregistered bug.
Memory leak in EXECUTE STATEMENT
Contributor(s):
Alex Peshkov <peshkoff at mail.ru>
* Fixed unregistered bug
UDF arguments are being prepared/optimized twice
Contributor(s):
Dmitry Yemanov <yemanov at yandex.ru>
* Index structure improvements
More effective compressing
Contributor(s):
Arno Brinkman <firebird at abvisie.nl>
* 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 <nickolay at broadviewsoftware.com>
* Fixed unregistered bug
Memory leak during conversion from string to blob
Contributor(s):
Nickolay Samofatov <nickolay at broadviewsoftware.com>
* C/C++ client interface version added
FB_API_VER defined to 20 for Firebird 2.0 in ibase.h
Contributor(s):
Nickolay Samofatov <nickolay at broadviewsoftware.com>
* 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 <horsun at kdb.dp.ua>
* Implemented support for default parameters for stored procedures
See also:
/doc/sql.extentions/README.default_parameters
Contributor(s):
Vlad Horsun <horsun at kdb.dp.ua>
* DSQL parser changed
It now always detects table aliases ambiguity and abandoned support for implicit double table aliases
Contributor(s):
Arno Brinkman <firebird at abvisie.nl>
* Fixed unregistered bug
Problems with interdependent views during restore process
Contributor(s):
Arno Brinkman <firebird at abvisie.nl>
* Fixed SF #750664
Issues with read-only databases and transactions
Contributor(s):
Nickolay Samofatov <nickolay at broadviewsoftware.com>
* Fixed unregistered bug
Fixed memory leak from connection pool in isc_database_info
Contributor(s):
Nickolay Samofatov <nickolay at broadviewsoftware.com>
* 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 <yemanov at yandex.ru>
Arno Brinkman <firebird at abvisie.nl>
* 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 <nickolay at broadviewsoftware.com>
* 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 <yemanov at yandex.ru>
* 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 <yemanov at yandex.ru>
* Fixed SF #781610
Problems with -- comments in ISQL
Contributor(s):
John Bellardo <bellardo at cs.ucsd.edu>
Blas Rodriguez Somoza <blas at puertareal.com>
* 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 <yemanov at yandex.ru>
* 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 <nickolay at broadviewsoftware.com>
* Fixed unregistered bug
Fixed server crash with explicit plans used in subqueries, when outer aggregation is performed.
Contributor(s):
Dmitry Yemanov <yemanov at yandex.ru>
* 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 <nickolay at broadviewsoftware.com>
* Enable support for databases on raw devices
You can now use raw devices to store database. Exceptionally usable with database aliases
Contributor(s):
Erik Kunze <erik.kunze at philosys.de>
Nickolay Samofatov <nickolay at broadviewsoftware.com>
* New indices code
Very fast, nicely tolerates large amount of duplicates, limit of 256 bytes key length removed
Contributor(s):
Arno Brinkman <firebird at abvisie.nl>
* 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 <nickolay at broadviewsoftware.com>
* 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 <yemanov at yandex.ru>
* 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 <firebird at abvisie.nl>
* 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 <yemanov at yandex.ru>
* Services API are fully ported to Classic architecture
All Services API are supported on Linux and Windows CS
Contributor(s):
Nickolay Samofatov <nickolay at broadviewsoftware.com>
* SUBSTRING enhanced
SUBSTRING built-in function now supports arbitrary expressions in parameters
Contributor(s):
Oleg Loa <loa at mail.ru>
Dmitry Yemanov <yemanov at yandex.ru>
* Added LEAVE <label> syntax support
PSQL loops now may be marked with labels and terminated in Java style
See also:
/doc/sql.extentions/README.leave_labels
Contributor(s):
Dmitry Yemanov <yemanov at yandex.ru>
* Improved ROW_COUNT
Now it's possible to get number of selected rows as well
See also:
/doc/sql.extentions/README.context_variables
Contributor(s):
Dmitry Yemanov <yemanov at yandex.ru>
* Fix SF #750659
Generators values were resisting metadata-only backup
Contributor(s):
Claudio Valderrama <cvalde at usa.net>
* Fix SF #544132, #728839
Problems with nulls handling in UDFs
Contributor(s):
Claudio Valderrama <cvalde at usa.net>
* Fix SF #784121
Problems with some expressions in outer join conditions
Contributor(s):
Claudio Valderrama <cvalde at usa.net>
* Slightly reworked synchronization logic
1) Significantly reduce thread lock contention in lock manager and in SuperServer thread pool manager
2) Fix rare race condition that could cause SS engine to hang during request processing until next request arrival
3) Make lock manager memory dumps more informative (OWN_hung is detected correctly)
4) Decouple lock manager synchronization objects for different engine instances
Contributor(s):
Nickolay Samofatov <nickolay at broadviewsoftware.com>
* Derived tables support
Implemented support for derived tables in DSQL (subqueries in FROM clause) as defined by SQL200X
See also:
/doc/sql.extentions/README.derived_tables.txt
Contributor(s):
Arno Brinkman <firebird at abvisie.nl>
* Enhanced GROUP BY clause
Implemented support for arbitrary expressions in GROUP BY clause
Contributor(s):
Arno Brinkman <firebird at abvisie.nl>
* UNION enhanced
Fixed field type coersion logic in unions
Contributor(s):
Arno Brinkman <firebird at abvisie.nl>
* New backup technology
Implemented fast on-line physical incremental backup facilities
See also:
/doc/README.nbackup.txt
Contributor(s):
Nickolay Samofatov <nickolay at broadviewsoftware.com>
* Generic cleanup.
Various cleaning and tidying up of code, warnings removal, 64-bitness cleanup, numerous minor bugfixes
Contributor(s):
Blas Rodriguez Somoza <blas at puertareal.com>
Dmitry Yemanov <yemanov at yandex.ru>
Nickolay Samofatov <nickolay at broadviewsoftware.com>
* Generic cleanup
Large amount of ongoing code cleanup and style standardization. In particular, broken WAL and journalling code is fully cleaned out
Contributor(s):
Claudio Valderrama <cvalde at usa.net>