]> git.joonet.de Git - adminer.git/commitdiff
PostgreSQL 8+: Fix exporting table constraints
authorJakub Vrana <jakub@vrana.cz>
Sun, 23 Feb 2025 17:45:19 +0000 (18:45 +0100)
committerJakub Vrana <jakub@vrana.cz>
Sun, 23 Feb 2025 17:47:11 +0000 (18:47 +0100)
adminer/drivers/pgsql.inc.php
changes.txt

index 7c880bdfb52423c7369eb8be38f02c7660ec7a60..b352fcb8108ce8d29336676ce31b48bc3baee36b 100644 (file)
@@ -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') . ");";
index 874a59ab35f65f12d485732db3b8e6329f0aa4a6..ad20a7558be8c3b13a114798308389a05781f522 100644 (file)
@@ -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)