From: <di...@us...> - 2012-07-11 12:54:15
|
Revision: 54713 http://firebird.svn.sourceforge.net/firebird/?rev=54713&view=rev Author: dimitr Date: 2012-07-11 12:54:08 +0000 (Wed, 11 Jul 2012) Log Message: ----------- Wiped out the legacy compatibility option. Modified Paths: -------------- firebird/trunk/builds/install/misc/firebird.conf.in firebird/trunk/src/common/config/config.cpp firebird/trunk/src/common/config/config.h firebird/trunk/src/dsql/StmtNodes.cpp Modified: firebird/trunk/builds/install/misc/firebird.conf.in =================================================================== --- firebird/trunk/builds/install/misc/firebird.conf.in 2012-07-11 05:26:28 UTC (rev 54712) +++ firebird/trunk/builds/install/misc/firebird.conf.in 2012-07-11 12:54:08 UTC (rev 54713) @@ -444,28 +444,6 @@ #BugcheckAbort = 0 -# 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. -# -# Example of the old vs new behaviour: -# -# UPDATE T SET A = B, B = A -# old result: A gets equal to B, B doesn't change -# new result: A and B get their values exchanged -# -# Change this configuration option to 1 (true) only if your SQL code relies -# on the legacy semantics of the SET clause. It's provided as a temporary -# solution for backward compatibility issues and will be deprecated in -# future Firebird versions. -# -# Type: boolean -# -#OldSetClauseSemantics = 0 - - # ---------------------------- # Relaxing relation alias checking rules in SQL # Modified: firebird/trunk/src/common/config/config.cpp =================================================================== --- firebird/trunk/src/common/config/config.cpp 2012-07-11 05:26:28 UTC (rev 54712) +++ firebird/trunk/src/common/config/config.cpp 2012-07-11 12:54:08 UTC (rev 54713) @@ -162,7 +162,6 @@ {TYPE_INTEGER, "DatabaseGrowthIncrement", (ConfigValue) 128 * 1048576}, // bytes {TYPE_INTEGER, "FileSystemCacheThreshold", (ConfigValue) 65536}, // page buffers {TYPE_BOOLEAN, "RelaxedAliasChecking", (ConfigValue) false}, // if true relax strict alias checking rules in DSQL a bit - {TYPE_BOOLEAN, "OldSetClauseSemantics", (ConfigValue) false}, // if true disallow SET A = B, B = A to exchange column values {TYPE_STRING, "AuditTraceConfigFile", (ConfigValue) ""}, // location of audit trace configuration file {TYPE_INTEGER, "MaxUserTraceLogSize", (ConfigValue) 10}, // maximum size of user session trace log {TYPE_INTEGER, "FileSystemCacheSize", (ConfigValue) 0}, // percent @@ -623,11 +622,6 @@ return (bool) getDefaultConfig()->values[KEY_RELAXED_ALIAS_CHECKING]; } -bool Config::getOldSetClauseSemantics() -{ - return (bool) getDefaultConfig()->values[KEY_OLD_SET_CLAUSE_SEMANTICS]; -} - int Config::getFileSystemCacheSize() { return (int) getDefaultConfig()->values[KEY_FILESYSTEM_CACHE_SIZE]; Modified: firebird/trunk/src/common/config/config.h =================================================================== --- firebird/trunk/src/common/config/config.h 2012-07-11 05:26:28 UTC (rev 54712) +++ firebird/trunk/src/common/config/config.h 2012-07-11 12:54:08 UTC (rev 54713) @@ -127,7 +127,6 @@ KEY_DATABASE_GROWTH_INCREMENT, KEY_FILESYSTEM_CACHE_THRESHOLD, KEY_RELAXED_ALIAS_CHECKING, - KEY_OLD_SET_CLAUSE_SEMANTICS, KEY_TRACE_CONFIG, KEY_MAX_TRACELOG_SIZE, KEY_FILESYSTEM_CACHE_SIZE, @@ -326,8 +325,6 @@ static bool getRelaxedAliasChecking(); - static bool getOldSetClauseSemantics(); - static const char* getAuditTraceConfigFile(); static int getMaxUserTraceLogSize(); Modified: firebird/trunk/src/dsql/StmtNodes.cpp =================================================================== --- firebird/trunk/src/dsql/StmtNodes.cpp 2012-07-11 05:26:28 UTC (rev 54712) +++ firebird/trunk/src/dsql/StmtNodes.cpp 2012-07-11 12:54:08 UTC (rev 54713) @@ -5278,8 +5278,6 @@ thread_db* tdbb = JRD_get_thread_data(); // necessary? MemoryPool& pool = getPool(); - const bool isUpdateSqlCompliant = !Config::getOldSetClauseSemantics(); - // Separate old and new context references. Array<NestConst<ValueExprNode> > orgValues, newValues; @@ -5306,29 +5304,19 @@ { node->dsqlContext = dsqlPassCursorContext(dsqlScratch, dsqlCursorName, relation); - if (isUpdateSqlCompliant) - { - // Process old context values. - dsqlScratch->context->push(node->dsqlContext); - ++dsqlScratch->scopeLevel; + // Process old context values. + dsqlScratch->context->push(node->dsqlContext); + ++dsqlScratch->scopeLevel; - for (ptr = orgValues.begin(); ptr != orgValues.end(); ++ptr) - *ptr = doDsqlPass(dsqlScratch, *ptr, false); + for (ptr = orgValues.begin(); ptr != orgValues.end(); ++ptr) + *ptr = doDsqlPass(dsqlScratch, *ptr, false); - --dsqlScratch->scopeLevel; - dsqlScratch->context->pop(); - } + --dsqlScratch->scopeLevel; + dsqlScratch->context->pop(); // Process relation. doDsqlPass(dsqlScratch, node->dsqlRelation, relation, false); - if (!isUpdateSqlCompliant) - { - // Process old context values. - for (ptr = orgValues.begin(); ptr != orgValues.end(); ++ptr) - *ptr = doDsqlPass(dsqlScratch, *ptr, false); - } - // Process new context values. for (ptr = newValues.begin(); ptr != newValues.end(); ++ptr) *ptr = doDsqlPass(dsqlScratch, *ptr, false); @@ -5374,13 +5362,6 @@ doDsqlPass(dsqlScratch, node->dsqlRelation, relation, false); dsql_ctx* mod_context = dsqlGetContext(node->dsqlRelation); - if (!isUpdateSqlCompliant) - { - // Process old context values. - for (ptr = orgValues.begin(); ptr != orgValues.end(); ++ptr) - *ptr = doDsqlPass(dsqlScratch, *ptr, false); - } - // Process new context values. for (ptr = newValues.begin(); ptr != newValues.end(); ++ptr) *ptr = doDsqlPass(dsqlScratch, *ptr, false); @@ -5430,12 +5411,9 @@ node->dsqlRse = rse; - if (isUpdateSqlCompliant) - { - // Process old context values. - for (ptr = orgValues.begin(); ptr != orgValues.end(); ++ptr) - *ptr = doDsqlPass(dsqlScratch, *ptr, false); - } + // Process old context values. + for (ptr = orgValues.begin(); ptr != orgValues.end(); ++ptr) + *ptr = doDsqlPass(dsqlScratch, *ptr, false); dsqlScratch->context->pop(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |