From ae7ea1395cc386f4b6d19d88c4f66cd027a64266 Mon Sep 17 00:00:00 2001
From: Neil Conway <neilc@samurai.com>
Date: Fri, 10 Sep 2004 04:10:53 +0000
Subject: [PATCH] psql consistency fixes from Greg Sabino Mullane: have \df
 show schema and name first, make sure \di+ shows description last, and make
 \dl SQL look a little more standard.

---
 src/bin/psql/describe.c  | 23 +++++++++++++----------
 src/bin/psql/large_obj.c |  9 +++++----
 2 files changed, 18 insertions(+), 14 deletions(-)

diff --git a/src/bin/psql/describe.c b/src/bin/psql/describe.c
index 2596688815..4b393b4e9f 100644
--- a/src/bin/psql/describe.c
+++ b/src/bin/psql/describe.c
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 2000-2004, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/bin/psql/describe.c,v 1.106 2004/08/29 05:06:54 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/describe.c,v 1.107 2004/09/10 04:10:53 neilc Exp $
  */
 #include "postgres_fe.h"
 #include "describe.h"
@@ -169,12 +169,12 @@ describeFunctions(const char *pattern, bool verbose)
 	initPQExpBuffer(&buf);
 
 	printfPQExpBuffer(&buf,
-			"SELECT CASE WHEN p.proretset THEN 'setof ' ELSE '' END ||\n"
-			  "  pg_catalog.format_type(p.prorettype, NULL) as \"%s\",\n"
-					  "  n.nspname as \"%s\",\n"
+					  "SELECT n.nspname as \"%s\",\n"
 					  "  p.proname as \"%s\",\n"
-				  "  pg_catalog.oidvectortypes(p.proargtypes) as \"%s\"",
-					  _("Result data type"), _("Schema"), _("Name"),
+					  "  CASE WHEN p.proretset THEN 'setof ' ELSE '' END ||\n"
+					  "  pg_catalog.format_type(p.prorettype, NULL) as \"%s\",\n"
+					  "  pg_catalog.oidvectortypes(p.proargtypes) as \"%s\"",
+					  _("Schema"), _("Name"), _("Result data type"), 
 					  _("Argument data types"));
 
 	if (verbose)
@@ -210,7 +210,7 @@ describeFunctions(const char *pattern, bool verbose)
 					   "n.nspname", "p.proname", NULL,
 					   "pg_catalog.pg_function_is_visible(p.oid)");
 
-	appendPQExpBuffer(&buf, "ORDER BY 2, 3, 1, 4;");
+	appendPQExpBuffer(&buf, "ORDER BY 1, 2, 3, 4;");
 
 	res = PSQLexec(buf.data, false);
 	termPQExpBuffer(&buf);
@@ -1477,6 +1477,11 @@ listTables(const char *tabtypes, const char *pattern, bool verbose)
 					  _("table"), _("view"), _("index"), _("sequence"),
 					  _("special"), _("Type"), _("Owner"));
 
+	if (showIndexes)
+		appendPQExpBuffer(&buf,
+						  ",\n c2.relname as \"%s\"",
+						  _("Table"));
+
 	if (verbose)
 		appendPQExpBuffer(&buf,
 		  ",\n  pg_catalog.obj_description(c.oid, 'pg_class') as \"%s\"",
@@ -1484,13 +1489,11 @@ listTables(const char *tabtypes, const char *pattern, bool verbose)
 
 	if (showIndexes)
 		appendPQExpBuffer(&buf,
-						  ",\n c2.relname as \"%s\""
 						  "\nFROM pg_catalog.pg_class c"
 			  "\n     JOIN pg_catalog.pg_index i ON i.indexrelid = c.oid"
 			  "\n     JOIN pg_catalog.pg_class c2 ON i.indrelid = c2.oid"
 		"\n     LEFT JOIN pg_catalog.pg_user u ON u.usesysid = c.relowner"
-						  "\n     LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace\n",
-						  _("Table"));
+						  "\n     LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace\n");
 	else
 		appendPQExpBuffer(&buf,
 						  "\nFROM pg_catalog.pg_class c"
diff --git a/src/bin/psql/large_obj.c b/src/bin/psql/large_obj.c
index 15a352aff4..7c9b560963 100644
--- a/src/bin/psql/large_obj.c
+++ b/src/bin/psql/large_obj.c
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 2000-2004, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/bin/psql/large_obj.c,v 1.33 2004/08/29 04:13:02 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/large_obj.c,v 1.34 2004/09/10 04:10:53 neilc Exp $
  */
 #include "postgres_fe.h"
 #include "large_obj.h"
@@ -249,9 +249,10 @@ do_lo_list(void)
 	printQueryOpt myopt = pset.popt;
 
 	snprintf(buf, sizeof(buf),
-			 "SELECT loid as \"ID\", pg_catalog.obj_description(loid, 'pg_largeobject') as \"%s\"\n"
-		 "FROM (SELECT DISTINCT loid FROM pg_catalog.pg_largeobject) x\n"
-			 "ORDER BY \"ID\"",
+			 "SELECT loid as \"ID\",\n"
+			 "  pg_catalog.obj_description(loid, 'pg_largeobject') as \"%s\"\n"
+			 "FROM (SELECT DISTINCT loid FROM pg_catalog.pg_largeobject) x\n"
+			 "ORDER BY 1",
 			 gettext("Description"));
 
 	res = PSQLexec(buf, false);
-- 
2.24.1