Fix miscomputation of direct_lateral_relids for join relations.

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

Commit: 4f728a1f5f06dab85f6b94fd062752a25239c6b6
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2020-11-30T17:22:43Z
Releases: 12.6
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

Files

Discussion