8
8
*
9
9
* Copyright (c) 2000-2009, PostgreSQL Global Development Group
10
10
*
11
- * $PostgreSQL: pgsql/src/bin/psql/describe.c,v 1.196 2009/01/19 18:44:32 momjian Exp $
11
+ * $PostgreSQL: pgsql/src/bin/psql/describe.c,v 1.197 2009/01/20 02:13:42 momjian Exp $
12
12
*/
13
13
#include "postgres_fe.h"
14
14
@@ -782,7 +782,7 @@ objectDescription(const char *pattern, bool showSystem)
782
782
* verbose: if true, this is \d+
783
783
*/
784
784
bool
785
- describeTableDetails (const char * pattern , bool verbose )
785
+ describeTableDetails (const char * pattern , bool verbose , bool showSystem )
786
786
{
787
787
PQExpBufferData buf ;
788
788
PGresult * res ;
@@ -797,7 +797,10 @@ describeTableDetails(const char *pattern, bool verbose)
797
797
"FROM pg_catalog.pg_class c\n"
798
798
" LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace\n" );
799
799
800
- processSQLNamePattern (pset .db , & buf , pattern , false, false,
800
+ if (!showSystem )
801
+ appendPQExpBuffer (& buf , " WHERE n.nspname <> 'pg_catalog'\n" );
802
+
803
+ processSQLNamePattern (pset .db , & buf , pattern , !showSystem , false,
801
804
"n.nspname" , "c.relname" , NULL ,
802
805
"pg_catalog.pg_table_is_visible(c.oid)" );
803
806
@@ -1961,20 +1964,13 @@ listTables(const char *tabtypes, const char *pattern, bool verbose, bool showSys
1961
1964
appendPQExpBuffer (& buf , "'i'," );
1962
1965
if (showSeq )
1963
1966
appendPQExpBuffer (& buf , "'S'," );
1964
- if (showSystem && showTables )
1967
+ if (showSystem )
1965
1968
appendPQExpBuffer (& buf , "'s'," ); /* was RELKIND_SPECIAL in <= 8.1.X */
1966
1969
appendPQExpBuffer (& buf , "''" ); /* dummy */
1967
1970
appendPQExpBuffer (& buf , ")\n" );
1968
1971
1969
- /*
1970
- * If showSystem is specified, show only system objects (those in
1971
- * pg_catalog). Otherwise, suppress system objects, including those in
1972
- * pg_catalog and pg_toast. (We don't want to hide temp tables though.)
1973
- */
1974
- if (showSystem )
1975
- appendPQExpBuffer (& buf ,
1976
- " AND n.nspname = 'pg_catalog'\n" );
1977
- else
1972
+ if (!showSystem )
1973
+ /* Exclude system and pg_toast objects, but show temp tables */
1978
1974
appendPQExpBuffer (& buf ,
1979
1975
" AND n.nspname <> 'pg_catalog'\n"
1980
1976
" AND n.nspname !~ '^pg_toast'\n" );
0 commit comments