Re: Missing docs on AT TIME ZONE precedence?
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Andrew Dunstan <andrew@dunslane.net>
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:27:26Z
Lists: pgsql-hackers
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. regards, tom lane
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