pgman wrote:
> Tom Lane wrote:
> > Bruce Momjian <[EMAIL PROTECTED]> writes:
> > > How about if we add a UNION that does:
> > > UNION
> > > SELECT 'non-local temp schemas skipped', NULL
> >
> > I think showing that would only be appropriate if we actually *did* skip
> > some. Finding that out would complicate the query unduly IMHO.
> >
> > > I see a few goals here:
> > > Prevent \dn from showing lots of lines for large installs
> > > Show the local temp schema so people can query it
> >
> > If those are agreed to be the goals then we end up with your original
> > solution (or a working implementation of same anyway).
> >
> > I'd like to see some input from other people about what they want...
>
> I have added this to the TODO list:
>
> * Have psql \dn show only visible schemas using current_schemas()
>
> I know there was talk of showing all schemas only in admin mode, but I
> don't think we want to implement different behavior until we have a more
> practical reason to have such a mode distiction. Of course, \dn will
> have to be documented that is supresses non-visible schemas, and admins
> can always do a select from pg_namespace.
This patch uses current_schemas('true') to display only the schemas in
the current search path and implicit schemas.
It uses an array with =ANY(), which we already do in psql's describe.c
for groups. I also had to use :: for casting because that's the only
way to cast function parameters, I think.
--
Bruce Momjian | http://candle.pha.pa.us
[EMAIL PROTECTED] | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073
Index: doc/src/sgml/ref/psql-ref.sgml
===================================================================
RCS file: /cvsroot/pgsql-server/doc/src/sgml/ref/psql-ref.sgml,v
retrieving revision 1.101
diff -c -c -r1.101 psql-ref.sgml
*** doc/src/sgml/ref/psql-ref.sgml 1 Dec 2003 22:21:54 -0000 1.101
--- doc/src/sgml/ref/psql-ref.sgml 21 Dec 2003 04:04:35 -0000
***************
*** 954,960 ****
<listitem>
<para>
! Lists all available schemas (namespaces). If <replaceable
class="parameter">pattern</replaceable> (a regular expression)
is specified, only schemas whose names match the pattern are listed.
</para>
--- 954,960 ----
<listitem>
<para>
! Lists all visible schemas (namespaces). If <replaceable
class="parameter">pattern</replaceable> (a regular expression)
is specified, only schemas whose names match the pattern are listed.
</para>
Index: src/bin/psql/describe.c
===================================================================
RCS file: /cvsroot/pgsql-server/src/bin/psql/describe.c,v
retrieving revision 1.90
diff -c -c -r1.90 describe.c
*** src/bin/psql/describe.c 1 Dec 2003 22:21:54 -0000 1.90
--- src/bin/psql/describe.c 21 Dec 2003 04:04:37 -0000
***************
*** 1629,1639 ****
"SELECT n.nspname AS \"%s\",\n"
" u.usename AS \"%s\"\n"
"FROM pg_catalog.pg_namespace n LEFT JOIN pg_catalog.pg_user u\n"
! " ON n.nspowner=u.usesysid\n",
_("Name"),
_("Owner"));
! processNamePattern(&buf, pattern, false, false,
NULL, "n.nspname", NULL,
NULL);
--- 1629,1641 ----
"SELECT n.nspname AS \"%s\",\n"
" u.usename AS \"%s\"\n"
"FROM pg_catalog.pg_namespace n LEFT JOIN pg_catalog.pg_user u\n"
! " ON n.nspowner=u.usesysid,\n"
! " (SELECT current_schemas('t'::boolean)) AS
curr_schemas(name)\n"
! "WHERE n.nspname = ANY(curr_schemas.name)\n",
_("Name"),
_("Owner"));
! processNamePattern(&buf, pattern, true, false,
NULL, "n.nspname", NULL,
NULL);
---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?
http://archives.postgresql.org