]> git.joonet.de Git - adminer.git/commitdiff
PostgreSQL: Sort PRIMARY and UNIQUE indexes first
authorJakub Vrana <jakub@vrana.cz>
Wed, 26 Feb 2025 20:28:02 +0000 (21:28 +0100)
committerJakub Vrana <jakub@vrana.cz>
Wed, 26 Feb 2025 20:28:02 +0000 (21:28 +0100)
adminer/drivers/pgsql.inc.php

index f4caf71afa9c7668809bcf5cfceef34681dee321..d983ad630eebd0a320db7674f16696387f22a5e2 100644 (file)
@@ -419,7 +419,7 @@ ORDER BY a.attnum"
                $return = array();
                $table_oid = $connection2->result("SELECT oid FROM pg_class WHERE relnamespace = (SELECT oid FROM pg_namespace WHERE nspname = current_schema()) AND relname = " . q($table));
                $columns = get_key_vals("SELECT attnum, attname FROM pg_attribute WHERE attrelid = $table_oid AND attnum > 0", $connection2);
-               foreach (get_rows("SELECT relname, indisunique::int, indisprimary::int, indkey, indoption, (indpred IS NOT NULL)::int as indispartial FROM pg_index i, pg_class ci WHERE i.indrelid = $table_oid AND ci.oid = i.indexrelid", $connection2) as $row) {
+               foreach (get_rows("SELECT relname, indisunique::int, indisprimary::int, indkey, indoption, (indpred IS NOT NULL)::int as indispartial FROM pg_index i, pg_class ci WHERE i.indrelid = $table_oid AND ci.oid = i.indexrelid ORDER BY indisprimary DESC, indisunique DESC", $connection2) as $row) {
                        $relname = $row["relname"];
                        $return[$relname]["type"] = ($row["indispartial"] ? "INDEX" : ($row["indisprimary"] ? "PRIMARY" : ($row["indisunique"] ? "UNIQUE" : "INDEX")));
                        $return[$relname]["columns"] = array();