Re: FWD: Re: Updated backslash consistency patch

From: Bruce Momjian <bruce(at)momjian(dot)us>
To: Dimitri Fontaine <dfontaine(at)hi-media(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org, Robert Haas <robertmhaas(at)gmail(dot)com>, Gregory Stark <stark(at)enterprisedb(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Brendan Jurd <direvus(at)gmail(dot)com>, Greg Sabino Mullane <greg(at)turnstep(dot)com>
Subject: Re: FWD: Re: Updated backslash consistency patch
Date: 2009-01-20 16:18:20
Message-ID: 200901201618.n0KGIKG12375@momjian.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Dimitri Fontaine wrote:
-- Start of PGP signed section.
> Le mardi 20 janvier 2009, Bruce Momjian a ?crit?:
> > Robert Haas wrote:
> > > > Here is what I hope is a consensus patch. It adds 'A' to show all
> > > > objects, including system ones. It turns out that this is how 'S'
> > > > works now in CVS, but 'S' is unclear because it suggests just system
> > > > objects; 'A' for show 'all' objects seems clearer.
> > >
> > > I think it's probably fine for "S" to mean "include system objects"
> > > rather than "show only system objects". Everyone should be relatively
> > > used to "S" by now; I think it's less confusing to keep the same
> > > letter even if the behavior has been adjusted somewhat. Though others
> > > may disagree?
>
> I still think that given a pattern, psql commands should simply mimic whatever
> is the server way of using search_path. I'd really like \df foo and \d foo to
> follow the same rules as my production queries wrt to how to find objects
> when I'm too lazy to schema qualify their name.
>
> Now, it's been advocated for the sake of simplicity to have with-pattern and
> without-pattern options behave roughly the same way. I can't find it
> difficult to explain the two behaviours here, all the more when looking at
> current \d and \dt differences.

The \d and \dt differences are fixed/gone in current CVS.

> What I'd like to propose is for \df without pattern to behave exactly like \df
> with pattern, *including* wrt to ordering the output. Functions listed in
> search_path order, pg_catalog implicitly part of it, but as its *last*
> element. Or whatever server object lookup code sayth.

I personally liked the idea of searching pg_catalog for a pattern, but
what turned me against it was this behavior:

\d
long list of user tables

and then the user wants to see just the tables that begin with 'p':

\d p*
list of system and user tables that start with 'p'

All of a sudden they see many system tables. It is hard to call that
behavior logical or expected. One unusual approach would be to search
pg_catalog only when a _non-wildcard_ pattern was supplied, so:

\d p*

would show user tables beginning with 'p', but:

\d pg_class

would find the 'pg_class' table that is the search path, typically from
pg_catalog. It might be a little awkward to document, but might be the
most acceptable solution. The very good argument _against_ this
solution is that:

\d pg_class*

would show no rows while:

\d pg_class

would show the pg_catalog entry. This is also odd and unexpected, which
led me to just having people use 'S' when they want pg_catalog involved.

--
Bruce Momjian <bruce(at)momjian(dot)us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ If your life is a hard drive, Christ can be your backup. +

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Andrew Chernow 2009-01-20 16:26:08 Re: libpq WSACleanup is not needed
Previous Message Jeroen Vermeulen 2009-01-20 16:10:13 Re: libpq WSACleanup is not needed