MDL-37420 add support for more PostgreSQL schemas

This commit is contained in:
Petr Škoda 2013-01-08 17:12:31 +01:00
parent d55399a098
commit 6ad8d762da
2 changed files with 32 additions and 26 deletions

View file

@ -445,9 +445,11 @@ class postgres_sql_generator extends sql_generator {
$tablename = $this->getTableName($xmldb_table);
$sequencename = $tablename . '_id_seq';
if (!$this->mdb->get_record_sql("SELECT *
FROM pg_class
WHERE relname = ? AND relkind = 'S'",
if (!$this->mdb->get_record_sql("SELECT c.*
FROM pg_catalog.pg_class c
JOIN pg_catalog.pg_namespace as ns ON ns.oid = c.relnamespace
WHERE c.relname = ? AND c.relkind = 'S'
AND (ns.nspname = current_schema() OR ns.oid = pg_my_temp_schema())",
array($sequencename))) {
$sequencename = false;
}
@ -473,9 +475,11 @@ class postgres_sql_generator extends sql_generator {
case 'ix':
case 'uix':
case 'seq':
if ($check = $this->mdb->get_records_sql("SELECT relname
FROM pg_class
WHERE lower(relname) = ?", array(strtolower($object_name)))) {
if ($check = $this->mdb->get_records_sql("SELECT c.relname
FROM pg_class c
JOIN pg_catalog.pg_namespace as ns ON ns.oid = c.relnamespace
WHERE lower(c.relname) = ?
AND (ns.nspname = current_schema() OR ns.oid = pg_my_temp_schema())", array(strtolower($object_name)))) {
return true;
}
break;
@ -483,9 +487,11 @@ class postgres_sql_generator extends sql_generator {
case 'uk':
case 'fk':
case 'ck':
if ($check = $this->mdb->get_records_sql("SELECT conname
FROM pg_constraint
WHERE lower(conname) = ?", array(strtolower($object_name)))) {
if ($check = $this->mdb->get_records_sql("SELECT c.conname
FROM pg_constraint c
JOIN pg_catalog.pg_namespace as ns ON ns.oid = c.connamespace
WHERE lower(c.conname) = ?
AND (ns.nspname = current_schema() OR ns.oid = pg_my_temp_schema())", array(strtolower($object_name)))) {
return true;
}
break;