diff --git a/adminer/drivers/pgsql.inc.php b/adminer/drivers/pgsql.inc.php index b352fcb8..43228c8a 100644 --- a/adminer/drivers/pgsql.inc.php +++ b/adminer/drivers/pgsql.inc.php @@ -450,19 +450,6 @@ ORDER BY conkey, conname") as $row) { return $return; } - function constraints($table) { - 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 -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" - ); - } - function view($name) { global $connection; return array("select" => trim($connection->result("SELECT pg_get_viewdef(" . $connection->result("SELECT oid FROM pg_class WHERE relnamespace = (SELECT oid FROM pg_namespace WHERE nspname = current_schema()) AND relname = " . q($name)) . ")"))); @@ -786,7 +773,6 @@ AND typelem = 0" $fields = fields($table); $indexes = indexes($table); ksort($indexes); - $constraints = constraints($table); if (!$status || empty($fields)) { return false; @@ -829,6 +815,16 @@ AND typelem = 0" } } + $constraints = 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 +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" + ); foreach ($constraints as $conname => $consrc) { $return_parts[] = "CONSTRAINT " . idf_escape($conname) . " $consrc"; }