[COMMITTERS] pgsql: Fix dumping of outer joins with empty qual lists. - Mailing list pgsql-committers

From Tom Lane
Subject [COMMITTERS] pgsql: Fix dumping of outer joins with empty qual lists.
Date
Msg-id E1dYDOj-0000I4-7g@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Fix dumping of outer joins with empty qual lists.

Normally, a JoinExpr would have empty "quals" only if it came from CROSS
JOIN syntax.  However, it's possible to get to this state by specifying
NATURAL JOIN between two tables with no common column names, and there
might be other ways too.  The code previously printed no ON clause if
"quals" was empty; that's right for CROSS JOIN but syntactically invalid
if it's some type of outer join.  Fix by printing ON TRUE in that case.

This got broken by commit 2ffa740be, which stopped using NATURAL JOIN
syntax in ruleutils output due to its brittleness in the face of
column renamings.  Back-patch to 9.3 where that commit appeared.

Per report from Tushar Ahuja.

Discussion: https://postgr.es/m/98b283cd-6dda-5d3f-f8ac-87db8c76a3da@enterprisedb.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/eb145fdfea91ee5dc6d7aad0309527f810f7c90a

Modified Files
--------------
src/backend/utils/adt/ruleutils.c         |  5 +++++
src/test/regress/expected/create_view.out | 29 +++++++++++++++++++++++++++++
src/test/regress/sql/create_view.sql      | 10 ++++++++++
3 files changed, 44 insertions(+)


pgsql-committers by date:

Previous
From: Tom Lane
Date:
Subject: [COMMITTERS] pgsql: Add static assertions about pg_control fitting into one disksec
Next
From: Tom Lane
Date:
Subject: [COMMITTERS] pgsql: Doc: clarify description of degenerate NATURAL joins.