88 *
99 * Copyright (c) 2000-2009, PostgreSQL Global Development Group
1010 *
11- * $PostgreSQL: pgsql/src/bin/psql/describe.c,v 1.203 2009/03/26 22:26:07 petere Exp $
11+ * $PostgreSQL: pgsql/src/bin/psql/describe.c,v 1.204 2009/04/02 15:15:32 momjian Exp $
1212 */
1313#include "postgres_fe.h"
1414
@@ -94,7 +94,7 @@ describeAggregates(const char *pattern, bool verbose, bool showSystem)
9494 "WHERE p.proisagg\n" ,
9595 gettext_noop ("Description" ));
9696
97- if (!showSystem )
97+ if (!showSystem && ! pattern )
9898 appendPQExpBuffer (& buf , " AND n.nspname <> 'pg_catalog'\n" );
9999
100100 processSQLNamePattern (pset .db , & buf , pattern , true, false,
@@ -281,7 +281,7 @@ describeFunctions(const char *pattern, bool verbose, bool showSystem)
281281 " AND p.proargtypes[0] IS DISTINCT FROM 'pg_catalog.cstring'::pg_catalog.regtype\n"
282282 " AND NOT p.proisagg\n" );
283283
284- if (!showSystem )
284+ if (!showSystem && ! pattern )
285285 appendPQExpBuffer (& buf , " AND n.nspname <> 'pg_catalog'\n" );
286286
287287 processSQLNamePattern (pset .db , & buf , pattern , true, false,
@@ -372,7 +372,7 @@ describeTypes(const char *pattern, bool verbose, bool showSystem)
372372 else
373373 appendPQExpBuffer (& buf , " AND t.typname !~ '^_'\n" );
374374
375- if (!showSystem )
375+ if (!showSystem && ! pattern )
376376 appendPQExpBuffer (& buf , " AND n.nspname <> 'pg_catalog'\n" );
377377
378378 /* Match name pattern against either internal or external name */
@@ -427,10 +427,10 @@ describeOperators(const char *pattern, bool showSystem)
427427 gettext_noop ("Result type" ),
428428 gettext_noop ("Description" ));
429429
430- if (!showSystem )
430+ if (!showSystem && ! pattern )
431431 appendPQExpBuffer (& buf , " WHERE n.nspname <> 'pg_catalog'\n" );
432432
433- processSQLNamePattern (pset .db , & buf , pattern , !showSystem , true,
433+ processSQLNamePattern (pset .db , & buf , pattern , !showSystem && ! pattern , true,
434434 "n.nspname" , "o.oprname" , NULL ,
435435 "pg_catalog.pg_operator_is_visible(o.oid)" );
436436
@@ -631,7 +631,7 @@ objectDescription(const char *pattern, bool showSystem)
631631 " WHERE p.proisagg\n" ,
632632 gettext_noop ("aggregate" ));
633633
634- if (!showSystem )
634+ if (!showSystem && ! pattern )
635635 appendPQExpBuffer (& buf , " AND n.nspname <> 'pg_catalog'\n" );
636636
637637 processSQLNamePattern (pset .db , & buf , pattern , true, false,
@@ -654,7 +654,7 @@ objectDescription(const char *pattern, bool showSystem)
654654 " AND NOT p.proisagg\n" ,
655655 gettext_noop ("function" ));
656656
657- if (!showSystem )
657+ if (!showSystem && ! pattern )
658658 appendPQExpBuffer (& buf , " AND n.nspname <> 'pg_catalog'\n" );
659659
660660 processSQLNamePattern (pset .db , & buf , pattern , true, false,
@@ -672,10 +672,10 @@ objectDescription(const char *pattern, bool showSystem)
672672 " LEFT JOIN pg_catalog.pg_namespace n ON n.oid = o.oprnamespace\n" ,
673673 gettext_noop ("operator" ));
674674
675- if (!showSystem )
675+ if (!showSystem && ! pattern )
676676 appendPQExpBuffer (& buf , " WHERE n.nspname <> 'pg_catalog'\n" );
677677
678- processSQLNamePattern (pset .db , & buf , pattern , !showSystem , false,
678+ processSQLNamePattern (pset .db , & buf , pattern , !showSystem && ! pattern , false,
679679 "n.nspname" , "o.oprname" , NULL ,
680680 "pg_catalog.pg_operator_is_visible(o.oid)" );
681681
@@ -690,10 +690,10 @@ objectDescription(const char *pattern, bool showSystem)
690690 " LEFT JOIN pg_catalog.pg_namespace n ON n.oid = t.typnamespace\n" ,
691691 gettext_noop ("data type" ));
692692
693- if (!showSystem )
693+ if (!showSystem && ! pattern )
694694 appendPQExpBuffer (& buf , " WHERE n.nspname <> 'pg_catalog'\n" );
695695
696- processSQLNamePattern (pset .db , & buf , pattern , !showSystem , false,
696+ processSQLNamePattern (pset .db , & buf , pattern , !showSystem && ! pattern , false,
697697 "n.nspname" , "pg_catalog.format_type(t.oid, NULL)" ,
698698 NULL ,
699699 "pg_catalog.pg_type_is_visible(t.oid)" );
@@ -714,7 +714,7 @@ objectDescription(const char *pattern, bool showSystem)
714714 gettext_noop ("view" ),
715715 gettext_noop ("index" ),
716716 gettext_noop ("sequence" ));
717- if (!showSystem )
717+ if (!showSystem && ! pattern )
718718 appendPQExpBuffer (& buf , " AND n.nspname <> 'pg_catalog'\n" );
719719
720720 processSQLNamePattern (pset .db , & buf , pattern , true, false,
@@ -734,7 +734,7 @@ objectDescription(const char *pattern, bool showSystem)
734734 " WHERE r.rulename != '_RETURN'\n" ,
735735 gettext_noop ("rule" ));
736736
737- if (!showSystem )
737+ if (!showSystem && ! pattern )
738738 appendPQExpBuffer (& buf , " AND n.nspname <> 'pg_catalog'\n" );
739739
740740 /* XXX not sure what to do about visibility rule here? */
@@ -753,11 +753,11 @@ objectDescription(const char *pattern, bool showSystem)
753753 " JOIN pg_catalog.pg_class c ON c.oid = t.tgrelid\n"
754754 " LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace\n" ,
755755 gettext_noop ("trigger" ));
756- if (!showSystem )
756+ if (!showSystem && ! pattern )
757757 appendPQExpBuffer (& buf , " WHERE n.nspname <> 'pg_catalog'\n" );
758758
759759 /* XXX not sure what to do about visibility rule here? */
760- processSQLNamePattern (pset .db , & buf , pattern , !showSystem , false,
760+ processSQLNamePattern (pset .db , & buf , pattern , !showSystem && ! pattern , false,
761761 "n.nspname" , "t.tgname" , NULL ,
762762 "pg_catalog.pg_table_is_visible(c.oid)" );
763763
@@ -808,10 +808,10 @@ describeTableDetails(const char *pattern, bool verbose, bool showSystem)
808808 "FROM pg_catalog.pg_class c\n"
809809 " LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace\n" );
810810
811- if (!showSystem )
811+ if (!showSystem && ! pattern )
812812 appendPQExpBuffer (& buf , " WHERE n.nspname <> 'pg_catalog'\n" );
813813
814- processSQLNamePattern (pset .db , & buf , pattern , !showSystem , false,
814+ processSQLNamePattern (pset .db , & buf , pattern , !showSystem && ! pattern , false,
815815 "n.nspname" , "c.relname" , NULL ,
816816 "pg_catalog.pg_table_is_visible(c.oid)" );
817817
@@ -2008,12 +2008,12 @@ listTables(const char *tabtypes, const char *pattern, bool verbose, bool showSys
20082008 appendPQExpBuffer (& buf , "'i'," );
20092009 if (showSeq )
20102010 appendPQExpBuffer (& buf , "'S'," );
2011- if (showSystem )
2011+ if (showSystem || pattern )
20122012 appendPQExpBuffer (& buf , "'s'," ); /* was RELKIND_SPECIAL in <= 8.1 */
20132013 appendPQExpBuffer (& buf , "''" ); /* dummy */
20142014 appendPQExpBuffer (& buf , ")\n" );
20152015
2016- if (!showSystem )
2016+ if (!showSystem && ! pattern )
20172017 /* Exclude system and pg_toast objects, but show temp tables */
20182018 appendPQExpBuffer (& buf ,
20192019 " AND n.nspname <> 'pg_catalog'\n"
@@ -2087,7 +2087,7 @@ listDomains(const char *pattern, bool showSystem)
20872087 gettext_noop ("Modifier" ),
20882088 gettext_noop ("Check" ));
20892089
2090- if (!showSystem )
2090+ if (!showSystem && ! pattern )
20912091 appendPQExpBuffer (& buf , " AND n.nspname <> 'pg_catalog'\n" );
20922092
20932093 processSQLNamePattern (pset .db , & buf , pattern , true, false,
@@ -2142,7 +2142,7 @@ listConversions(const char *pattern, bool showSystem)
21422142 gettext_noop ("yes" ), gettext_noop ("no" ),
21432143 gettext_noop ("Default?" ));
21442144
2145- if (!showSystem )
2145+ if (!showSystem && ! pattern )
21462146 appendPQExpBuffer (& buf , " AND n.nspname <> 'pg_catalog'\n" );
21472147
21482148 processSQLNamePattern (pset .db , & buf , pattern , true, false,
0 commit comments