PostgreSQL Source Code: src/backend/executor/nodeCustom.c Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
12
21
23
24
27{
32 int tlistvarno;
33
34
35
36
37
38
39
40
43
44
46
47
51
52
54
55
56
57
58 if (scanrelid > 0)
59 {
62 }
63
64
65
66
67
69 if (!slotOps)
71
72
73
74
75
76
78 {
80
83
85 }
86 else
87 {
89 slotOps);
90
91 tlistvarno = scanrelid;
92 }
93
94
95
96
99
100
103
104
105
106
107
109
110 return css;
111}
112
115{
117
119
122}
123
124void
126{
129}
130
131void
133{
136}
137
138void
140{
143 (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
144 errmsg("custom scan \"%s\" does not support MarkPos",
147}
148
149void
151{
154 (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
155 errmsg("custom scan \"%s\" does not support MarkPos",
158}
159
160void
162{
164
166 {
170 }
171}
172
173void
175{
177
179 {
181 void *coordinate;
182
186 }
187}
188
189void
191{
193
195 {
197 void *coordinate;
198
201 }
202}
203
204void
207{
209
211 {
213 void *coordinate;
214
217 }
218}
219
220void
222{
224
227}
int errcode(int sqlerrcode)
int errmsg(const char *fmt,...)
#define ereport(elevel,...)
ExprState * ExecInitQual(List *qual, PlanState *parent)
void ExecAssignScanProjectionInfoWithVarno(ScanState *node, int varno)
const TupleTableSlotOps TTSOpsVirtual
void ExecInitScanTupleSlot(EState *estate, ScanState *scanstate, TupleDesc tupledesc, const TupleTableSlotOps *tts_ops)
void ExecInitResultTupleSlotTL(PlanState *planstate, const TupleTableSlotOps *tts_ops)
TupleDesc ExecTypeFromTL(List *targetList)
void ExecAssignExprContext(EState *estate, PlanState *planstate)
Relation ExecOpenScanRelation(EState *estate, Index scanrelid, int eflags)
Assert(PointerIsAligned(start, uint64))
#define CHECK_FOR_INTERRUPTS()
void ExecCustomScanInitializeDSM(CustomScanState *node, ParallelContext *pcxt)
void ExecShutdownCustomScan(CustomScanState *node)
void ExecCustomScanEstimate(CustomScanState *node, ParallelContext *pcxt)
void ExecCustomRestrPos(CustomScanState *node)
void ExecReScanCustomScan(CustomScanState *node)
void ExecCustomScanReInitializeDSM(CustomScanState *node, ParallelContext *pcxt)
void ExecEndCustomScan(CustomScanState *node)
void ExecCustomScanInitializeWorker(CustomScanState *node, ParallelWorkerContext *pwcxt)
void ExecCustomMarkPos(CustomScanState *node)
CustomScanState * ExecInitCustomScan(CustomScan *cscan, EState *estate, int eflags)
static TupleTableSlot * ExecCustomScan(PlanState *pstate)
#define castNode(_type_, nodeptr)
#define RelationGetDescr(relation)
void * shm_toc_allocate(shm_toc *toc, Size nbytes)
void shm_toc_insert(shm_toc *toc, uint64 key, void *address)
void * shm_toc_lookup(shm_toc *toc, uint64 key, bool noError)
#define shm_toc_estimate_chunk(e, sz)
#define shm_toc_estimate_keys(e, cnt)
void(* BeginCustomScan)(CustomScanState *node, EState *estate, int eflags)
void(* EndCustomScan)(CustomScanState *node)
void(* ShutdownCustomScan)(CustomScanState *node)
void(* ReInitializeDSMCustomScan)(CustomScanState *node, ParallelContext *pcxt, void *coordinate)
TupleTableSlot *(* ExecCustomScan)(CustomScanState *node)
void(* InitializeDSMCustomScan)(CustomScanState *node, ParallelContext *pcxt, void *coordinate)
void(* RestrPosCustomScan)(CustomScanState *node)
Size(* EstimateDSMCustomScan)(CustomScanState *node, ParallelContext *pcxt)
void(* MarkPosCustomScan)(CustomScanState *node)
void(* InitializeWorkerCustomScan)(CustomScanState *node, shm_toc *toc, void *coordinate)
void(* ReScanCustomScan)(CustomScanState *node)
Node *(* CreateCustomScanState)(CustomScan *cscan)
const struct TupleTableSlotOps * slotOps
const struct CustomExecMethods * methods
const struct CustomScanMethods * methods
shm_toc_estimator estimator
ExecProcNodeMtd ExecProcNode
Relation ss_currentRelation