0001-Improvements-to-psql-dAo-and-dAp-commands.patch

application/octet-stream

Filename: 0001-Improvements-to-psql-dAo-and-dAp-commands.patch
Type: application/octet-stream
Part: 0
Message: Re: output columns of \dAo and \dAp

Patch

Format: format-patch
Series: patch 0001
Subject: Improvements to psql \dAo and \dAp commands
File+
src/bin/psql/describe.c 14 14
src/test/regress/expected/psql.out 25 25
From 5c7f56a42d9d428b388be07c70407d8ef6dda82e Mon Sep 17 00:00:00 2001
From: Alexander Korotkov <akorotkov@postgresql.org>
Date: Sat, 11 Jul 2020 14:14:49 +0300
Subject: [PATCH] Improvements to psql \dAo and \dAp commands

 * Strategy number and purpose are essential information for opfamily operator.
   So, show those columns in non-verbose output.
 * "Left/right arg type" \dAp column names are confusing, because those type
   don't necessary match to function arguments.  Rename them to "Registered
   left/right type".

Reported-by: Peter Eisentraut, Tom Lane
Discussion: https://postgr.es/m/2edc7b27-031f-b2b6-0db2-864241c91cb9%402ndquadrant.com
---
 src/bin/psql/describe.c            | 28 ++++++++++-----------
 src/test/regress/expected/psql.out | 50 +++++++++++++++++++-------------------
 2 files changed, 39 insertions(+), 39 deletions(-)

