PostgreSQL Source Code: src/include/foreign/fdwapi.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12#ifndef FDWAPI_H
13#define FDWAPI_H
14
18
19
21
22
23
24
25
26
29 Oid foreigntableid);
30
33 Oid foreigntableid);
34
37 Oid foreigntableid,
40 List *scan_clauses,
41 Plan *outer_plan);
42
44 int eflags);
45
47
50
52
54
61
66 void *extra);
67
72
75 Index resultRelation,
76 int subplan_index);
77
80 List *fdw_private,
81 int subplan_index,
82 int eflags);
83
88
93 int *numSlots);
94
96
101
106
109
112
115
117
120 Index resultRelation,
121 int subplan_index);
122
124 int eflags);
125
127
129
132
137 bool *updated);
138
141
144 List *fdw_private,
145 int subplan_index,
147
150
153 double *totalrows,
154 double *totaldeadrows);
155
159
161 Oid serverOid);
162
165 bool restart_seqs);
166
171 void *coordinate);
174 void *coordinate);
177 void *coordinate);
183 List *fdw_private,
185
187
189
191
193
194
195
196
197
198
199
200
201
202
203
205{
207
208
216
217
218
219
220
221
222
224
225
227
228
245
246
250
251
255
256
258
259
261
262
264
265
272
273
275
276
282
283
284
293
294#endif
void(* ForeignAsyncConfigureWait_function)(AsyncRequest *areq)
int(* AcquireSampleRowsFunc)(Relation relation, int elevel, HeapTuple *rows, int targrows, double *totalrows, double *totaldeadrows)
Size(* EstimateDSMForeignScan_function)(ForeignScanState *node, ParallelContext *pcxt)
TupleTableSlot *(* IterateForeignScan_function)(ForeignScanState *node)
void(* EndForeignScan_function)(ForeignScanState *node)
FdwRoutine * GetFdwRoutineForRelation(Relation relation, bool makecopy)
FdwRoutine * GetFdwRoutineByServerId(Oid serverid)
void(* BeginForeignModify_function)(ModifyTableState *mtstate, ResultRelInfo *rinfo, List *fdw_private, int subplan_index, int eflags)
bool(* IsForeignPathAsyncCapable_function)(ForeignPath *path)
void(* BeginForeignScan_function)(ForeignScanState *node, int eflags)
List *(* ImportForeignSchema_function)(ImportForeignSchemaStmt *stmt, Oid serverOid)
void(* GetForeignUpperPaths_function)(PlannerInfo *root, UpperRelationKind stage, RelOptInfo *input_rel, RelOptInfo *output_rel, void *extra)
void(* EndForeignModify_function)(EState *estate, ResultRelInfo *rinfo)
void(* BeginDirectModify_function)(ForeignScanState *node, int eflags)
bool(* AnalyzeForeignTable_function)(Relation relation, AcquireSampleRowsFunc *func, BlockNumber *totalpages)
TupleTableSlot *(* IterateDirectModify_function)(ForeignScanState *node)
bool(* PlanDirectModify_function)(PlannerInfo *root, ModifyTable *plan, Index resultRelation, int subplan_index)
void(* AddForeignUpdateTargets_function)(PlannerInfo *root, Index rtindex, RangeTblEntry *target_rte, Relation target_relation)
void(* ForeignAsyncRequest_function)(AsyncRequest *areq)
void(* RefetchForeignRow_function)(EState *estate, ExecRowMark *erm, Datum rowid, TupleTableSlot *slot, bool *updated)
Path * GetExistingLocalJoinPath(RelOptInfo *joinrel)
void(* ExecForeignTruncate_function)(List *rels, DropBehavior behavior, bool restart_seqs)
void(* InitializeDSMForeignScan_function)(ForeignScanState *node, ParallelContext *pcxt, void *coordinate)
int(* GetForeignModifyBatchSize_function)(ResultRelInfo *rinfo)
RowMarkType(* GetForeignRowMarkType_function)(RangeTblEntry *rte, LockClauseStrength strength)
FdwRoutine * GetFdwRoutineByRelId(Oid relid)
void(* ShutdownForeignScan_function)(ForeignScanState *node)
TupleTableSlot *(* ExecForeignUpdate_function)(EState *estate, ResultRelInfo *rinfo, TupleTableSlot *slot, TupleTableSlot *planSlot)
void(* BeginForeignInsert_function)(ModifyTableState *mtstate, ResultRelInfo *rinfo)
void(* ReScanForeignScan_function)(ForeignScanState *node)
TupleTableSlot *(* ExecForeignDelete_function)(EState *estate, ResultRelInfo *rinfo, TupleTableSlot *slot, TupleTableSlot *planSlot)
void(* ExplainForeignScan_function)(ForeignScanState *node, struct ExplainState *es)
bool(* RecheckForeignScan_function)(ForeignScanState *node, TupleTableSlot *slot)
void(* GetForeignRelSize_function)(PlannerInfo *root, RelOptInfo *baserel, Oid foreigntableid)
bool(* IsForeignScanParallelSafe_function)(PlannerInfo *root, RelOptInfo *rel, RangeTblEntry *rte)
Oid GetForeignServerIdByRelId(Oid relid)
void(* ReInitializeDSMForeignScan_function)(ForeignScanState *node, ParallelContext *pcxt, void *coordinate)
bool IsImportableForeignTable(const char *tablename, ImportForeignSchemaStmt *stmt)
void(* GetForeignPaths_function)(PlannerInfo *root, RelOptInfo *baserel, Oid foreigntableid)
void(* GetForeignJoinPaths_function)(PlannerInfo *root, RelOptInfo *joinrel, RelOptInfo *outerrel, RelOptInfo *innerrel, JoinType jointype, JoinPathExtraData *extra)
ForeignScan *(* GetForeignPlan_function)(PlannerInfo *root, RelOptInfo *baserel, Oid foreigntableid, ForeignPath *best_path, List *tlist, List *scan_clauses, Plan *outer_plan)
List *(* ReparameterizeForeignPathByChild_function)(PlannerInfo *root, List *fdw_private, RelOptInfo *child_rel)
FdwRoutine * GetFdwRoutine(Oid fdwhandler)
void(* ExplainDirectModify_function)(ForeignScanState *node, struct ExplainState *es)
TupleTableSlot **(* ExecForeignBatchInsert_function)(EState *estate, ResultRelInfo *rinfo, TupleTableSlot **slots, TupleTableSlot **planSlots, int *numSlots)
List *(* PlanForeignModify_function)(PlannerInfo *root, ModifyTable *plan, Index resultRelation, int subplan_index)
int(* IsForeignRelUpdatable_function)(Relation rel)
struct FdwRoutine FdwRoutine
void(* ExplainForeignModify_function)(ModifyTableState *mtstate, ResultRelInfo *rinfo, List *fdw_private, int subplan_index, struct ExplainState *es)
void(* EndDirectModify_function)(ForeignScanState *node)
TupleTableSlot *(* ExecForeignInsert_function)(EState *estate, ResultRelInfo *rinfo, TupleTableSlot *slot, TupleTableSlot *planSlot)
void(* EndForeignInsert_function)(EState *estate, ResultRelInfo *rinfo)
void(* ForeignAsyncNotify_function)(AsyncRequest *areq)
void(* InitializeWorkerForeignScan_function)(ForeignScanState *node, shm_toc *toc, void *coordinate)
EstimateDSMForeignScan_function EstimateDSMForeignScan
EndForeignInsert_function EndForeignInsert
ReScanForeignScan_function ReScanForeignScan
BeginForeignInsert_function BeginForeignInsert
RecheckForeignScan_function RecheckForeignScan
AddForeignUpdateTargets_function AddForeignUpdateTargets
InitializeDSMForeignScan_function InitializeDSMForeignScan
BeginForeignModify_function BeginForeignModify
EndForeignModify_function EndForeignModify
BeginDirectModify_function BeginDirectModify
PlanForeignModify_function PlanForeignModify
PlanDirectModify_function PlanDirectModify
ExecForeignInsert_function ExecForeignInsert
BeginForeignScan_function BeginForeignScan
ForeignAsyncRequest_function ForeignAsyncRequest
IterateDirectModify_function IterateDirectModify
ExecForeignUpdate_function ExecForeignUpdate
RefetchForeignRow_function RefetchForeignRow
GetForeignJoinPaths_function GetForeignJoinPaths
IsForeignScanParallelSafe_function IsForeignScanParallelSafe
ExecForeignBatchInsert_function ExecForeignBatchInsert
GetForeignPaths_function GetForeignPaths
GetForeignModifyBatchSize_function GetForeignModifyBatchSize
GetForeignRelSize_function GetForeignRelSize
GetForeignRowMarkType_function GetForeignRowMarkType
ExplainForeignScan_function ExplainForeignScan
EndForeignScan_function EndForeignScan
AnalyzeForeignTable_function AnalyzeForeignTable
EndDirectModify_function EndDirectModify
ExplainForeignModify_function ExplainForeignModify
ReInitializeDSMForeignScan_function ReInitializeDSMForeignScan
IsForeignPathAsyncCapable_function IsForeignPathAsyncCapable
IterateForeignScan_function IterateForeignScan
ForeignAsyncNotify_function ForeignAsyncNotify
InitializeWorkerForeignScan_function InitializeWorkerForeignScan
ImportForeignSchema_function ImportForeignSchema
GetForeignPlan_function GetForeignPlan
ShutdownForeignScan_function ShutdownForeignScan
ExecForeignDelete_function ExecForeignDelete
ExecForeignTruncate_function ExecForeignTruncate
ExplainDirectModify_function ExplainDirectModify
IsForeignRelUpdatable_function IsForeignRelUpdatable
GetForeignUpperPaths_function GetForeignUpperPaths
ForeignAsyncConfigureWait_function ForeignAsyncConfigureWait
ReparameterizeForeignPathByChild_function ReparameterizeForeignPathByChild