8
8
*
9
9
* Copyright (c) 2000-2009, PostgreSQL Global Development Group
10
10
*
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 $
12
12
*/
13
13
#include "postgres_fe.h"
14
14
@@ -94,7 +94,7 @@ describeAggregates(const char *pattern, bool verbose, bool showSystem)
94
94
"WHERE p.proisagg\n" ,
95
95
gettext_noop ("Description" ));
96
96
97
- if (!showSystem )
97
+ if (!showSystem && ! pattern )
98
98
appendPQExpBuffer (& buf ," AND n.nspname <> 'pg_catalog'\n" );
99
99
100
100
processSQLNamePattern (pset .db ,& buf ,pattern , true, false,
@@ -281,7 +281,7 @@ describeFunctions(const char *pattern, bool verbose, bool showSystem)
281
281
" AND p.proargtypes[0] IS DISTINCT FROM 'pg_catalog.cstring'::pg_catalog.regtype\n"
282
282
" AND NOT p.proisagg\n" );
283
283
284
- if (!showSystem )
284
+ if (!showSystem && ! pattern )
285
285
appendPQExpBuffer (& buf ," AND n.nspname <> 'pg_catalog'\n" );
286
286
287
287
processSQLNamePattern (pset .db ,& buf ,pattern , true, false,
@@ -372,7 +372,7 @@ describeTypes(const char *pattern, bool verbose, bool showSystem)
372
372
else
373
373
appendPQExpBuffer (& buf ," AND t.typname !~ '^_'\n" );
374
374
375
- if (!showSystem )
375
+ if (!showSystem && ! pattern )
376
376
appendPQExpBuffer (& buf ," AND n.nspname <> 'pg_catalog'\n" );
377
377
378
378
/* Match name pattern against either internal or external name */
@@ -427,10 +427,10 @@ describeOperators(const char *pattern, bool showSystem)
427
427
gettext_noop ("Result type" ),
428
428
gettext_noop ("Description" ));
429
429
430
- if (!showSystem )
430
+ if (!showSystem && ! pattern )
431
431
appendPQExpBuffer (& buf ," WHERE n.nspname <> 'pg_catalog'\n" );
432
432
433
- processSQLNamePattern (pset .db ,& buf ,pattern , !showSystem , true,
433
+ processSQLNamePattern (pset .db ,& buf ,pattern , !showSystem && ! pattern , true,
434
434
"n.nspname" ,"o.oprname" ,NULL ,
435
435
"pg_catalog.pg_operator_is_visible(o.oid)" );
436
436
@@ -631,7 +631,7 @@ objectDescription(const char *pattern, bool showSystem)
631
631
" WHERE p.proisagg\n" ,
632
632
gettext_noop ("aggregate" ));
633
633
634
- if (!showSystem )
634
+ if (!showSystem && ! pattern )
635
635
appendPQExpBuffer (& buf ," AND n.nspname <> 'pg_catalog'\n" );
636
636
637
637
processSQLNamePattern (pset .db ,& buf ,pattern , true, false,
@@ -654,7 +654,7 @@ objectDescription(const char *pattern, bool showSystem)
654
654
" AND NOT p.proisagg\n" ,
655
655
gettext_noop ("function" ));
656
656
657
- if (!showSystem )
657
+ if (!showSystem && ! pattern )
658
658
appendPQExpBuffer (& buf ," AND n.nspname <> 'pg_catalog'\n" );
659
659
660
660
processSQLNamePattern (pset .db ,& buf ,pattern , true, false,
@@ -672,10 +672,10 @@ objectDescription(const char *pattern, bool showSystem)
672
672
" LEFT JOIN pg_catalog.pg_namespace n ON n.oid = o.oprnamespace\n" ,
673
673
gettext_noop ("operator" ));
674
674
675
- if (!showSystem )
675
+ if (!showSystem && ! pattern )
676
676
appendPQExpBuffer (& buf ," WHERE n.nspname <> 'pg_catalog'\n" );
677
677
678
- processSQLNamePattern (pset .db ,& buf ,pattern , !showSystem , false,
678
+ processSQLNamePattern (pset .db ,& buf ,pattern , !showSystem && ! pattern , false,
679
679
"n.nspname" ,"o.oprname" ,NULL ,
680
680
"pg_catalog.pg_operator_is_visible(o.oid)" );
681
681
@@ -690,10 +690,10 @@ objectDescription(const char *pattern, bool showSystem)
690
690
" LEFT JOIN pg_catalog.pg_namespace n ON n.oid = t.typnamespace\n" ,
691
691
gettext_noop ("data type" ));
692
692
693
- if (!showSystem )
693
+ if (!showSystem && ! pattern )
694
694
appendPQExpBuffer (& buf ," WHERE n.nspname <> 'pg_catalog'\n" );
695
695
696
- processSQLNamePattern (pset .db ,& buf ,pattern , !showSystem , false,
696
+ processSQLNamePattern (pset .db ,& buf ,pattern , !showSystem && ! pattern , false,
697
697
"n.nspname" ,"pg_catalog.format_type(t.oid, NULL)" ,
698
698
NULL ,
699
699
"pg_catalog.pg_type_is_visible(t.oid)" );
@@ -714,7 +714,7 @@ objectDescription(const char *pattern, bool showSystem)
714
714
gettext_noop ("view" ),
715
715
gettext_noop ("index" ),
716
716
gettext_noop ("sequence" ));
717
- if (!showSystem )
717
+ if (!showSystem && ! pattern )
718
718
appendPQExpBuffer (& buf ," AND n.nspname <> 'pg_catalog'\n" );
719
719
720
720
processSQLNamePattern (pset .db ,& buf ,pattern , true, false,
@@ -734,7 +734,7 @@ objectDescription(const char *pattern, bool showSystem)
734
734
" WHERE r.rulename != '_RETURN'\n" ,
735
735
gettext_noop ("rule" ));
736
736
737
- if (!showSystem )
737
+ if (!showSystem && ! pattern )
738
738
appendPQExpBuffer (& buf ," AND n.nspname <> 'pg_catalog'\n" );
739
739
740
740
/* XXX not sure what to do about visibility rule here? */
@@ -753,11 +753,11 @@ objectDescription(const char *pattern, bool showSystem)
753
753
" JOIN pg_catalog.pg_class c ON c.oid = t.tgrelid\n"
754
754
" LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace\n" ,
755
755
gettext_noop ("trigger" ));
756
- if (!showSystem )
756
+ if (!showSystem && ! pattern )
757
757
appendPQExpBuffer (& buf ," WHERE n.nspname <> 'pg_catalog'\n" );
758
758
759
759
/* 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,
761
761
"n.nspname" ,"t.tgname" ,NULL ,
762
762
"pg_catalog.pg_table_is_visible(c.oid)" );
763
763
@@ -808,10 +808,10 @@ describeTableDetails(const char *pattern, bool verbose, bool showSystem)
808
808
"FROM pg_catalog.pg_class c\n"
809
809
" LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace\n" );
810
810
811
- if (!showSystem )
811
+ if (!showSystem && ! pattern )
812
812
appendPQExpBuffer (& buf ," WHERE n.nspname <> 'pg_catalog'\n" );
813
813
814
- processSQLNamePattern (pset .db ,& buf ,pattern , !showSystem , false,
814
+ processSQLNamePattern (pset .db ,& buf ,pattern , !showSystem && ! pattern , false,
815
815
"n.nspname" ,"c.relname" ,NULL ,
816
816
"pg_catalog.pg_table_is_visible(c.oid)" );
817
817
@@ -2008,12 +2008,12 @@ listTables(const char *tabtypes, const char *pattern, bool verbose, bool showSys
2008
2008
appendPQExpBuffer (& buf ,"'i'," );
2009
2009
if (showSeq )
2010
2010
appendPQExpBuffer (& buf ,"'S'," );
2011
- if (showSystem )
2011
+ if (showSystem || pattern )
2012
2012
appendPQExpBuffer (& buf ,"'s'," );/* was RELKIND_SPECIAL in <= 8.1 */
2013
2013
appendPQExpBuffer (& buf ,"''" );/* dummy */
2014
2014
appendPQExpBuffer (& buf ,")\n" );
2015
2015
2016
- if (!showSystem )
2016
+ if (!showSystem && ! pattern )
2017
2017
/* Exclude system and pg_toast objects, but show temp tables */
2018
2018
appendPQExpBuffer (& buf ,
2019
2019
" AND n.nspname <> 'pg_catalog'\n"
@@ -2087,7 +2087,7 @@ listDomains(const char *pattern, bool showSystem)
2087
2087
gettext_noop ("Modifier" ),
2088
2088
gettext_noop ("Check" ));
2089
2089
2090
- if (!showSystem )
2090
+ if (!showSystem && ! pattern )
2091
2091
appendPQExpBuffer (& buf ," AND n.nspname <> 'pg_catalog'\n" );
2092
2092
2093
2093
processSQLNamePattern (pset .db ,& buf ,pattern , true, false,
@@ -2142,7 +2142,7 @@ listConversions(const char *pattern, bool showSystem)
2142
2142
gettext_noop ("yes" ),gettext_noop ("no" ),
2143
2143
gettext_noop ("Default?" ));
2144
2144
2145
- if (!showSystem )
2145
+ if (!showSystem && ! pattern )
2146
2146
appendPQExpBuffer (& buf ," AND n.nspname <> 'pg_catalog'\n" );
2147
2147
2148
2148
processSQLNamePattern (pset .db ,& buf ,pattern , true, false,