Re: Change JOIN tutorial to focus more on explicit joins - Mailing list pgsql-docs

From Jürgen Purtz
Subject Re: Change JOIN tutorial to focus more on explicit joins
Date
Msg-id e941e29d-517c-cd58-cda5-3993008cbaa8@purtz.de
Whole thread Raw
In response to Re: Change JOIN tutorial to focus more on explicit joins  ("David G. Johnston" <david.g.johnston@gmail.com>)
Responses Re: Change JOIN tutorial to focus more on explicit joins  (Pavel Stehule <pavel.stehule@gmail.com>)
List pgsql-docs
On 22.10.20 01:40, David G. Johnston wrote:
On Fri, Sep 4, 2020 at 2:36 AM Jürgen Purtz <juergen@purtz.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.

(Hopefully) I have integrated all of David's suggestions as well as the following rules:

- Syntax formatting with the previously used 4 spaces plus newline for JOIN

- Table aliases only when necessary or explicitly discussed

The discussion about the explicit vs. implicit syntax is added to the "As join expressions serve a specific purpose ... " sentence and creates a paragraph of its own.

The patch is build on top of master.

-- J. Purtz


Attachment

pgsql-docs by date:

Previous
From: Jürgen Purtz
Date:
Subject: Re: exceptions
Next
From: Pavel Stehule
Date:
Subject: Re: Change JOIN tutorial to focus more on explicit joins