Re: Missing docs on AT TIME ZONE precedence?
Andrew Dunstan <andrew@dunslane.net>
From: Andrew Dunstan <andrew@dunslane.net>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Alvaro Herrera <alvherre@alvh.no-ip.org>, Bruce Momjian
<bruce@momjian.us>, Shay Rojansky <roji@roji.org>,
pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2023-11-28T15:48:00Z
Lists: pgsql-hackers
On 2023-11-28 Tu 10:27, Tom Lane wrote: > Andrew Dunstan <andrew@dunslane.net> writes: >> Looks good. Perhaps the comments above the UNBOUNDED precedence setting >> (esp. the first paragraph) need strengthening, with a stern injunction >> to avoid different precedence for non-reserved keywords if at all possible. > OK. How about rewriting that first para like this? > > * Sometimes it is necessary to assign precedence to keywords that are not > * really part of the operator hierarchy, in order to resolve grammar > * ambiguities. It's best to avoid doing so whenever possible, because such > * assignments have global effect and may hide ambiguities besides the one > * you intended to solve. (Attaching a precedence to a single rule with > * %prec is far safer and should be preferred.) If you must give precedence > * to a new keyword, try very hard to give it the same precedence as IDENT. > * If the keyword has IDENT's precedence then it clearly acts the same as > * non-keywords and other similar keywords, thus reducing the risk of > * unexpected precedence effects. > * > * We used to need to assign IDENT an explicit precedence just less than Op, > * to support target_el without AS. While that's not really necessary since > * we removed postfix operators, we continue to do so because it provides a > * reference point for a precedence level that we can assign to other > * keywords that lack a natural precedence level. > > LGTM. Thanks. cheers andrew -- Andrew Dunstan EDB: https://www.enterprisedb.com
Commits
-
Clean up usage of bison precedence for non-operator keywords.
- a916b47e2329 17.0 landed
-
Doc: list AT TIME ZONE and COLLATE in operator precedence table.
- 3558f120f869 17.0 landed
- c7bd476049ca 15.6 landed
- 9033e7019821 16.2 landed
- 69a9134326f2 13.14 landed
- 648fc6a1c459 14.11 landed
- 450ad6585ac5 12.18 landed
-
SQL/JSON: support the IS JSON predicate
- 6ee30209a6f1 16.0 cited