From: | "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Euler Taveira <euler(at)timbira(dot)com(dot)br>, dirk(dot)lattermann(at)leanix(dot)net, pgsql-docs(at)lists(dot)postgresql(dot)org |
Subject: | Re: Synopsis of SELECT statement: UNION, INTERSECTION, EXCEPT |
Date: | 2018-03-18 21:28:26 |
Message-ID: | CAKFQuwayZRHgyQRrA=wYJnh6V-C3jZeumk=yfxjei=LxeBbGCA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-docs |
As a first step we could do something like:
basic_select_statement is:
> SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ]
> [ * | expression [ [ AS ] output_name ] [, ...] ]
> [ FROM from_item [, ...] ]
> [ WHERE condition ]
> [ GROUP BY grouping_element [, ...] ]
> [ HAVING condition [, ...] ]
> [ WINDOW window_name AS ( window_definition ) [, ...] ]
>
full_select_statement is basic_select_statement with the following
possible additional clauses tacked onto the end:
[ ORDER BY expression [ ASC | DESC | USING operator ] [ NULLS { FIRST |
> LAST } ] [, ...] ]
> [ LIMIT { count | ALL } ]
> [ OFFSET start [ ROW | ROWS ] ]
> [ FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } ONLY ]
> [ FOR { UPDATE | NO KEY UPDATE | SHARE | KEY SHARE } [ OF table_name
> [, ...] ] [ NOWAIT | SKIP LOCKED ] [...] ]
>
> and that's still not right because ORDER BY et al can't be attached to a
> select_stmt that's the argument of a set operation, so really we'd need
> a couple of levels of nonterminals before we get down to the basic
> "SELECT expression FROM ..." part. Nor has the use of parentheses been
> mentioned yet.
>
Then we can define the set clauses in terms of basic_select_stmt and
parentheses-surrounded full_select_stmt. The result of the set clause is
itself a type of basic_select_statement which can be made full by adding
one or more of the additional clauses, including ORDER BY.
David J.
From | Date | Subject | |
---|---|---|---|
Next Message | Greg k | 2018-03-19 05:51:32 | Re: Postgres 10 and the pg_ctl "--wait" option |
Previous Message | PG Doc comments form | 2018-03-18 17:11:40 | float and float(p) missing from table 8.1 |