]> git.mjollnir.org Git - moodle.git/commitdiff
Now MSSQL naming of objects introspects to avoid duplicates. MDL-7376
authorstronk7 <stronk7>
Sun, 28 Jan 2007 18:18:28 +0000 (18:18 +0000)
committerstronk7 <stronk7>
Sun, 28 Jan 2007 18:18:28 +0000 (18:18 +0000)
lib/xmldb/classes/generators/mssql/mssql.class.php

index dafc6d82360b21e3e2730c91356e529483f1b63c..7c8195b62add881226f085acc303bc611edad5d9 100644 (file)
@@ -464,6 +464,37 @@ class XMLDBmssql extends XMLDBgenerator {
         return $results;
     }
 
+    /**
+     * Given one object name and it's type (pk, uk, fk, ck, ix, uix, seq, trg)
+     * return if such name is currently in use (true) or no (false)
+     * (invoked from getNameForObject()
+     */
+    function isNameInUse($object_name, $type) {
+        switch($type) {
+            case 'seq':
+            case 'trg':
+            case 'pk':
+            case 'uk':
+            case 'fk':
+            case 'ck':
+                if ($check = get_records_sql("SELECT name 
+                                              FROM sysobjects 
+                                              WHERE lower(name) = '" . strtolower($object_name) . "'")) {
+                    return true;
+                }
+                break;
+            case 'ix':
+            case 'uix':
+                if ($check = get_records_sql("SELECT name 
+                                              FROM sysindexes
+                                              WHERE lower(name) = '" . strtolower($object_name) . "'")) {
+                    return true;
+                }
+                break;
+        }
+        return false; //No name in use found
+    }
+
     /**
      * Returns an array of reserved words (lowercase) for this DB
      */