Fix incorrect printing of queries with duplicated join names.

Tom Lane <tgl@sss.pgh.pa.us>

Commit: bf612fd3a4d8ff4953f400deccc3c8d1e411e935
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2019-06-12T23:42:39Z
Releases: 9.5.18
Fix incorrect printing of queries with duplicated join names.

Given a query in which multiple JOIN nodes used the same alias
(which'd necessarily be in different sub-SELECTs), ruleutils.c
would assign the JOIN nodes distinct aliases for clarity ...
but then it forgot to print the modified aliases when dumping
the JOIN nodes themselves.  This results in a dump/reload hazard
for views, because the emitted query is flat-out incorrect:
Vars will be printed with table names that have no referent.

This has been wrong for a long time, so back-patch to all supported
branches.

Philip Dubé

Discussion: https://postgr.es/m/CY4PR2101MB080246F2955FF58A6ED1FEAC98140@CY4PR2101MB0802.namprd21.prod.outlook.com

Files

Discussion