88 *
99 * Copyright (c) 2000-2009, PostgreSQL Global Development Group
1010 *
11- * $PostgreSQL: pgsql/src/bin/psql/describe.c,v 1.204 2009/04/0215:15:32 momjian Exp $
11+ * $PostgreSQL: pgsql/src/bin/psql/describe.c,v 1.205 2009/04/0217:38:26 momjian Exp $
1212 */
1313#include "postgres_fe.h"
1414
@@ -95,7 +95,8 @@ describeAggregates(const char *pattern, bool verbose, bool showSystem)
9595gettext_noop ("Description" ));
9696
9797if (!showSystem && !pattern )
98- appendPQExpBuffer (& buf ," AND n.nspname <> 'pg_catalog'\n" );
98+ appendPQExpBuffer (& buf ," AND n.nspname <> 'pg_catalog'\n"
99+ " AND n.nspname <> 'information_schema'\n" );
99100
100101processSQLNamePattern (pset .db ,& buf ,pattern , true, false,
101102"n.nspname" ,"p.proname" ,NULL ,
@@ -282,7 +283,8 @@ describeFunctions(const char *pattern, bool verbose, bool showSystem)
282283" AND NOT p.proisagg\n" );
283284
284285if (!showSystem && !pattern )
285- appendPQExpBuffer (& buf ," AND n.nspname <> 'pg_catalog'\n" );
286+ appendPQExpBuffer (& buf ," AND n.nspname <> 'pg_catalog'\n"
287+ " AND n.nspname <> 'information_schema'\n" );
286288
287289processSQLNamePattern (pset .db ,& buf ,pattern , true, false,
288290"n.nspname" ,"p.proname" ,NULL ,
@@ -373,7 +375,8 @@ describeTypes(const char *pattern, bool verbose, bool showSystem)
373375appendPQExpBuffer (& buf ," AND t.typname !~ '^_'\n" );
374376
375377if (!showSystem && !pattern )
376- appendPQExpBuffer (& buf ," AND n.nspname <> 'pg_catalog'\n" );
378+ appendPQExpBuffer (& buf ," AND n.nspname <> 'pg_catalog'\n"
379+ " AND n.nspname <> 'information_schema'\n" );
377380
378381/* Match name pattern against either internal or external name */
379382processSQLNamePattern (pset .db ,& buf ,pattern , true, false,
@@ -428,7 +431,8 @@ describeOperators(const char *pattern, bool showSystem)
428431gettext_noop ("Description" ));
429432
430433if (!showSystem && !pattern )
431- appendPQExpBuffer (& buf ," WHERE n.nspname <> 'pg_catalog'\n" );
434+ appendPQExpBuffer (& buf ,"WHERE n.nspname <> 'pg_catalog'\n"
435+ " AND n.nspname <> 'information_schema'\n" );
432436
433437processSQLNamePattern (pset .db ,& buf ,pattern , !showSystem && !pattern , true,
434438"n.nspname" ,"o.oprname" ,NULL ,
@@ -632,7 +636,8 @@ objectDescription(const char *pattern, bool showSystem)
632636gettext_noop ("aggregate" ));
633637
634638if (!showSystem && !pattern )
635- appendPQExpBuffer (& buf ," AND n.nspname <> 'pg_catalog'\n" );
639+ appendPQExpBuffer (& buf ," AND n.nspname <> 'pg_catalog'\n"
640+ " AND n.nspname <> 'information_schema'\n" );
636641
637642processSQLNamePattern (pset .db ,& buf ,pattern , true, false,
638643"n.nspname" ,"p.proname" ,NULL ,
@@ -655,7 +660,8 @@ objectDescription(const char *pattern, bool showSystem)
655660gettext_noop ("function" ));
656661
657662if (!showSystem && !pattern )
658- appendPQExpBuffer (& buf ," AND n.nspname <> 'pg_catalog'\n" );
663+ appendPQExpBuffer (& buf ," AND n.nspname <> 'pg_catalog'\n"
664+ " AND n.nspname <> 'information_schema'\n" );
659665
660666processSQLNamePattern (pset .db ,& buf ,pattern , true, false,
661667"n.nspname" ,"p.proname" ,NULL ,
@@ -673,7 +679,8 @@ objectDescription(const char *pattern, bool showSystem)
673679gettext_noop ("operator" ));
674680
675681if (!showSystem && !pattern )
676- appendPQExpBuffer (& buf ," WHERE n.nspname <> 'pg_catalog'\n" );
682+ appendPQExpBuffer (& buf ,"WHERE n.nspname <> 'pg_catalog'\n"
683+ " AND n.nspname <> 'information_schema'\n" );
677684
678685processSQLNamePattern (pset .db ,& buf ,pattern , !showSystem && !pattern , false,
679686"n.nspname" ,"o.oprname" ,NULL ,
@@ -691,7 +698,8 @@ objectDescription(const char *pattern, bool showSystem)
691698gettext_noop ("data type" ));
692699
693700if (!showSystem && !pattern )
694- appendPQExpBuffer (& buf ," WHERE n.nspname <> 'pg_catalog'\n" );
701+ appendPQExpBuffer (& buf ,"WHERE n.nspname <> 'pg_catalog'\n"
702+ " AND n.nspname <> 'information_schema'\n" );
695703
696704processSQLNamePattern (pset .db ,& buf ,pattern , !showSystem && !pattern , false,
697705"n.nspname" ,"pg_catalog.format_type(t.oid, NULL)" ,
@@ -714,8 +722,10 @@ objectDescription(const char *pattern, bool showSystem)
714722gettext_noop ("view" ),
715723gettext_noop ("index" ),
716724gettext_noop ("sequence" ));
725+
717726if (!showSystem && !pattern )
718- appendPQExpBuffer (& buf ," AND n.nspname <> 'pg_catalog'\n" );
727+ appendPQExpBuffer (& buf ," AND n.nspname <> 'pg_catalog'\n"
728+ " AND n.nspname <> 'information_schema'\n" );
719729
720730processSQLNamePattern (pset .db ,& buf ,pattern , true, false,
721731"n.nspname" ,"c.relname" ,NULL ,
@@ -735,7 +745,8 @@ objectDescription(const char *pattern, bool showSystem)
735745gettext_noop ("rule" ));
736746
737747if (!showSystem && !pattern )
738- appendPQExpBuffer (& buf ," AND n.nspname <> 'pg_catalog'\n" );
748+ appendPQExpBuffer (& buf ," AND n.nspname <> 'pg_catalog'\n"
749+ " AND n.nspname <> 'information_schema'\n" );
739750
740751/* XXX not sure what to do about visibility rule here? */
741752processSQLNamePattern (pset .db ,& buf ,pattern , true, false,
@@ -753,8 +764,10 @@ objectDescription(const char *pattern, bool showSystem)
753764" JOIN pg_catalog.pg_class c ON c.oid = t.tgrelid\n"
754765" LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace\n" ,
755766gettext_noop ("trigger" ));
767+
756768if (!showSystem && !pattern )
757- appendPQExpBuffer (& buf ," WHERE n.nspname <> 'pg_catalog'\n" );
769+ appendPQExpBuffer (& buf ,"WHERE n.nspname <> 'pg_catalog'\n"
770+ " AND n.nspname <> 'information_schema'\n" );
758771
759772/* XXX not sure what to do about visibility rule here? */
760773processSQLNamePattern (pset .db ,& buf ,pattern , !showSystem && !pattern , false,
@@ -809,7 +822,8 @@ describeTableDetails(const char *pattern, bool verbose, bool showSystem)
809822" LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace\n" );
810823
811824if (!showSystem && !pattern )
812- appendPQExpBuffer (& buf ," WHERE n.nspname <> 'pg_catalog'\n" );
825+ appendPQExpBuffer (& buf ,"WHERE n.nspname <> 'pg_catalog'\n"
826+ " AND n.nspname <> 'information_schema'\n" );
813827
814828processSQLNamePattern (pset .db ,& buf ,pattern , !showSystem && !pattern , false,
815829"n.nspname" ,"c.relname" ,NULL ,
@@ -2013,11 +2027,10 @@ listTables(const char *tabtypes, const char *pattern, bool verbose, bool showSys
20132027appendPQExpBuffer (& buf ,"''" );/* dummy */
20142028appendPQExpBuffer (& buf ,")\n" );
20152029
2016- if (!showSystem && !pattern )
2017- /* Exclude system and pg_toast objects, but show temp tables */
2018- appendPQExpBuffer (& buf ,
2019- " AND n.nspname <> 'pg_catalog'\n"
2020- " AND n.nspname !~ '^pg_toast'\n" );
2030+ if (!showSystem && !pattern )
2031+ appendPQExpBuffer (& buf ," AND n.nspname <> 'pg_catalog'\n"
2032+ " AND n.nspname <> 'information_schema'\n"
2033+ " AND n.nspname !~ '^pg_toast'\n" );
20212034
20222035processSQLNamePattern (pset .db ,& buf ,pattern , true, false,
20232036"n.nspname" ,"c.relname" ,NULL ,
@@ -2088,7 +2101,8 @@ listDomains(const char *pattern, bool showSystem)
20882101gettext_noop ("Check" ));
20892102
20902103if (!showSystem && !pattern )
2091- appendPQExpBuffer (& buf ," AND n.nspname <> 'pg_catalog'\n" );
2104+ appendPQExpBuffer (& buf ," AND n.nspname <> 'pg_catalog'\n"
2105+ " AND n.nspname <> 'information_schema'\n" );
20922106
20932107processSQLNamePattern (pset .db ,& buf ,pattern , true, false,
20942108"n.nspname" ,"t.typname" ,NULL ,
@@ -2143,7 +2157,8 @@ listConversions(const char *pattern, bool showSystem)
21432157gettext_noop ("Default?" ));
21442158
21452159if (!showSystem && !pattern )
2146- appendPQExpBuffer (& buf ," AND n.nspname <> 'pg_catalog'\n" );
2160+ appendPQExpBuffer (& buf ," AND n.nspname <> 'pg_catalog'\n"
2161+ " AND n.nspname <> 'information_schema'\n" );
21472162
21482163processSQLNamePattern (pset .db ,& buf ,pattern , true, false,
21492164"n.nspname" ,"c.conname" ,NULL ,