pgsql: Fix under-parenthesized display of AT TIME ZONE constructs.

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Fix under-parenthesized display of AT TIME ZONE constructs.
Date: 2022-12-01 16:38:26
Message-ID: E1p0mZt-001aWb-PH@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Fix under-parenthesized display of AT TIME ZONE constructs.

In commit 40c24bfef, I forgot to use get_rule_expr_paren() for the
arguments of AT TIME ZONE, resulting in possibly not printing parens
for expressions that need it. But get_rule_expr_paren() wouldn't have
gotten it right anyway, because isSimpleNode() hadn't been taught that
COERCE_SQL_SYNTAX parent nodes don't guarantee sufficient parentheses.
Improve all that. Also use this methodology for F_IS_NORMALIZED, so
that we don't print useless parens for that.

In passing, remove a comment that was obsoleted later.

Per report from Duncan Sands. Back-patch to v14 where this code
came in. (Before that, we didn't try to print AT TIME ZONE that way,
so there was no bug just ugliness.)

Discussion: https://postgr.es/m/f41566aa-a057-6628-4b7c-b48770ecb84a@deepbluecap.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/1dd6700f44d2e14616d464a5f490552b7036ad3f

Modified Files
--------------
src/backend/utils/adt/ruleutils.c | 28 ++++++++++++++--------------
src/test/regress/expected/create_view.out | 8 +++++---
src/test/regress/sql/create_view.sql | 1 +
3 files changed, 20 insertions(+), 17 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2022-12-01 17:10:31 pgsql: Doc: word-smith the discussion of secure schema usage patterns.
Previous Message Bruce Momjian 2022-12-01 15:45:34 pgsql: revert: add transaction processing chapter with internals info