On 2/11/2022 15:27, Yuya Watari wrote:
> I noticed that the previous patch does not apply to the current HEAD.
> I attached the rebased version to this email.
Looking into find_em_for_rel() changes I see that you replaced
if (bms_is_subset(em->em_relids, rel->relids)
with assertion statement.
According of get_ecmember_indexes(), the em_relids field of returned
equivalence members can contain relids, not mentioned in the relation.
I don't understand, why it works now? For example, we can sort by t1.x,
but have an expression t1.x=t1.y*t2.z. Or I've missed something? If it
is not a mistake, maybe to add a comment why assertion here isn't failed?
--
regards,
Andrey Lepikhov
Postgres Professional