From: Dmitry Y. <di...@us...> - 2009-01-29 12:54:10
|
Build Version : T2.5.0.22519 Firebird 2.5 Alpha 1 (writeBuildNum.sh,v 1.22680 2009/01/29 12:54:00 dimitr Exp ) Update of /cvsroot/firebird/firebird2/doc In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv9925 Modified Files: README.incompatibilities.txt Log Message: Updated docs. Getting prepared for Beta. Index: README.incompatibilities.txt =================================================================== RCS file: /cvsroot/firebird/firebird2/doc/README.incompatibilities.txt,v retrieving revision 1.6 retrieving revision 1.7 diff -b -U3 -r1.6 -r1.7 --- README.incompatibilities.txt 28 Dec 2005 06:06:24 -0000 1.6 +++ README.incompatibilities.txt 29 Jan 2009 12:53:59 -0000 1.7 @@ -1,10 +1,10 @@ ******************************************************************************** LIST OF KNOWN INCOMPATIBILITIES - between versions 1.5.x and 2.x + between versions 2.x and 2.5 ******************************************************************************** -This document describes all the changes that make v2.0 incompatible in any way -as compared with the previous release and hence could affect your databases and +This document describes all the changes that make v2.5 incompatible in any way +as compared with the previous releases and hence could affect your databases and applications. Please read the below descriptions carefully before upgrading your software to @@ -13,63 +13,17 @@ INSTALLATION/CONFIGURATION -------------------------- - * Security database is renamed to security2.fdb. If you upgrade the existing - installation, please be sure to upgrade the security database using the - provided script in order to keep your users' logins. For more details see - $FBROOT/upgrade/security_database.txt. - Simple 'cp security.fdb security2.fdb' makes it impossible to attach - to the firebird server ! - - * Password hashes are now generated using the SHA-1 algorithm instead of the - old DES one. If you want to preserve the already existing security database - (i.e. upgrade it using security_database.sql script), you'll need to set the - LegacyHash config option to 1 (TRUE). However, it's recommended to return - it's value back to default (after changing user's passwords) in order - to keep your installation safe. - - * The new client library is not compatible with the older server (and vice - versa) in regard to the local protocol, as the transport internals has been - reimplemented (XNET instead of IPServer). If you need to use the local - protocol, please ensure your server and client binaries are of the same - version. - - * Parameter DeadThreadsCollection of firebird.conf is deprecated and will be - ignored if set. Current Firebird version efficiently performs it without - delay. + * The database migration process might require some special steps. If the + database restore fails with the error "malformed string" for you, please + pay attention to the files in the /misc/upgrade/metadata directory of your + installation and use the new -fix_fss_data and -fix_fss_metadata command + line switches of GBAK. -SECURITY --------------------------- - - * Direct connections to the security database are not allowed anymore. This is - done for security reasons and also in order to isolate authentication - mechanisms from the implementation. You should use Services API or GSEC - to configurate user accounts instead. To backup the security database always - use Services API. Switch -SE of gbak utility may be used for this purpose. - - * Non-SYSDBA users no longer can see accounts of other users in the security - database. A non-privileged user can only retrieve/modify its own account, - including a password change. - - * Remote attachments to the server without login/password are prohibited. - It means, particularly, that all attachments to SuperServer (even by root - without explicit localhost: in database name) without correct login will - be rejected by remote interface. Embedded access without login/password - works fine (unix user name is used to validate access to database's - objects). - -UTILITIES --------------------------- + * Priorly deprecated parameters OldParameterOrdering and CreateInternalWindow + of firebird.conf are not supported anymore and have been removed. - * GBAK -R (former shortcut for "-REPLACE_DATABASE") no longer overwrites an - existing database during restore, it reports an error instead. In order to - use the previous behaviour, you may specify either the full syntax - "GBAK -REPLACE_DATABASE" or use the new command - "-R[ECREATE_DATABASE] OVERWRITE". The "-R" shortcut is now considered to - represent the "-R[ECREATE_DATABASE]" command, while "-REP" is offered as a - new shortcut for "-REP[LACE_DATABASE]". This change is targeted to prevent - accidental database overwrites by the users treating "-R" as "restore". - Those using the full syntax are expected to know what this restore mode - actually means. + * Parameters LockSemCount and LockSignal of firebird.conf don't require tuning + in the new lock manager implementation, so they have been removed as well. SQL SYNTAX -------------------------- @@ -80,84 +34,32 @@ identifiers. Otherwise, you'll need to either use them quoted (in Dialect 3 only) or rename them. -SQL CHECKING --------------------------- - - * It's now prohibited to reference columns of an aliased table using the table - name, e.g. "SELECT TAB.A FROM TAB T". You should use the table alias - instead: "SELECT T.A FROM TAB T". Such behaviour is declared by the SQL - specification. - - * User-specified plans are validated more strictly than previously. So, if you - get an error related to plans (e.g. "table T is not referenced in plan"), - please look through your procedures and triggers and adjust the plans to be - semantically correct. Such errors could also appear during the restore - process (when you migrate databases to the new version) and you'll need to - change the original database before attempting to perform a backup/restore - cycle. - - * Assignments to OLD contexts are now prohibited for all kinds of triggers. - Also, assignments to NEW contexts in AFTER-triggers are prohibited as well. - So, if you get an unexpected error "cannot update a read-only column", this - is exactly the reason. - - * It's now forbidden to try to insert into the same column more than once in - the same insert statement: INSERT INTO T(A, B, A) ... - It's now forbidden to try to update the same column more than once in - the same update statement: UPDATE T SET A = x, B = y, A = z - SQL EXECUTION RESULTS -------------------------- - * NULLs are now considered the least possible values in terms of the ordering - and they are sorted accordingly. This means that NULLs are placed in the - beginning of the result set for ascending sorts and in the end for - descending sorts. In the previous versions, NULLs were always on top. If - you rely on the legacy NULLs placement, please use the NULLS FIRST option - in your ORDER BY clauses. - - * Views updatable via triggers no longer perform direct table operations. In - previous versions, a naturally updatable view with triggers passed the DML - operation to the underlying table as well as executed the triggers. So if - you followed the official documentation and used triggers to perform a table - update, this update was actually done twice, causing either performance - issues or errors (if blobs were affected). Now availability of triggers turn - direct table updates off and everything depends on your triggers. If you - rely on the legacy undocumented behaviour (e.g. use triggers for logging - purposes only), you'll need to adjust your triggers to perform actual - updates as well. - - * CURRENT_TIMESTAMP now returns milliseconds by default, while it returned - truncated seconds value in the previous versions. If you don't need second - fractions here, please specify the required accuracy explicitly, e.g. use - CURRENT_TIMESTAMP(0). - - * ORDER BY now expands asterisks in the select list when referencing columns - by ordinal. So now "SELECT T1.*, T2.COL FROM T1, T2 ORDER BY 2" sorts on the - second column of table T1, while the previous versions sorted on T2.COL. - However, this change makes queries like "SELECT * FROM TAB ORDER BY 5" - possible. + * Malformed UNICODE_FSS strings and blobs are no longer allowed. -PERFORMANCE + * Prior to Firebird 2.5 the SET clause of the UPDATE statement assigned + columns in the user-defined order with the NEW column values being + immediately accessible to the subsequent assignments. This did not + conform to the SQL standard. Starting with Firebird 2.5, only OLD column + values are accessible to all the assignments of the SET clause. + You can revert back to the legacy behavior via the OldSetClauseSemantics + parameter of firebird.conf, if required. Please beware that this parameter + is provided as a temporary solution for backward compatibility issues and + will be deprecated in future Firebird versions. + +UTILITIES -------------------------- - * In SuperServer, garbage collection is now performed in the combined mode - (cooperative + background) by default, whilst previous versions used only - background garbage collection. It means that some queries may return data - slower when there are enough old record versions in the affected tables - (this is especially true for ODS10 and below databases which has ineffective - garbage collection in indices). Please note the new behaviour generally - guarantees better overall performance as the garbage collection is performed - online and it prevents version chains from growing under high load. But you - can rollback to the older behaviour using the GCPolicy config option. - - * This version never uses indices for the ALL predicate and it can cause a - performance degradation for some your queries. This is done to fix known - bugs causing wrong results returned by this predicate in cases when index - was involved. + * fb_lock_print now requires a database path name in order to print the lock table. + Use a "-d <path name>" command line switch to specify a database to analyze. API -------------------------- - * isc_interprete() is deprecated as dangerous. Use fb_interpret() instead. - * Events callback routine declaration fixed. + * Inappropriate TPB (transaction parameter buffer) contents is now rejected + by isc_start_transaction() and isc_start_multiple() API routines. For example, + it's not allowed to specify "no wait" and non-zero "wait timeout" options + together, neither it's possible to specify "no record version" mode along + with "snapshot" transaction isolation mode, etc. |