]> granicus.if.org Git - postgresql/commit
Ensure dummy paths have correct required_outer if rel is parameterized.
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 14 Mar 2019 16:16:09 +0000 (12:16 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 14 Mar 2019 16:16:36 +0000 (12:16 -0400)
commit0a9d7e1f6d814799e6cd5046513702dd1fe38929
tree8d7b24ba757fcfe6926b98173dee832477c62062
parent2455ab48844c90419714e27eafd235a85de23232
Ensure dummy paths have correct required_outer if rel is parameterized.

The assertions added by commits 34ea1ab7f et al found another problem:
set_dummy_rel_pathlist and mark_dummy_rel were failing to label
the dummy paths they create with the correct outer_relids, in case
the relation is necessarily parameterized due to having lateral
references in its tlist.  It's likely that this has no user-visible
consequences in production builds, at the moment; but still an assertion
failure is a bad thing, so back-patch the fix.

Per bug #15694 from Roman Zharkov (via Alexander Lakhin)
and an independent report by Tushar Ahuja.

Discussion: https://postgr.es/m/15694-74f2ca97e7044f7f@postgresql.org
Discussion: https://postgr.es/m/7d72ab20-c725-3ce2-f99d-4e64dd8a0de6@enterprisedb.com
src/backend/optimizer/path/allpaths.c
src/backend/optimizer/path/joinrels.c
src/test/regress/expected/join.out
src/test/regress/sql/join.sql