PostgreSQL Source Code: src/backend/executor/nodeSeqscan.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
29
36
38
39
40
41
42
43
44
45
46
47
48
49
52{
57
58
59
60
65
66 if (scandesc == NULL)
67 {
68
69
70
71
74 0, NULL);
76 }
77
78
79
80
82 return slot;
83 return NULL;
84}
85
86
87
88
89static bool
91{
92
93
94
95
96 return true;
97}
98
99
100
101
102
103
104
105
106
107
108
111{
113
117
121 NULL,
122 NULL,
123 NULL);
124}
125
126
127
128
131{
133
137
141 NULL,
142 pstate->qual,
143 NULL);
144}
145
146
147
148
151{
153
157
161 NULL,
162 NULL,
164}
165
166
167
168
169
172{
174
178
182 NULL,
183 pstate->qual,
185}
186
187
188
189
190
191
194{
196
200}
201
202
203
204
205
208{
210
211
212
213
214
217
218
219
220
224
225
226
227
228
229
231
232
233
234
238 eflags);
239
240
244
245
246
247
250
251
252
253
256
257
258
259
260
261
264 else if (scanstate->ss.ps.qual == NULL)
265 {
268 else
270 }
271 else
272 {
275 else
277 }
278
279 return scanstate;
280}
281
282
283
284
285
286
287
288void
290{
292
293
294
295
297
298
299
300
301 if (scanDesc != NULL)
303}
304
305
306
307
308
309
310
311
312
313
314
315
316void
318{
320
322
323 if (scan != NULL)
325 NULL);
326
328}
329
330
331
332
333
334
335
336
337
338
339
340
341
342void
345{
347
352}
353
354
355
356
357
358
359
360void
363{
366
369 pscan,
374}
375
376
377
378
379
380
381
382void
385{
387
390}
391
392
393
394
395
396
397
398void
401{
403
407}
ExprState * ExecInitQual(List *qual, PlanState *parent)
TupleTableSlot * ExecScan(ScanState *node, ExecScanAccessMtd accessMtd, ExecScanRecheckMtd recheckMtd)
void ExecAssignScanProjectionInfo(ScanState *node)
void ExecScanReScan(ScanState *node)
static pg_attribute_always_inline TupleTableSlot * ExecScanExtended(ScanState *node, ExecScanAccessMtd accessMtd, ExecScanRecheckMtd recheckMtd, EPQState *epqstate, ExprState *qual, ProjectionInfo *projInfo)
void ExecInitScanTupleSlot(EState *estate, ScanState *scanstate, TupleDesc tupledesc, const TupleTableSlotOps *tts_ops)
void ExecInitResultTypeTL(PlanState *planstate)
void ExecAssignExprContext(EState *estate, PlanState *planstate)
Relation ExecOpenScanRelation(EState *estate, Index scanrelid, int eflags)
bool(* ExecScanRecheckMtd)(ScanState *node, TupleTableSlot *slot)
TupleTableSlot *(* ExecScanAccessMtd)(ScanState *node)
Assert(PointerIsAligned(start, uint64))
static TupleTableSlot * ExecSeqScanWithQual(PlanState *pstate)
void ExecSeqScanReInitializeDSM(SeqScanState *node, ParallelContext *pcxt)
void ExecSeqScanInitializeWorker(SeqScanState *node, ParallelWorkerContext *pwcxt)
void ExecEndSeqScan(SeqScanState *node)
static TupleTableSlot * ExecSeqScanWithQualProject(PlanState *pstate)
static TupleTableSlot * ExecSeqScan(PlanState *pstate)
SeqScanState * ExecInitSeqScan(SeqScan *node, EState *estate, int eflags)
void ExecSeqScanInitializeDSM(SeqScanState *node, ParallelContext *pcxt)
static TupleTableSlot * ExecSeqScanEPQ(PlanState *pstate)
static bool SeqRecheck(SeqScanState *node, TupleTableSlot *slot)
static TupleTableSlot * ExecSeqScanWithProject(PlanState *pstate)
void ExecSeqScanEstimate(SeqScanState *node, ParallelContext *pcxt)
static TupleTableSlot * SeqNext(SeqScanState *node)
void ExecReScanSeqScan(SeqScanState *node)
#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)
ScanDirection es_direction
struct EPQState * es_epq_active
shm_toc_estimator estimator
ProjectionInfo * ps_ProjInfo
ExecProcNodeMtd ExecProcNode
Relation ss_currentRelation
TupleTableSlot * ss_ScanTupleSlot
struct TableScanDescData * ss_currentScanDesc
struct ParallelTableScanDescData * rs_parallel
TableScanDesc table_beginscan_parallel(Relation relation, ParallelTableScanDesc pscan)
Size table_parallelscan_estimate(Relation rel, Snapshot snapshot)
void table_parallelscan_initialize(Relation rel, ParallelTableScanDesc pscan, Snapshot snapshot)
const TupleTableSlotOps * table_slot_callbacks(Relation relation)
static TableScanDesc table_beginscan(Relation rel, Snapshot snapshot, int nkeys, struct ScanKeyData *key)
static void table_endscan(TableScanDesc scan)
static void table_rescan(TableScanDesc scan, struct ScanKeyData *key)
static bool table_scan_getnextslot(TableScanDesc sscan, ScanDirection direction, TupleTableSlot *slot)
static void table_parallelscan_reinitialize(Relation rel, ParallelTableScanDesc pscan)