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
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers