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