Missing docs on AT TIME ZONE precedence?

Shay Rojansky <roji@roji.org>

From: Shay Rojansky <roji@roji.org>
To: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2023-11-26T10:13:39Z
Lists: pgsql-hackers
Greeting hackers,

In the operator precedence table[1] table, AT TIME ZONE isn't explicitly
listed out; that means it's to be interpreted in the "any other operator
category".

However, it seems that the precedence of AT TIME ZONE is actually higher
than that of the addition operator:

-- Fails with "function pg_catalog.timezone(unknown, interval) does not
exist
SELECT now() + INTERVAL '14 days' AT TIME ZONE 'UTC';

-- Works:
SELECT (now() + INTERVAL '14 days') AT TIME ZONE 'UTC';

Note that missing parentheses for this were discussed in the context
of pg_catalog.pg_get_viewdef[2].

Is there a missing line in the operator precedence table in the docs?

Thanks,

Shay

[1]
https://www.postgresql.org/docs/current/sql-syntax-lexical.html#SQL-PRECEDENCE
[2]
https://www.postgresql.org/message-id/flat/f41566aa-a057-6628-4b7c-b48770ecb84a@deepbluecap.com

Commits

  1. Clean up usage of bison precedence for non-operator keywords.

  2. Doc: list AT TIME ZONE and COLLATE in operator precedence table.

  3. SQL/JSON: support the IS JSON predicate