]> granicus.if.org Git - postgresql/commit
Simplify psql \d's rule for ordering the indexes of a table.
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 2 Jul 2019 16:32:49 +0000 (12:32 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 2 Jul 2019 16:32:49 +0000 (12:32 -0400)
commit4d6603f28dfc4a1cab0d7d317855d935e314297a
tree2c3cf3ce12de4e600f70e28fb5d973fa00e21d60
parent66c5bd3a6fd8a4c317412838ab3870ab251833b6
Simplify psql \d's rule for ordering the indexes of a table.

The previous rule was "primary key (if any) first, then other unique
indexes in name order, then all other indexes in name order".
But the preference for unique indexes seems a bit obsolete since the
introduction of exclusion constraints.   It's no longer the case
that unique indexes are the only ones that constrain what data can
be in the table, and it's hard to see what other rationale there is
for separating out unique indexes.  Other new features like the
possibility for some indexes to be INVALID (hence, not constraining
anything) make this even shakier.

Hence, simplify the sort order to be "primary key (if any) first,
then all other indexes in name order".

No documentation change, since this was never documented anyway.
A couple of existing regression test cases change output, though.

Discussion: https://postgr.es/m/14422.1561474929@sss.pgh.pa.us
src/bin/psql/describe.c
src/test/regress/expected/alter_table.out
src/test/regress/expected/create_index.out
src/test/regress/expected/replica_identity.out