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)