PostgreSQL Source Code: src/backend/executor/nodeWorktablescan.c Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
17
20
22
23
24
25
26
27
28
31{
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
51
53
54
55
56
59 return slot;
60}
61
62
63
64
65static bool
67{
68
69 return true;
70}
71
72
73
74
75
76
77
78
79
82{
84
85
86
87
88
89
90
91 if (node->rustate == NULL)
92 {
96
97 param = &(estate->es_param_exec_vals[plan->wtParam]);
98 Assert(param->execPlan == NULL);
99 Assert(!param->isnull);
102
103
104
105
106
107
108
111
112
113
114
115
117 }
118
122}
123
124
125
126
127
128
131{
133
134
136
137
138
139
142
143
144
145
150 scanstate->rustate = NULL;
151
152
153
154
155
156
158
159
160
161
163
164
167
169
170
171
172
175
176
177
178
179
180
181 return scanstate;
182}
183
184
185
186
187
188
189
190void
192{
195
197
198
201}
ExprState * ExecInitQual(List *qual, PlanState *parent)
TupleTableSlot * ExecScan(ScanState *node, ExecScanAccessMtd accessMtd, ExecScanRecheckMtd recheckMtd)
void ExecAssignScanProjectionInfo(ScanState *node)
void ExecScanReScan(ScanState *node)
void ExecInitScanTupleSlot(EState *estate, ScanState *scanstate, TupleDesc tupledesc, const TupleTableSlotOps *tts_ops)
void ExecInitResultTypeTL(PlanState *planstate)
const TupleTableSlotOps TTSOpsMinimalTuple
TupleDesc ExecGetResultType(PlanState *planstate)
void ExecAssignExprContext(EState *estate, PlanState *planstate)
void ExecAssignScanType(ScanState *scanstate, TupleDesc tupDesc)
#define EXEC_FLAG_BACKWARD
bool(* ExecScanRecheckMtd)(ScanState *node, TupleTableSlot *slot)
TupleTableSlot *(* ExecScanAccessMtd)(ScanState *node)
Assert(PointerIsAligned(start, uint64))
static TupleTableSlot * ExecWorkTableScan(PlanState *pstate)
WorkTableScanState * ExecInitWorkTableScan(WorkTableScan *node, EState *estate, int eflags)
static TupleTableSlot * WorkTableScanNext(WorkTableScanState *node)
void ExecReScanWorkTableScan(WorkTableScanState *node)
static bool WorkTableScanRecheck(WorkTableScanState *node, TupleTableSlot *slot)
#define castNode(_type_, nodeptr)
static Pointer DatumGetPointer(Datum X)
#define ScanDirectionIsForward(direction)
ScanDirection es_direction
TupleTableSlot * ps_ResultTupleSlot
ExecProcNodeMtd ExecProcNode
Tuplestorestate * working_table
TupleTableSlot * ss_ScanTupleSlot
RecursiveUnionState * rustate
bool tuplestore_gettupleslot(Tuplestorestate *state, bool forward, bool copy, TupleTableSlot *slot)
void tuplestore_rescan(Tuplestorestate *state)
static TupleTableSlot * ExecClearTuple(TupleTableSlot *slot)