]> git.mjollnir.org Git - moodle.git/commitdiff
Small change in rename_field() so objects won't become modified at all
authorstronk7 <stronk7>
Thu, 12 Oct 2006 12:28:36 +0000 (12:28 +0000)
committerstronk7 <stronk7>
Thu, 12 Oct 2006 12:28:36 +0000 (12:28 +0000)
in the process.

Merged from MOODLE_17_STABLE

lib/xmldb/classes/generators/mssql/mssql.class.php
lib/xmldb/classes/generators/oci8po/oci8po.class.php
lib/xmldb/classes/generators/postgres7/postgres7.class.php

index 5b6c7073a3a854be2060a2243e027ad0a3865b0e..9d92171b9dae2f7d9a13cfdd497f7d1775a37dd5 100644 (file)
@@ -229,10 +229,12 @@ class XMLDBmssql extends XMLDBgenerator {
         if ($xmldb_field->getEnum()) {
         /// Drop the current enum (not needed, it has been dropped before for msqql (in getRenameFieldSQL)
             //$results = array_merge($results, $this->getDropEnumSQL($xmldb_table, $xmldb_field));
-        /// Change field name
-            $xmldb_field->setName($newname);
+        /// Change field name (over a clone to avoid some potential problems later)
+            $new_xmldb_field = clone($xmldb_field);
+            $new_xmldb_field->setName($newname);
+
         /// Recreate the enum
-            $results = array_merge($results, $this->getCreateEnumSQL($xmldb_table, $xmldb_field));
+            $results = array_merge($results, $this->getCreateEnumSQL($xmldb_table, $new_xmldb_field));
         }
 
         return $results;
index 97d462e49e3ca0425149b2767ac923cc75aa2944..41d5144dc17eb789460c3facfb19517bfb88300f 100644 (file)
@@ -214,10 +214,11 @@ class XMLDBoci8po extends XMLDBgenerator {
         if ($xmldb_field->getEnum()) {
         /// Drop the current enum
             $results = array_merge($results, $this->getDropEnumSQL($xmldb_table, $xmldb_field));
-        /// Change field name
-            $xmldb_field->setName($newname);
+        /// Change field name (over a clone to avoid some potential problems later)
+            $new_xmldb_field = clone($xmldb_field);
+            $new_xmldb_field->setName($newname);
         /// Recreate the enum
-            $results = array_merge($results, $this->getCreateEnumSQL($xmldb_table, $xmldb_field));
+            $results = array_merge($results, $this->getCreateEnumSQL($xmldb_table, $new_xmldb_field));
         }
 
         return $results;
index e24e7c48f19f620182c3dcdcd4cf9df9fe007e0a..6cf983b5fb565e3214ed8d35e2c12b71c562c34e 100644 (file)
@@ -370,10 +370,11 @@ class XMLDBpostgres7 extends XMLDBgenerator {
         if ($xmldb_field->getEnum()) {
         /// Drop the current enum
             $results = array_merge($results, $this->getDropEnumSQL($xmldb_table, $xmldb_field));
-        /// Change field name
-            $xmldb_field->setName($newname);
+        /// Change field name (over a clone to avoid some potential problems later)
+            $new_xmldb_field = clone($xmldb_field);
+            $new_xmldb_field->setName($newname);
         /// Recreate the enum
-            $results = array_merge($results, $this->getCreateEnumSQL($xmldb_table, $xmldb_field));
+            $results = array_merge($results, $this->getCreateEnumSQL($xmldb_table, $new_xmldb_field));
         }
 
         return $results;