Re: Add semi-join pushdown to postgres_fdw
От | Alexander Korotkov |
---|---|
Тема | Re: Add semi-join pushdown to postgres_fdw |
Дата | |
Msg-id | CAPpHfdtYndP0+P4YjJrNAgX6X6xVL6z4n0L_u3P=se+Xt0VksA@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Add semi-join pushdown to postgres_fdw (Alexander Pyhalov <a.pyhalov@postgrespro.ru>) |
Ответы |
Re: Add semi-join pushdown to postgres_fdw
|
Список | pgsql-hackers |
Hi, Alexander! On Tue, Oct 31, 2023 at 1:07 PM Alexander Pyhalov <a.pyhalov@postgrespro.ru> wrote: > There are several cases when we can't push down semi-join in current > patch. > > 1) When target list has attributes from inner relation, which are > equivalent to some attributes of outer > relation, we fail to notice this. > > 2) When we examine A join B and decide that we can't push it down, this > decision is final - we state it in fdw_private of joinrel, > and so if we consider joining these relations in another order, we don't > reconsider. > This means that if later examine B join A, we don't try to push it down. > As semi-join can be executed as JOIN_UNIQUE_INNER or JOIN_UNIQUE_OUTER, > this can be a problem - we look at some of these paths and remember that > we can't push down such join. Thank you for the revision. I've revised the patch myself. I've replaced StringInfo with additional conds into a list of strings as I proposed before. I think the code became much clearer. Also, it gets rid of some unnecessary allocations. I think the code itself is not in bad shape. But patch lacks some high-level description of semi-joins processing as well as comments on each manipulation with additional conds. Could you please add this? ------ Regards, Alexander Korotkov
Вложения
В списке pgsql-hackers по дате отправления: