On Tue, Jan 19, 2021 at 2:06 PM tsunakawa.ta...@fujitsu.com
<tsunakawa.ta...@fujitsu.com> wrote:
> From: Amit Langote <amitlangot...@gmail.com>
> > I apologize in advance for being maybe overly pedantic, but I noticed
> > that, in ExecInitModifyTable(), you decided to place the call outside
> > the loop that goes over resultRelations (shown below), although my
> > intent was to ask to place it next to the BeginForeignModify() in that
> > loop.
>
> Actually, I tried to do it (adding the GetModifyBatchSize() call after 
> BeginForeignModify()), but it failed.  Because 
> postgresfdwGetModifyBatchSize() wants to know if RETURNING is specified, and 
> ResultRelInfo->projectReturning is created after the above part.  Considering 
> the context where GetModifyBatchSize() implementations may want to know the 
> environment, I placed the call as late as possible in the initialization 
> phase.  As for the future(?) multi-target DML statements, I think we can 
> change this together with other many(?) parts that assume a single target 
> table.

Okay, sometime later then.

I wasn't sure if bringing it up here would be appropriate, but there's
a patch by me to refactor ModfiyTable result relation allocation that
will have to remember to move this code along to an appropriate place
[1].  Thanks for the tip about the dependency on how RETURNING is
handled.  I will remember it when rebasing my patch over this.

--
Amit Langote
EDB: http://www.enterprisedb.com

[1] https://commitfest.postgresql.org/31/2621/


Reply via email to