Re: LEFT JOIN used in psql describe.c

From: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
To: "Marc G(dot) Fournier" <scrappy(at)postgresql(dot)org>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Greg Sabino Mullane <greg(at)turnstep(dot)com>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: LEFT JOIN used in psql describe.c
Date: 2005-05-11 01:48:32
Message-ID: 200505110148.j4B1mWw15548@candle.pha.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Marc G. Fournier wrote:
> On Tue, 10 May 2005, Bruce Momjian wrote:
>
> > Bruce Momjian wrote:
> >> Tom Lane wrote:
> >>> "Greg Sabino Mullane" <greg(at)turnstep(dot)com> writes:
> >>>>> Does anyone know why so many LEFT JOINs are used in psql/describe.c to
> >>>>> join to the pg_namespace table, like here:
> >>>
> >>>> Yes, pg_relnamespace is definitely not null. I've actually already removed
> >>>> the left joins from my \df patch, since I had to rewrite some of the
> >>>> queries anyway. If this is wrong, please let me know of course!
> >>>
> >>> I think the idea was to be certain to show every pg_proc entry (or other
> >>> catalog for other \d commands), no matter how badly broken the catalog
> >>> interrelationships might be. If there's not an unarguable reason
> >>> for eliminating the left joins I'd be inclined to keep it like that.
> >>> What does an inner join buy here, other than brittleness?
> >>>
> >>> (Yeah, I have the perspective of a developer who deals with broken
> >>> situations every day. So?)
> >>
> >> If we have problems with the system catalogs, I don't see how this join
> >> has a high probability of catching the problem. If there was some known
> >> problem of the join not always working, I could see the use of LEFT
> >> JOIN, but there isn't, so it just seems confusing, and these queries are
> >> used by others as models of how to do system joins, so could confuse our
> >> users as well.
> >>
> >> I think the LEFT JOIN should be removed unless there is a known problem,
> >> and if one shows up, we can re-add them later.
> >
> > I still think that the LEFT JOINs used in psql system queries is
> > confusing and perhaps adds performance overhead while adding little
> > reliability, but no one else seems to think so so I will drop the idea.
>
> I'm a bit confused here, but I believe Tom (at least how I read it) was
> agreeing with you about pulling the LEFT JOIN out ... "I think the LEFT
> JOIN should be removed unless there is a known problem, and if one shows
> up, we can re-add them later." ... or am I mis-quoting?

I am actually quoting myself in the posting, so the words are mine, not
Tom's.

The basic issue is code simplicity vs. robustness, and I am leaning to
the former because there is no known robustness problem. It is actually
opposite of our opinions on checking for unreferenced files, where I
want robustness (because it is a known problem) and Tom wants simplicity
(though he is flexible on this), so it seems the two of us switch sides
occasionally. :-)

--
Bruce Momjian | http://candle.pha.pa.us
pgman(at)candle(dot)pha(dot)pa(dot)us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 2005-05-11 01:49:13 Re: Oracle Style packages on postgres
Previous Message Joshua D. Drake 2005-05-11 01:16:04 Re: lastval()