Passing fdw_private data from PlanForeignScan to PlanForeignModify - Mailing list pgsql-hackers

From Bernd Helmle
Subject Passing fdw_private data from PlanForeignScan to PlanForeignModify
Date
Msg-id 5B403C914B5ED69C995AB8C4@apophis.credativ.lan
Whole thread Raw
Responses Re: Passing fdw_private data from PlanForeignScan to PlanForeignModify  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
I'm currently implementing DML actions in the informix FDW module and 
trying to understand how UPDATE/DELETE actions interact with the various 
structures, especially how states between the associated ForeignScan and 
ForeignModify actions could be transmitted. As far as i understood, with 
e.g. an UPDATE action on a foreign table you get the following sequence of 
callbacks:

GetForeignRelSize
GetForeignPaths
GetForeignPlan
PlanForeignModify

BeginForeignScan
BeginForeignModify

<repeats>
IterateForeignScan
ExecForeignUpdate

</repeats>

EndForeignScan
EndForeignModify

During the planning phase, the Informix FDW currently plans a server side 
cursor, which identifier i'd like to pass into the planning phase of the 
modify action to reuse it in conjunction with UPDATE ... WHERE CURRENT OF.

I understand that the ModifyTable structure passed to PlanForeignModify has 
a list of associated plan nodes, from which i can access the ForeignScan 
plan node associated with the current modify action, thus having access to 
the fdw_private data generated during the planning phase of the ForeigScan 
node. However, it's a list and i currently don't understand on how to 
reference the associated ForeignScan node reliably, given that there are 
cases with more than one node in this list.

Any pointers, someone?

-- 
Thanks
Bernd



pgsql-hackers by date:

Previous
From: Ants Aasma
Date:
Subject: Re: Parallell Optimizer
Next
From: Amit Kapila
Date:
Subject: ALTER SYSTEM SET command to change postgresql.conf parameters (RE: Proposal for Allow postgresql.conf values to be changed via SQL [review])