From: stronk7 Date: Sat, 27 Jan 2007 17:37:39 +0000 (+0000) Subject: Now Postgres naming of objects introspects to avoid duplicates. MDL-7376 X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=a1b2780c8effc3aaaf206b1551efacef3e0e249d;p=moodle.git Now Postgres naming of objects introspects to avoid duplicates. MDL-7376 --- diff --git a/lib/xmldb/classes/generators/postgres7/postgres7.class.php b/lib/xmldb/classes/generators/postgres7/postgres7.class.php index 9dcf4b00e6..6f401fbdc2 100644 --- a/lib/xmldb/classes/generators/postgres7/postgres7.class.php +++ b/lib/xmldb/classes/generators/postgres7/postgres7.class.php @@ -469,6 +469,43 @@ function getSequenceFromDB($xmldb_table) { return $sequencename; } + /** + * 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 'ix': + case 'uix': + case 'seq': + if ($check = get_records_sql("SELECT relname + FROM pg_class + WHERE lower(relname) = '" . strtolower($object_name) . "'")) { + return true; + } + break; + case 'pk': + case 'uk': + case 'fk': + case 'ck': + if ($check = get_records_sql("SELECT conname + FROM pg_constraint + WHERE lower(conname) = '" . strtolower($object_name) . "'")) { + return true; + } + break; + case 'trg': + if ($check = get_records_sql("SELECT tgname + FROM pg_trigger + WHERE lower(tgname) = '" . strtolower($object_name) . "'")) { + return true; + } + break; + } + return false; //No name in use found + } + /** * Returns an array of reserved words (lowercase) for this DB */