Re: Revert: Remove useless self-joins *and* -DREALLOCATE_BITMAPSETS make server crash, regress test fail.
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Richard Guo <guofenglinux@gmail.com>
Cc: jian he <jian.universality@gmail.com>,
PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2024-05-07T05:01:44Z
Lists: pgsql-hackers
Richard Guo <guofenglinux@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
Commits
-
Make left-join removal safe under -DREALLOCATE_BITMAPSETS.
- c7be3c015bfe 17.0 landed
-
Revert: Remove useless self-joins
- d1d286d83c0e 17.0 cited
-
Remove mention of nchar
- 81b2252e609c 17.0 cited