PostgreSQL Source Code: src/backend/executor/execScan.c Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
20
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
50{
54
58
60 accessMtd,
61 recheckMtd,
62 epqstate,
63 qual,
64 projInfo);
65}
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80void
82{
85
87}
88
89
90
91
92
93void
95{
97
99}
100
101
102
103
104
105
106
107void
109{
111
112
113
114
115
117
118
119
120
121
123 {
126
127 if (scanrelid > 0)
130 else
131 {
133 int rtindex = -1;
134
135
136
137
138
139
144 else
145 elog(ERROR, "unexpected scan node: %d",
147
148 while ((rtindex = bms_next_member(relids, rtindex)) >= 0)
149 {
153 }
154 }
155 }
156}
int bms_next_member(const Bitmapset *a, int prevbit)
void ExecAssignScanProjectionInfoWithVarno(ScanState *node, int varno)
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 ExecConditionalAssignProjectionInfo(PlanState *planstate, TupleDesc inputDesc, int varno)
bool(* ExecScanRecheckMtd)(ScanState *node, TupleTableSlot *slot)
TupleTableSlot *(* ExecScanAccessMtd)(ScanState *node)
Assert(PointerIsAligned(start, uint64))
#define IsA(nodeptr, _type_)
struct EPQState * es_epq_active
ProjectionInfo * ps_ProjInfo
TupleTableSlot * ss_ScanTupleSlot
TupleDesc tts_tupleDescriptor
static TupleTableSlot * ExecClearTuple(TupleTableSlot *slot)