]> git.mjollnir.org Git - moodle.git/commitdiff
Now we aren't guessing check constraint names
authorstronk7 <stronk7>
Tue, 11 Sep 2007 19:08:11 +0000 (19:08 +0000)
committerstronk7 <stronk7>
Tue, 11 Sep 2007 19:08:11 +0000 (19:08 +0000)
but getting the real ones under Oracle. MDL-9356

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

index ea68d652f5c5bf280350bd901ec5e3d680bf66c8..ad37cad719ed535b51b6aa80e26490ce50377421 100644 (file)
@@ -451,9 +451,16 @@ class XMLDBoci8po extends XMLDBgenerator {
      * (usually invoked from getModifyEnumSQL()
      */         
     function getDropEnumSQL($xmldb_table, $xmldb_field) {
-    /// All we have to do is to drop the check constraint
-        return array('ALTER TABLE ' . $this->getTableName($xmldb_table) . 
-                     ' DROP CONSTRAINT ' . $this->getNameForObject($xmldb_table->getName(), $xmldb_field->getName(), 'ck'));
+    /// Let's introspect to know the real name of the check constraint
+        if ($check_constraints = $this->getCheckConstraintsFromDB($xmldb_table, $xmldb_field)) {
+            $check_constraint = array_shift($check_constraints); /// Get the 1st (should be only one)
+            $constraint_name = strtolower($check_constraint->name); /// Extract the REAL name
+        /// All we have to do is to drop the check constraint
+            return array('ALTER TABLE ' . $this->getTableName($xmldb_table) . 
+                     ' DROP CONSTRAINT ' . $constraint_name);
+        } else { /// Constraint not found. Nothing to do
+            return array();
+        }
     }   
 
     /**