diff --git a/CHANGELOG.md b/CHANGELOG.md index 0e6c5ecd..746b0e56 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ - PostgreSQL: Order NULL last - PostgreSQL: Display all SQL command warnings and only once - PostgreSQL: Export schema in nextval() +- PostgreSQL: Export schema in REFERENCES - Editor: Display tinyint(1) as checkbox (bug #1246, regression from 5.4.2) - Croatian translation diff --git a/adminer/drivers/pgsql.inc.php b/adminer/drivers/pgsql.inc.php index 827e0c70..7b8ce1ce 100644 --- a/adminer/drivers/pgsql.inc.php +++ b/adminer/drivers/pgsql.inc.php @@ -915,11 +915,12 @@ AND typelem = 0" $return = ""; $status = table_status1($table); + $ns = idf_escape($status['nspname']); $fkeys = foreign_keys($table); ksort($fkeys); foreach ($fkeys as $fkey_name => $fkey) { - $return .= "ALTER TABLE ONLY " . idf_escape($status['nspname']) . "." . idf_escape($status['Name']) . " ADD CONSTRAINT " . idf_escape($fkey_name) . " $fkey[definition];\n"; + $return .= "ALTER TABLE ONLY $ns." . idf_escape($status['Name']) . " ADD CONSTRAINT " . idf_escape($fkey_name) . " " . preg_replace('~( REFERENCES )([^(.]+\()~', "\\1$ns.\\2", $fkey["definition"]) . ";\n"; } return ($return ? "$return\n" : $return);