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

29

36

38

39

40

41

42

43

44

45

46

47

48

49

52{

57

58

59

60

65

66 if (scandesc == NULL)

67 {

68

69

70

71

74 0, NULL);

76 }

77

78

79

80

82 return slot;

83 return NULL;

84}

85

86

87

88

89static bool

91{

92

93

94

95

96 return true;

97}

98

99

100

101

102

103

104

105

106

107

108

111{

113

117

121 NULL,

122 NULL,

123 NULL);

124}

125

126

127

128

131{

133

137

141 NULL,

142 pstate->qual,

143 NULL);

144}

145

146

147

148

151{

153

157

161 NULL,

162 NULL,

164}

165

166

167

168

169

172{

174

178

182 NULL,

183 pstate->qual,

185}

186

187

188

189

190

191

194{

196

200}

201

202

203

204

205

208{

210

211

212

213

214

217

218

219

220

224

225

226

227

228

229

231

232

233

234

238 eflags);

239

240

244

245

246

247

250

251

252

253

256

257

258

259

260

261

264 else if (scanstate->ss.ps.qual == NULL)

265 {

268 else

270 }

271 else

272 {

275 else

277 }

278

279 return scanstate;

280}

281

282

283

284

285

286

287

288void

290{

292

293

294

295

297

298

299

300

301 if (scanDesc != NULL)

303}

304

305

306

307

308

309

310

311

312

313

314

315

316void

318{

320

322

323 if (scan != NULL)

325 NULL);

326

328}

329

330

331

332

333

334

335

336

337

338

339

340

341

342void

345{

347

352}

353

354

355

356

357

358

359

360void

363{

366

369 pscan,

374}

375

376

377

378

379

380

381

382void

385{

387

390}

391

392

393

394

395

396

397

398void

401{

403

407}

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

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 ExecInitScanTupleSlot(EState *estate, ScanState *scanstate, TupleDesc tupledesc, const TupleTableSlotOps *tts_ops)

void ExecInitResultTypeTL(PlanState *planstate)

void ExecAssignExprContext(EState *estate, PlanState *planstate)

Relation ExecOpenScanRelation(EState *estate, Index scanrelid, int eflags)

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

TupleTableSlot *(* ExecScanAccessMtd)(ScanState *node)

Assert(PointerIsAligned(start, uint64))

static TupleTableSlot * ExecSeqScanWithQual(PlanState *pstate)

void ExecSeqScanReInitializeDSM(SeqScanState *node, ParallelContext *pcxt)

void ExecSeqScanInitializeWorker(SeqScanState *node, ParallelWorkerContext *pwcxt)

void ExecEndSeqScan(SeqScanState *node)

static TupleTableSlot * ExecSeqScanWithQualProject(PlanState *pstate)

static TupleTableSlot * ExecSeqScan(PlanState *pstate)

SeqScanState * ExecInitSeqScan(SeqScan *node, EState *estate, int eflags)

void ExecSeqScanInitializeDSM(SeqScanState *node, ParallelContext *pcxt)

static TupleTableSlot * ExecSeqScanEPQ(PlanState *pstate)

static bool SeqRecheck(SeqScanState *node, TupleTableSlot *slot)

static TupleTableSlot * ExecSeqScanWithProject(PlanState *pstate)

void ExecSeqScanEstimate(SeqScanState *node, ParallelContext *pcxt)

static TupleTableSlot * SeqNext(SeqScanState *node)

void ExecReScanSeqScan(SeqScanState *node)

#define castNode(_type_, nodeptr)

#define RelationGetDescr(relation)

void * shm_toc_allocate(shm_toc *toc, Size nbytes)

void shm_toc_insert(shm_toc *toc, uint64 key, void *address)

void * shm_toc_lookup(shm_toc *toc, uint64 key, bool noError)

#define shm_toc_estimate_chunk(e, sz)

#define shm_toc_estimate_keys(e, cnt)

ScanDirection es_direction

struct EPQState * es_epq_active

shm_toc_estimator estimator

ProjectionInfo * ps_ProjInfo

ExecProcNodeMtd ExecProcNode

Relation ss_currentRelation

TupleTableSlot * ss_ScanTupleSlot

struct TableScanDescData * ss_currentScanDesc

struct ParallelTableScanDescData * rs_parallel

TableScanDesc table_beginscan_parallel(Relation relation, ParallelTableScanDesc pscan)

Size table_parallelscan_estimate(Relation rel, Snapshot snapshot)

void table_parallelscan_initialize(Relation rel, ParallelTableScanDesc pscan, Snapshot snapshot)

const TupleTableSlotOps * table_slot_callbacks(Relation relation)

static TableScanDesc table_beginscan(Relation rel, Snapshot snapshot, int nkeys, struct ScanKeyData *key)

static void table_endscan(TableScanDesc scan)

static void table_rescan(TableScanDesc scan, struct ScanKeyData *key)

static bool table_scan_getnextslot(TableScanDesc sscan, ScanDirection direction, TupleTableSlot *slot)

static void table_parallelscan_reinitialize(Relation rel, ParallelTableScanDesc pscan)