Make \dt \di and friends more consistent about the treatment of
authorTom Lane
Sat, 4 Apr 2009 00:41:11 +0000 (00:41 +0000)
committerTom Lane
Sat, 4 Apr 2009 00:41:11 +0000 (00:41 +0000)
TOAST tables and indexes; to wit, never show either.  (You can
examine them with plain \d if you're really so inclined.)

src/bin/psql/describe.c

index 220c3c4770a571863b6c43834627046681aaddb6..c78bd6f39eeb22bd71b9739ccd64b15241485c17 100644 (file)
@@ -8,7 +8,7 @@
  *
  * Copyright (c) 2000-2009, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/bin/psql/describe.c,v 1.205 2009/04/02 17:38:26 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/describe.c,v 1.206 2009/04/04 00:41:11 tgl Exp $
  */
 #include "postgres_fe.h"
 
@@ -2029,8 +2029,15 @@ listTables(const char *tabtypes, const char *pattern, bool verbose, bool showSys
 
    if (!showSystem && !pattern)
        appendPQExpBuffer(&buf, "      AND n.nspname <> 'pg_catalog'\n"
-                               "      AND n.nspname <> 'information_schema'\n"
-                               "      AND n.nspname !~ '^pg_toast'\n");
+                               "      AND n.nspname <> 'information_schema'\n");
+
+   /*
+    * TOAST objects are suppressed unconditionally.  Since we don't provide
+    * any way to select relkind 't' above, we would never show toast tables
+    * in any case; it seems a bit confusing to allow their indexes to be
+    * shown. Use plain \d if you really need to look at a TOAST table/index.
+    */
+   appendPQExpBuffer(&buf, "      AND n.nspname !~ '^pg_toast'\n");
 
    processSQLNamePattern(pset.db, &buf, pattern, true, false,
                          "n.nspname", "c.relname", NULL,