Re: SELECT documentation
От | Bruce Momjian |
---|---|
Тема | Re: SELECT documentation |
Дата | |
Msg-id | YvsGnuR1RCXO0Qqk@momjian.us обсуждение исходный текст |
Ответ на | Re: SELECT documentation (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: SELECT documentation
(Bruce Momjian <bruce@momjian.us>)
|
Список | pgsql-hackers |
On Sat, Aug 13, 2022 at 10:21:26PM -0400, Tom Lane wrote: > Bruce Momjian <bruce@momjian.us> writes: > > Hi, I agree we should show the more modern JOIN sytax. However, this is > > just an example, so one example should be sufficient. I went with the > > first one in the attached patch. > > You should not remove the CROSS JOIN mention at l. 604, first because > the references to it just below would become odd, and second because > then it's not explained anywhere on the page. Perhaps you could > put back a definition of CROSS JOIN just below the entry for NATURAL, > but you'll still have to do something with the references at l. 614, > 628, 632. Good point. I restrutured the docs to move CROSS JOIN to a separate section like NATURAL and adjusted the text, patch attached. > Also, doesn't "[ AS join_using_alias ]" apply to NATURAL and CROSS > joins? You've left that out of the syntax summary. Uh, I only see it for USING in gram.y: /* JOIN qualification clauses * Possibilities are: * USING ( column list ) [ AS alias ] * allows only unqualified column names, * which must match between tables. * ON expr allows more general qualifications. * * We return USING as a two-element List (the first item being a sub-List * of the common column names, and the second either an Alias item or NULL). * An ON-expr will not be a List, so it can be told apart that way. */ join_qual: USING '(' name_list ')' opt_alias_clause_for_join_using { $$ = (Node *) list_make2($3, $5); } | ON a_expr { $$ = $2; } ; ... /* * The alias clause after JOIN ... USING only accepts the AS ColId spelling, * per SQL standard. (The grammar could parse the other variants, but they * don't seem to be useful, and it might lead to parser problems in the * future.) */ opt_alias_clause_for_join_using: AS ColId { $$ = makeNode(Alias); $$->aliasname = $2; /* the column name list will be inserted later */ } | /*EMPTY*/ { $$ = NULL; } ; which is only used in: | table_ref join_type JOIN table_ref join_qual | table_ref JOIN table_ref join_qual I have updated my private build: https://momjian.us/tmp/pgsql/sql-select.html -- Bruce Momjian <bruce@momjian.us> https://momjian.us EDB https://enterprisedb.com Indecision is a decision. Inaction is an action. Mark Batterson
Вложения
В списке pgsql-hackers по дате отправления: