]> granicus.if.org Git - postgresql/commit
Fix incorrect printing of queries with duplicated join names.
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 12 Jun 2019 23:42:38 +0000 (19:42 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 12 Jun 2019 23:43:08 +0000 (19:43 -0400)
commit3d99a81397abb8bb7b95aee794d6644e174e174f
tree269d62f47e90bf609c3b22590b1b155f78e79bfc
parentddc053dc503a773267a4d035418e0c81ce3b4851
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
src/backend/utils/adt/ruleutils.c
src/test/regress/expected/create_view.out
src/test/regress/sql/create_view.sql