Richard Guo <guofengli...@gmail.com> writes: > Thank you for the report. I looked at this a little bit and I think > here is what happened. In deconstruct_distribute_oj_quals we call > distribute_quals_to_rels using the uncopied sjinfo->syn_lefthand as > outerjoin_nonnullable, which eventually becomes rinfo->outer_relids. > Later on, when we remove useless left joins, we modify > sjinfo->syn_lefthand using bms_del_member and recycle > sjinfo->syn_lefthand. And that causes the rinfo->outer_relids becomes > invalid, and finally triggers this issue in join_clause_is_movable_to.
Hmm, the SJE code didn't really touch any of this logic, so why didn't we see the failure before? regards, tom lane