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)