Re: Change JOIN tutorial to focus more on explicit joins
Jürgen Purtz <juergen@purtz.de>
From: Jürgen Purtz <juergen@purtz.de>
To: "David G. Johnston" <david.g.johnston@gmail.com>
Cc: 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-22T13:32:00Z
Lists: pgsql-hackers, pgsql-docs
Attachments
- 0003-query.patch (text/x-patch) patch 0003
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 > <mailto: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
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