From 798432935da584986446d5a991ef7848829d4144 Mon Sep 17 00:00:00 2001 From: Jakub Vrana Date: Sun, 23 Feb 2025 18:45:19 +0100 Subject: [PATCH] PostgreSQL 8+: Fix exporting table constraints --- adminer/drivers/pgsql.inc.php | 12 ++++-------- changes.txt | 1 + 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/adminer/drivers/pgsql.inc.php b/adminer/drivers/pgsql.inc.php index 7c880bdf..b352fcb8 100644 --- a/adminer/drivers/pgsql.inc.php +++ b/adminer/drivers/pgsql.inc.php @@ -451,9 +451,7 @@ ORDER BY conkey, conname") as $row) { } function constraints($table) { - global $on_actions; - $return = array(); - foreach (get_rows("SELECT conname, consrc + return get_key_vals("SELECT conname, " . (min_version(8) ? "pg_get_constraintdef(pg_constraint.oid)" : "CONCAT('CHECK ', consrc)") . " FROM pg_catalog.pg_constraint INNER JOIN pg_catalog.pg_namespace ON pg_constraint.connamespace = pg_namespace.oid INNER JOIN pg_catalog.pg_class ON pg_constraint.conrelid = pg_class.oid AND pg_constraint.connamespace = pg_class.relnamespace @@ -461,10 +459,8 @@ WHERE pg_constraint.contype = 'c' AND conrelid != 0 -- handle only CONSTRAINTs here, not TYPES AND nspname = current_schema() AND relname = " . q($table) . " -ORDER BY connamespace, conname") as $row) { - $return[$row['conname']] = $row['consrc']; - } - return $return; +ORDER BY connamespace, conname" + ); } function view($name) { @@ -834,7 +830,7 @@ AND typelem = 0" } foreach ($constraints as $conname => $consrc) { - $return_parts[] = "CONSTRAINT " . idf_escape($conname) . " CHECK $consrc"; + $return_parts[] = "CONSTRAINT " . idf_escape($conname) . " $consrc"; } $return .= implode(",\n ", $return_parts) . "\n) WITH (oids = " . ($status['Oid'] ? 'true' : 'false') . ");"; diff --git a/changes.txt b/changes.txt index 874a59ab..ad20a755 100644 --- a/changes.txt +++ b/changes.txt @@ -8,6 +8,7 @@ MySQL: Don't offer empty enum value in edit PostgreSQL: Link user defined types PostgreSQL: Constraint enum values in editing (bug #270) PostgreSQL: Export functions +PostgreSQL 8+: Fix exporting table constraints SQLite: Show all supported pragmas in Variables MS SQL: Allow altering table in non-default schema (bug #405) MS SQL: Fix default values (bug #732, bug #733)