MDL-26333 ddl - better/safer temp column names
authorEloy Lafuente (stronk7) <stronk7@moodle.org>
Wed, 9 Feb 2011 16:36:57 +0000 (17:36 +0100)
committerEloy Lafuente (stronk7) <stronk7@moodle.org>
Wed, 9 Feb 2011 16:36:57 +0000 (17:36 +0100)
lib/ddl/oracle_sql_generator.php

index 0ce070a..2e0b37c 100644 (file)
@@ -396,7 +396,10 @@ class oracle_sql_generator extends sql_generator {
     ///     - drop the old column
     ///     - rename the temp column to the original name
         if (($typechanged) || (($oldmetatype == 'N' || $oldmetatype == 'I')  && ($precisionchanged || $decimalchanged))) {
-            $tempcolname = $xmldb_field->getName() . '_alter_column_tmp';
+            $tempcolname = $xmldb_field->getName() . '___tmp'; // Short tmp name, surely not conflicting ever
+            if (strlen($tempcolname) > 30) { // Safeguard we don't excess the 30cc limit
+                $tempcolname = 'ongoing_alter_column_tmp';
+            }
         /// Prevent temp field to have both NULL/NOT NULL and DEFAULT constraints
             $skip_notnull_clause = true;
             $skip_default_clause = true;