PostgreSQL Source Code: src/backend/executor/nodeResult.c Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
47
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
68{
73
75
77
78
79
80
82 {
84
86 if (!qualResult)
87 {
89 return NULL;
90 }
91 }
92
93
94
95
96
98
99
100
101
102
103
104
106 {
108
110 {
111
112
113
115
117 return NULL;
118
119
120
121
122
124 }
125 else
126 {
127
128
129
130
132 }
133
134
136 }
137
138 return NULL;
139}
140
141
142
143
144
145void
147{
149
152 else
153 elog(DEBUG2, "Result nodes do not support mark/restore");
154}
155
156
157
158
159
160void
162{
164
167 else
168 elog(ERROR, "Result nodes do not support mark/restore");
169}
170
171
172
173
174
175
176
177
178
181{
183
184
187
188
189
190
193 resstate->ps.state = estate;
195
196 resstate->rs_done = false;
198
199
200
201
202
203
205
206
207
208
210
211
212
213
215
216
217
218
221
222
223
224
229
230 return resstate;
231}
232
233
234
235
236
237
238
239void
241{
242
243
244
246}
247
248void
250{
252
255
256
257
258
259
262}
void ExecMarkPos(PlanState *node)
void ExecReScan(PlanState *node)
void ExecRestrPos(PlanState *node)
ExprState * ExecInitQual(List *qual, PlanState *parent)
void ExecEndNode(PlanState *node)
PlanState * ExecInitNode(Plan *node, EState *estate, int eflags)
const TupleTableSlotOps TTSOpsVirtual
void ExecInitResultTupleSlotTL(PlanState *planstate, const TupleTableSlotOps *tts_ops)
void ExecAssignExprContext(EState *estate, PlanState *planstate)
void ExecAssignProjectionInfo(PlanState *planstate, TupleDesc inputDesc)
#define outerPlanState(node)
#define EXEC_FLAG_BACKWARD
static TupleTableSlot * ExecProject(ProjectionInfo *projInfo)
#define ResetExprContext(econtext)
static bool ExecQual(ExprState *state, ExprContext *econtext)
static TupleTableSlot * ExecProcNode(PlanState *node)
Assert(PointerIsAligned(start, uint64))
#define CHECK_FOR_INTERRUPTS()
void ExecReScanResult(ResultState *node)
static TupleTableSlot * ExecResult(PlanState *pstate)
ResultState * ExecInitResult(Result *node, EState *estate, int eflags)
void ExecEndResult(ResultState *node)
void ExecResultRestrPos(ResultState *node)
void ExecResultMarkPos(ResultState *node)
#define castNode(_type_, nodeptr)
TupleTableSlot * ecxt_outertuple
ExprContext * ps_ExprContext
ProjectionInfo * ps_ProjInfo
ExecProcNodeMtd ExecProcNode
ExprState * resconstantqual