diff options
author | Alexander Korotkov <akorotkov@postgresql.org> | 2020-05-17 12:41:19 +0300 |
---|---|---|
committer | Alexander Korotkov <akorotkov@postgresql.org> | 2020-05-17 12:45:17 +0300 |
commit | b1953e67e4c481f8d3844dcdd8fdd4054d7e7604 (patch) | |
tree | 5f0beec0e4c65cb81debbbeb920ea0ca8bd76380 /src/bin/psql/describe.c | |
parent | eeba6c7e4366057a09c53efe11f144db55e68c5e (diff) |
Improve ordering for \dAo and \dAp psql commands
This commit changes ORDER BY clause for \dAo and \dAp psql commands in
the following way.
* Operators for the same types are grouped together.
* Same-class operators and procedures are listed before cross-class operators
and procedures.
Modification of ORDER BY clause for \dAp required removing DISTINCT clause,
which doesn't seem to affect anything.
Discussion: https://postgr.es/m/20200511210856.GA18368%40alvherre.pgsql
Author: Alvaro Herrera revised by me
Reviewed-by: Alexander Korotkov, Nikita Glukhov
Diffstat (limited to 'src/bin/psql/describe.c')
-rw-r--r-- | src/bin/psql/describe.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/bin/psql/describe.c b/src/bin/psql/describe.c index 9b526e40cdd..920d5580554 100644 --- a/src/bin/psql/describe.c +++ b/src/bin/psql/describe.c @@ -6288,7 +6288,11 @@ listOpFamilyOperators(const char *access_method_pattern, processSQLNamePattern(pset.db, &buf, family_pattern, have_where, false, "nsf.nspname", "of.opfname", NULL, NULL); - appendPQExpBufferStr(&buf, "ORDER BY 1, 2, o.amopstrategy, 3;"); + appendPQExpBufferStr(&buf, "ORDER BY 1, 2,\n" + " o.amoplefttype = o.amoprighttype DESC,\n" + " pg_catalog.format_type(o.amoplefttype, NULL),\n" + " pg_catalog.format_type(o.amoprighttype, NULL),\n" + " o.amopstrategy;"); res = PSQLexec(buf.data); termPQExpBuffer(&buf); @@ -6327,7 +6331,7 @@ listOpFamilyProcedures(const char *access_method_pattern, initPQExpBuffer(&buf); printfPQExpBuffer(&buf, - "SELECT DISTINCT\n" + "SELECT\n" " am.amname AS \"%s\",\n" " CASE\n" " WHEN pg_catalog.pg_opfamily_is_visible(of.oid)\n" @@ -6360,8 +6364,9 @@ listOpFamilyProcedures(const char *access_method_pattern, processSQLNamePattern(pset.db, &buf, family_pattern, have_where, false, "ns.nspname", "of.opfname", NULL, NULL); - appendPQExpBufferStr(&buf, - "ORDER BY 1, 2, 3, 4, 5;"); + appendPQExpBufferStr(&buf, "ORDER BY 1, 2,\n" + " ap.amproclefttype = ap.amprocrighttype DESC,\n" + " 3, 4, 5;"); res = PSQLexec(buf.data); termPQExpBuffer(&buf); |