diff --git a/src/bin/psql/describe.c b/src/bin/psql/describe.c
index cd39b913cda..135b2ffe5f5 100644
--- a/src/bin/psql/describe.c
+++ b/src/bin/psql/describe.c
@@ -6248,23 +6248,23 @@ listOpFamilyOperators(const char *access_method_pattern,
 					  "    END,\n"
 					  "    pg_catalog.format_type(o.amoplefttype, NULL),\n"
 					  "    pg_catalog.format_type(o.amoprighttype, NULL)\n"
-					  "  ) AS \"%s\"\n",
+					  "  ) AS \"%s\"\n,"
+					  "  o.amopstrategy AS \"%s\",\n"
+					  "  CASE o.amoppurpose\n"
+					  "    WHEN 'o' THEN '%s'\n"
+					  "    WHEN 's' THEN '%s'\n"
+					  "  END AS \"%s\"\n",
 					  gettext_noop("AM"),
 					  gettext_noop("Operator family"),
-					  gettext_noop("Operator"));
+					  gettext_noop("Operator"),
+					  gettext_noop("Strategy"),
+					  gettext_noop("ordering"),
+					  gettext_noop("search"),
+					  gettext_noop("Purpose"));
 
 	if (verbose)
 		appendPQExpBuffer(&buf,
-						  ", o.amopstrategy AS \"%s\",\n"
-						  "  CASE o.amoppurpose\n"
-						  "    WHEN 'o' THEN '%s'\n"
-						  "    WHEN 's' THEN '%s'\n"
-						  "  END AS \"%s\",\n"
-						  "  ofs.opfname AS \"%s\"\n",
-						  gettext_noop("Strategy"),
-						  gettext_noop("ordering"),
-						  gettext_noop("search"),
-						  gettext_noop("Purpose"),
+						  ", ofs.opfname AS \"%s\"\n",
 						  gettext_noop("Sort opfamily"));
 	appendPQExpBuffer(&buf,
 					  "FROM pg_catalog.pg_amop o\n"
@@ -6341,8 +6341,8 @@ listOpFamilyFunctions(const char *access_method_pattern,
 					  "  p.proname AS \"%s\"\n",
 					  gettext_noop("AM"),
 					  gettext_noop("Operator family"),
-					  gettext_noop("Left arg type"),
-					  gettext_noop("Right arg type"),
+					  gettext_noop("Registered left type"),
+					  gettext_noop("Registered right type"),
 					  gettext_noop("Number"),
 					  gettext_noop("Function"));
 
diff --git a/src/test/regress/expected/psql.out b/src/test/regress/expected/psql.out
index 7d2d6328fc8..ae4d1e58072 100644
--- a/src/test/regress/expected/psql.out
+++ b/src/test/regress/expected/psql.out
@@ -4979,36 +4979,36 @@ List of access methods
 (20 rows)
 
 \dAo * pg_catalog.jsonb_path_ops
-    List of operators of operator families
- AM  | Operator family |       Operator       
------+-----------------+----------------------
- gin | jsonb_path_ops  | @> (jsonb, jsonb)
- gin | jsonb_path_ops  | @? (jsonb, jsonpath)
- gin | jsonb_path_ops  | @@ (jsonb, jsonpath)
+              List of operators of operator families
+ AM  | Operator family |       Operator       | Strategy | Purpose 
+-----+-----------------+----------------------+----------+---------
+ gin | jsonb_path_ops  | @> (jsonb, jsonb)    |        7 | search
+ gin | jsonb_path_ops  | @? (jsonb, jsonpath) |       15 | search
+ gin | jsonb_path_ops  | @@ (jsonb, jsonpath) |       16 | search
 (3 rows)
 
 \dAp btree float_ops
-                        List of support functions of operator families
-  AM   | Operator family |  Left arg type   |  Right arg type  | Number |      Function       
--------+-----------------+------------------+------------------+--------+---------------------
- btree | float_ops       | double precision | double precision |      1 | btfloat8cmp
- btree | float_ops       | double precision | double precision |      2 | btfloat8sortsupport
- btree | float_ops       | double precision | double precision |      3 | in_range
- btree | float_ops       | real             | real             |      1 | btfloat4cmp
- btree | float_ops       | real             | real             |      2 | btfloat4sortsupport
- btree | float_ops       | double precision | real             |      1 | btfloat84cmp
- btree | float_ops       | real             | double precision |      1 | btfloat48cmp
- btree | float_ops       | real             | double precision |      3 | in_range
+                            List of support functions of operator families
+  AM   | Operator family | Registered left type | Registered right type | Number |      Function       
+-------+-----------------+----------------------+-----------------------+--------+---------------------
+ btree | float_ops       | double precision     | double precision      |      1 | btfloat8cmp
+ btree | float_ops       | double precision     | double precision      |      2 | btfloat8sortsupport
+ btree | float_ops       | double precision     | double precision      |      3 | in_range
+ btree | float_ops       | real                 | real                  |      1 | btfloat4cmp
+ btree | float_ops       | real                 | real                  |      2 | btfloat4sortsupport
+ btree | float_ops       | double precision     | real                  |      1 | btfloat84cmp
+ btree | float_ops       | real                 | double precision      |      1 | btfloat48cmp
+ btree | float_ops       | real                 | double precision      |      3 | in_range
 (8 rows)
 
 \dAp * pg_catalog.uuid_ops
-                     List of support functions of operator families
-  AM   | Operator family | Left arg type | Right arg type | Number |      Function      
--------+-----------------+---------------+----------------+--------+--------------------
- btree | uuid_ops        | uuid          | uuid           |      1 | uuid_cmp
- btree | uuid_ops        | uuid          | uuid           |      2 | uuid_sortsupport
- btree | uuid_ops        | uuid          | uuid           |      4 | btequalimage
- hash  | uuid_ops        | uuid          | uuid           |      1 | uuid_hash
- hash  | uuid_ops        | uuid          | uuid           |      2 | uuid_hash_extended
+                            List of support functions of operator families
+  AM   | Operator family | Registered left type | Registered right type | Number |      Function      
+-------+-----------------+----------------------+-----------------------+--------+--------------------
+ btree | uuid_ops        | uuid                 | uuid                  |      1 | uuid_cmp
+ btree | uuid_ops        | uuid                 | uuid                  |      2 | uuid_sortsupport
+ btree | uuid_ops        | uuid                 | uuid                  |      4 | btequalimage
+ hash  | uuid_ops        | uuid                 | uuid                  |      1 | uuid_hash
+ hash  | uuid_ops        | uuid                 | uuid                  |      2 | uuid_hash_extended
 (5 rows)
 
-- 
2.14.3