Re: Change JOIN tutorial to focus more on explicit joins

From: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
To: Jürgen Purtz <juergen(at)purtz(dot)de>
Cc: Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com>, Thomas Munro <thomas(dot)munro(at)gmail(dot)com>, Thomas Kellerer <shammat(at)gmx(dot)net>, Pg Docs <pgsql-docs(at)lists(dot)postgresql(dot)org>
Subject: Re: Change JOIN tutorial to focus more on explicit joins
Date: 2020-10-21 23:40:18
Message-ID: CAKFQuwZY5EqtMH_9SzTG=wSxq14m3FuwqPNDeeyK=Z6JO5-vUw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-docs pgsql-hackers

On Fri, Sep 4, 2020 at 2:36 AM Jürgen Purtz <juergen(at)purtz(dot)de> wrote:

> On 04.09.20 08:52, Peter Eisentraut wrote:
> >
> > For the remaining patch I have a couple of concerns:
>

This patch should not be changing the formatting choices for these queries,
just the addition of a JOIN clause and modification of the WHERE clause.
Specifically, SELECT is left-aligned while all subsequent clauses indent
under it. Forced alignment by adding extra spaces isn't done here either.
I have not altered those in the attached.

Did some word-smithing on the first paragraph. The part about the
cross-join was hurt by "in some way" and "may be" is not needed.

Pointing out that values from both tables doesn't seem like an improvement
when the second item covers that and it is more specific in noting that the
city name that is joined on appears twice - once from each table.

ON expression is more precise and the reader should be ok with the term.

Removal of the exercise is good. Not the time to discuss cross join
anyway. Given that "ON true" works the cross join form isn't even required.

In the FROM clause form I would not add table prefixes to the column
names. They are not part of the form changing. If discussion about table
prefixing is desired it should be done explicitly and by itself. They are
used later on, I didn't check to see whether that was covered or might be
confusing.

I suggested a wording for why to use join syntax that doesn't involve
legacy and points out its merit compared to sticking a join expression into
the where clause.

The original patch missed having the syntax for the first left outer join
conform to the multi-line query writing standard you introduced. I did not
change.

The "AND" ON clause should just go with (not changed):

ON (w1.temp_lo < w2.temp_lo
AND w1.temp_hi > w2.temp_high);

Attaching my suggestions made on top of the attached original
0002-query.patch

David J.

Attachment Content-Type Size
0002-00-query.patch application/octet-stream 6.1 KB
0002-01-DGJ-query.patch application/octet-stream 4.0 KB

In response to

Responses

Browse pgsql-docs by date

  From Date Subject
Next Message Jürgen Purtz 2020-10-22 07:11:47 Re: exceptions
Previous Message David G. Johnston 2020-10-21 20:33:54 Re: Additional Chapter for Tutorial

Browse pgsql-hackers by date

  From Date Subject
Next Message k.jamison@fujitsu.com 2020-10-22 00:41:48 RE: [Patch] Optimize dropping of relation buffers using dlist
Previous Message John Naylor 2020-10-21 23:35:12 Re: speed up unicode decomposition and recomposition