Re: Add semi-join pushdown to postgres_fdw
Alexander Pyhalov <a.pyhalov@postgrespro.ru>
From: Alexander Pyhalov <a.pyhalov@postgrespro.ru>
To: Alexander Korotkov <aekorotkov@gmail.com>
Cc: Tomas Vondra <tomas.vondra@enterprisedb.com>,
"Fujii.Yuki@df.MitsubishiElectric.co.jp"
<Fujii.Yuki@df.mitsubishielectric.co.jp>, Ashutosh Bapat
<ashutosh.bapat.oss@gmail.com>, Pgsql Hackers
<pgsql-hackers@postgresql.org>, Ian Lawrence Barwick <barwick@gmail.com>
Date: 2023-12-05T10:29:47Z
Lists: pgsql-hackers
Alexander Korotkov писал(а) 2023-12-03 23:52: > Hi, Alexander! > > On Mon, Nov 27, 2023 at 5:11 PM Alexander Pyhalov > <a.pyhalov@postgrespro.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 >> SEMI-JOIN >> 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
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
postgres_fdw: Avoid pulling up restrict infos from subqueries
- 729fe699e612 17.5 landed
- 023fb512755f 18.0 landed
-
Add support for deparsing semi-joins to contrib/postgres_fdw
- 824dbea3e41e 17.0 landed
-
Move PartitioPruneInfo out of plan nodes into PlannedStmt
- ec386948948c 16.0 cited