mirror of
https://github.com/postgres/postgres.git
synced 2025-07-05 07:21:24 +03:00
Include result relation info in direct modify ForeignScan nodes.
FDWs that can perform an UPDATE/DELETE remotely using the "direct modify" set of APIs need to access the ResultRelInfo of the target table. That's currently available in EState.es_result_relation_info, but the next commit will remove that field. This commit adds a new resultRelation field in ForeignScan, to store the target relation's RT index, and the corresponding ResultRelInfo in ForeignScanState. The FDW's PlanDirectModify callback is expected to set 'resultRelation' along with 'operation'. The core code doesn't need them for anything, they are for the convenience of FDW's Begin- and IterateDirectModify callbacks. Authors: Amit Langote, Etsuro Fujita Discussion: https://www.postgresql.org/message-id/CA%2BHiwqGEmiib8FLiHMhKB%2BCH5dRgHSLc5N5wnvc4kym%2BZYpQEQ%40mail.gmail.com
This commit is contained in:
@ -1777,6 +1777,7 @@ typedef struct ForeignScanState
|
||||
ScanState ss; /* its first field is NodeTag */
|
||||
ExprState *fdw_recheck_quals; /* original quals not in ss.ps.qual */
|
||||
Size pscan_len; /* size of parallel coordination information */
|
||||
ResultRelInfo *resultRelInfo; /* result rel info, if UPDATE or DELETE */
|
||||
/* use struct pointer to avoid including fdwapi.h here */
|
||||
struct FdwRoutine *fdwroutine;
|
||||
void *fdw_state; /* foreign-data wrapper can keep state here */
|
||||
|
Reference in New Issue
Block a user