Re: Change JOIN tutorial to focus more on explicit joins
Pavel Stehule <pavel.stehule@gmail.com>
From: Pavel Stehule <pavel.stehule@gmail.com>
To: Jürgen Purtz <juergen@purtz.de>
Cc: "David G. Johnston" <david.g.johnston@gmail.com>, Peter Eisentraut <peter.eisentraut@2ndquadrant.com>,
Thomas Munro <thomas.munro@gmail.com>, Thomas Kellerer <shammat@gmx.net>, Pg Docs <pgsql-docs@lists.postgresql.org>
Date: 2020-10-22T15:14:19Z
Lists: pgsql-hackers, pgsql-docs
čt 22. 10. 2020 v 15:32 odesílatel Jürgen Purtz <juergen@purtz.de> napsal: > 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. > Why do you use parenthesis for ON clause? It is useless. SQL is not C or JAVA. Regards Pavel -- > J. Purtz > > >
Commits
-
doc: Prefer explicit JOIN syntax over old implicit syntax in tutorial
- fb310f17812e 14.0 landed
-
doc: Change table alias names to lower case in tutorial chapter
- 49d716511789 14.0 landed
-
doc: Fix whitespace issue in PDF
- 79fd620b20b7 14.0 landed
-
doc: Use tags consistently in the tutorial chapter
- 6eee73e4e5b6 14.0 landed