Re: Add semi-join pushdown to postgres_fdw

From: Alexander Pyhalov <a(dot)pyhalov(at)postgrespro(dot)ru>
To: Alexander Korotkov <aekorotkov(at)gmail(dot)com>
Cc: Tomas Vondra <tomas(dot)vondra(at)enterprisedb(dot)com>, "Fujii(dot)Yuki(at)df(dot)MitsubishiElectric(dot)co(dot)jp" <Fujii(dot)Yuki(at)df(dot)mitsubishielectric(dot)co(dot)jp>, Ashutosh Bapat <ashutosh(dot)bapat(dot)oss(at)gmail(dot)com>, Pgsql Hackers <pgsql-hackers(at)postgresql(dot)org>, Ian Lawrence Barwick <barwick(at)gmail(dot)com>
Subject: Re: Add semi-join pushdown to postgres_fdw
Date: 2023-12-05 10:29:47
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

Alexander Korotkov писал(а) 2023-12-03 23:52:
> Hi, Alexander!
> On Mon, Nov 27, 2023 at 5:11 PM Alexander Pyhalov
> <a(dot)pyhalov(at)postgrespro(dot)ru> wrote:
>> Alexander Korotkov писал(а) 2023-11-27 03:49:
>> > 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?
>> >
>> Hi. The updated patch looks better. It seems I've failed to fix logic
>> in
>> deparseFromExprForRel() when tried to convert StringInfos to Lists.
>> I've added some comments. The most complete description of how
>> is processed, is located in deparseFromExprForRel(). Unfortunately,
>> there seems to be no single place, describing current JOIN deparsing
>> logic.
> Looks good to me. I've made some grammar and formatting adjustments.
> Also, I've written the commit message.
> Now, I think this looks good. I'm going to push this if no objections.
> ------
> Regards,
> Alexander Korotkov

Hi. No objections from my side.

Perhaps, some rephrasing is needed in comment in semijoin_target_ok():

"The planner can create semi-joins, which refer to inner rel
vars in its target list."

Perhaps, change "semi-joins, which refer" to "a semi-join, which refers
as later we speak about "its" target list.

Best regards,
Alexander Pyhalov,
Postgres Professional

In response to


Browse pgsql-hackers by date

  From Date Subject
Next Message Andrei Lepikhov 2023-12-05 10:55:00 Re: POC, WIP: OR-clause support for indexes
Previous Message shveta malik 2023-12-05 10:29:25 Re: Synchronizing slots from primary to standby