PostgreSQL Source Code: src/backend/executor/nodeCustom.c Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

12

21

23

24

27{

32 int tlistvarno;

33

34

35

36

37

38

39

40

43

44

46

47

51

52

54

55

56

57

58 if (scanrelid > 0)

59 {

62 }

63

64

65

66

67

69 if (!slotOps)

71

72

73

74

75

76

78 {

80

83

85 }

86 else

87 {

89 slotOps);

90

91 tlistvarno = scanrelid;

92 }

93

94

95

96

99

100

103

104

105

106

107

109

110 return css;

111}

112

115{

117

119

122}

123

124void

126{

129}

130

131void

133{

136}

137

138void

140{

143 (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),

144 errmsg("custom scan \"%s\" does not support MarkPos",

147}

148

149void

151{

154 (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),

155 errmsg("custom scan \"%s\" does not support MarkPos",

158}

159

160void

162{

164

166 {

170 }

171}

172

173void

175{

177

179 {

181 void *coordinate;

182

186 }

187}

188

189void

191{

193

195 {

197 void *coordinate;

198

201 }

202}

203

204void

207{

209

211 {

213 void *coordinate;

214

217 }

218}

219

220void

222{

224

227}

int errcode(int sqlerrcode)

int errmsg(const char *fmt,...)

#define ereport(elevel,...)

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

void ExecAssignScanProjectionInfoWithVarno(ScanState *node, int varno)

const TupleTableSlotOps TTSOpsVirtual

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

void ExecInitResultTupleSlotTL(PlanState *planstate, const TupleTableSlotOps *tts_ops)

TupleDesc ExecTypeFromTL(List *targetList)

void ExecAssignExprContext(EState *estate, PlanState *planstate)

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

Assert(PointerIsAligned(start, uint64))

#define CHECK_FOR_INTERRUPTS()

void ExecCustomScanInitializeDSM(CustomScanState *node, ParallelContext *pcxt)

void ExecShutdownCustomScan(CustomScanState *node)

void ExecCustomScanEstimate(CustomScanState *node, ParallelContext *pcxt)

void ExecCustomRestrPos(CustomScanState *node)

void ExecReScanCustomScan(CustomScanState *node)

void ExecCustomScanReInitializeDSM(CustomScanState *node, ParallelContext *pcxt)

void ExecEndCustomScan(CustomScanState *node)

void ExecCustomScanInitializeWorker(CustomScanState *node, ParallelWorkerContext *pwcxt)

void ExecCustomMarkPos(CustomScanState *node)

CustomScanState * ExecInitCustomScan(CustomScan *cscan, EState *estate, int eflags)

static TupleTableSlot * ExecCustomScan(PlanState *pstate)

#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)

void(* BeginCustomScan)(CustomScanState *node, EState *estate, int eflags)

void(* EndCustomScan)(CustomScanState *node)

void(* ShutdownCustomScan)(CustomScanState *node)

void(* ReInitializeDSMCustomScan)(CustomScanState *node, ParallelContext *pcxt, void *coordinate)

TupleTableSlot *(* ExecCustomScan)(CustomScanState *node)

void(* InitializeDSMCustomScan)(CustomScanState *node, ParallelContext *pcxt, void *coordinate)

void(* RestrPosCustomScan)(CustomScanState *node)

Size(* EstimateDSMCustomScan)(CustomScanState *node, ParallelContext *pcxt)

void(* MarkPosCustomScan)(CustomScanState *node)

void(* InitializeWorkerCustomScan)(CustomScanState *node, shm_toc *toc, void *coordinate)

void(* ReScanCustomScan)(CustomScanState *node)

Node *(* CreateCustomScanState)(CustomScan *cscan)

const struct TupleTableSlotOps * slotOps

const struct CustomExecMethods * methods

const struct CustomScanMethods * methods

shm_toc_estimator estimator

ExecProcNodeMtd ExecProcNode

Relation ss_currentRelation