]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Fix miscomputation of direct_lateral_relids for join relations.
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 30 Nov 2020 17:22:43 +0000 (12:22 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 30 Nov 2020 17:22:43 +0000 (12:22 -0500)
commitab4cbb4bceff6f939f12d0edbe84004d85ebea16
treefb45b3978be677c5454f8b3b0d42d4a813a00374
parent3f59a05f0fa8c4f5f43fe0f5fed3291cf2cf224a
Fix miscomputation of direct_lateral_relids for join relations.

If a PlaceHolderVar is to be evaluated at a join relation, but
its value is only needed there and not at higher levels, we neglected
to update the joinrel's direct_lateral_relids to include the PHV's
source rel.  This causes problems because join_is_legal() then won't
allow joining the joinrel to the PHV's source rel at all, leading
to "failed to build any N-way joins" planner failures.

Per report from Andreas Seltenreich.  Back-patch to 9.5
where the problem originated.

Discussion: https://postgr.es/m/87blfgqa4t.fsf@aurora.ydns.eu
src/backend/optimizer/util/placeholder.c
src/test/regress/expected/join.out
src/test/regress/sql/join.sql