Hi, When I debug FDW join pushdown codes, I found below codes in semijoin_target_ok(): if (bms_is_member(var->varno, innerrel->relids) && !bms_is_member(var->varno, outerrel->relids))
As far as I know, if a var belongs to the innerrel of joinrel, it's not possible that it may belong to the outerrel. So if the bms_is_member(var->varno, innerrel->relids) returns TRUE, then !bms_is_member(var->varno, outerrel->relids) must be TRUE. If bms_is_member(var->varno, innerrel->relids) returns FALSE, !bms_is_member(var->varno, outerrel->relids) will not execute due to short circuit. So I think we can remove the "!bms_is_member(var->varno, outerrel->relids)" from if. Any thoughts? -- Thanks, Tender Wang
0001-Remove-an-unnecessary-check-as-Var-can-only-belong-t.patch
Description: Binary data