Tender Wang писал(а) 2024-10-09 10:26:
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?
Hi. Seems good to me. -- Best regards, Alexander Pyhalov, Postgres Professional
