PostgreSQL Source Code: src/backend/executor/nodeValuesscan.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

24

30

31

33

34

35

36

37

38

39

40

41

42

43

44

45

48{

53 int curr_idx;

54

55

56

57

62

63

64

65

67 {

70 }

71 else

72 {

75 }

76

77

78

79

80

81

82

84

86 if (curr_idx >= 0 && curr_idx < node->array_len)

87 {

92 bool *isnull;

94 int resind;

95

96

97

98

99

100

102

103

104

105

107

108

109

110

111

112

113

114

115

116 if (exprstatelist == NIL)

117 {

118

119

120

121

122

123

124

125

126

127

129 }

130

131

133

134

135

136

137

140

141 resind = 0;

142 foreach(lc, exprstatelist)

143 {

146 resind);

147

149 econtext,

150 &isnull[resind]);

151

152

153

154

155

156

157

159 isnull[resind],

161

162 resind++;

163 }

164

166

167

168

169

171 }

172

173 return slot;

174}

175

176

177

178

179static bool

181{

182

183 return true;

184}

185

186

187

188

189

190

191

192

193

194

197{

199

203}

204

205

206

207

208

211{

215 int i;

217

218

219

220

223

224

225

226

231

232

233

234

235 planstate = &scanstate->ss.ps;

236

237

238

239

240

241

245

246

247

248

251

252

253

254

257

258

259

260

263

264

265

266

269

270

271

272

273

274

275

276

277

278

279

284 i = 0;

286 {

288

290

291

292

293

294

297 {

298 int saved_jit_flags;

299

300

301

302

303

304

305

306

309

311 &scanstate->ss.ps);

312

314 }

315 i++;

316 }

317

318 return scanstate;

319}

320

321

322

323

324

325

326

327void

329{

332

334

336}

static Datum values[MAXATTR]

bool contain_subplans(Node *clause)

ExprState * ExecInitQual(List *qual, PlanState *parent)

List * ExecInitExprList(List *nodes, PlanState *parent)

TupleTableSlot * ExecScan(ScanState *node, ExecScanAccessMtd accessMtd, ExecScanRecheckMtd recheckMtd)

void ExecAssignScanProjectionInfo(ScanState *node)

void ExecScanReScan(ScanState *node)

const TupleTableSlotOps TTSOpsVirtual

TupleTableSlot * ExecStoreVirtualTuple(TupleTableSlot *slot)

void ExecInitScanTupleSlot(EState *estate, ScanState *scanstate, TupleDesc tupledesc, const TupleTableSlotOps *tts_ops)

void ExecInitResultTypeTL(PlanState *planstate)

TupleDesc ExecTypeFromExprList(List *exprList)

void ReScanExprContext(ExprContext *econtext)

void ExecAssignExprContext(EState *estate, PlanState *planstate)

bool(* ExecScanRecheckMtd)(ScanState *node, TupleTableSlot *slot)

TupleTableSlot *(* ExecScanAccessMtd)(ScanState *node)

static Datum ExecEvalExpr(ExprState *state, ExprContext *econtext, bool *isNull)

#define MakeExpandedObjectReadOnly(d, isnull, typlen)

Assert(PointerIsAligned(start, uint64))

void * palloc0(Size size)

void ExecReScanValuesScan(ValuesScanState *node)

ValuesScanState * ExecInitValuesScan(ValuesScan *node, EState *estate, int eflags)

static TupleTableSlot * ValuesNext(ValuesScanState *node)

static TupleTableSlot * ExecValuesScan(PlanState *pstate)

static bool ValuesRecheck(ValuesScanState *node, TupleTableSlot *slot)

#define castNode(_type_, nodeptr)

static MemoryContext MemoryContextSwitchTo(MemoryContext context)

#define lfirst_node(type, lc)

static int list_length(const List *l)

#define ScanDirectionIsForward(direction)

ScanDirection es_direction

MemoryContext ecxt_per_tuple_memory

ExprContext * ps_ExprContext

TupleTableSlot * ps_ResultTupleSlot

ExecProcNodeMtd ExecProcNode

TupleTableSlot * ss_ScanTupleSlot

TupleDesc tts_tupleDescriptor

static CompactAttribute * TupleDescCompactAttr(TupleDesc tupdesc, int i)

static TupleTableSlot * ExecClearTuple(TupleTableSlot *slot)