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

Reply via email to