pgsql: Fix grammar's AND/OR flattening to work with operator_precedence - Mailing list pgsql-committers

From Tom Lane
Subject pgsql: Fix grammar's AND/OR flattening to work with operator_precedence
Date
Msg-id E1b8yGb-0004Xm-Ve@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Fix grammar's AND/OR flattening to work with operator_precedence_warning.

It'd be good for "(x AND y) AND z" to produce a three-child AND node
whether or not operator_precedence_warning is on, but that failed to
happen when it's on because makeAndExpr() didn't look through the added
AEXPR_PAREN node.  This has no effect on generated plans because prepqual.c
would flatten the AND nest anyway; but it does affect the number of parens
printed in ruleutils.c, for example.  I'd already fixed some similar
hazards in parse_expr.c in commit abb164655, but didn't think to search
gram.y for problems of this ilk.  Per gripe from Jean-Pierre Pelletier.

Report: <fa0535ec6d6428cfec40c7e8a6d11156@mail.gmail.com>

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/05104f693646c0a4ae446e79cb89057497da17e4

Modified Files
--------------
src/backend/parser/gram.y | 20 ++++++++++++++++----
1 file changed, 16 insertions(+), 4 deletions(-)


pgsql-committers by date:

Previous
From: Tom Lane
Date:
Subject: pgsql: Inline the easy cases in MakeExpandedObjectReadOnly().
Next
From: Tom Lane
Date:
Subject: pgsql: Fix grammar's AND/OR flattening to work with operator_precedence