PostgreSQL Source Code: src/include/executor/nodeAgg.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14#ifndef NODEAGG_H

15#define NODEAGG_H

16

19

20

21

22

23

24

25

26

27

28

29

31{

32

33

34

35

36

37

38

39

40

41

42

43

45

46

47

48

50

51

52

53

55

56

57

58

59

60

62

63

64

65

66

67

69

70

72

73

75

76

78

79

81

82

83

84

85

87

88

90

91

93

94

96

97

99

100

101

103

104

109

110

111

112

113

114

117

118

119

120

123

124

125

126

127

128

129

130

135

136

137

138

139

140

145 bool lastisnull;

146 bool haslast;

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

163

164

165

166

167

168

169

171

172

174

177

178

179

180

181

182

183

184

185

186

188{

189

190

191

192

193

194

196

197

199

200

202

203

204

205

206

208

209

210

211

212

213

214

216

217

219

220

221

222

223

226

227

228

229

230

233

234

235

236

237

238

239

240

241

242

243

244

245

246

247

248

249

251{

252#define FIELDNO_AGGSTATEPERGROUPDATA_TRANSVALUE 0

254#define FIELDNO_AGGSTATEPERGROUPDATA_TRANSVALUEISNULL 1

256

257#define FIELDNO_AGGSTATEPERGROUPDATA_NOTRANSVALUE 2

259

260

261

262

263

264

265

266

268

269

270

271

272

273

274

275

276

277

278

279

281{

283 int numsets;

287

289 Sort *sortnode;

290

292

293

294

295

296

297

298

301

302

303

304

305

306

307

308

310{

316 int numCols;

321 Agg *aggnode;

323

324

328

330 Size transitionSpace);

331extern void hash_agg_set_limits(double hashentrysize, double input_groups,

332 int used_bits, Size *mem_limit,

333 uint64 *ngroups_limit, int *num_partitions);

334

335

340

341#endif

tuplehash_iterator TupleHashIterator

void ExecAggEstimate(AggState *node, ParallelContext *pcxt)

struct AggStatePerAggData AggStatePerAggData

void ExecAggInitializeWorker(AggState *node, ParallelWorkerContext *pwcxt)

struct AggStatePerTransData AggStatePerTransData

void ExecAggRetrieveInstrumentation(AggState *node)

struct AggStatePerGroupData AggStatePerGroupData

void ExecReScanAgg(AggState *node)

Size hash_agg_entry_size(int numTrans, Size tupleWidth, Size transitionSpace)

void ExecAggInitializeDSM(AggState *node, ParallelContext *pcxt)

struct AggStatePerPhaseData AggStatePerPhaseData

struct AggStatePerHashData AggStatePerHashData

void ExecEndAgg(AggState *node)

AggState * ExecInitAgg(Agg *node, EState *estate, int eflags)

void hash_agg_set_limits(double hashentrysize, double input_groups, int used_bits, Size *mem_limit, uint64 *ngroups_limit, int *num_partitions)

TupleTableSlot * hashslot

TupleHashIterator hashiter

AttrNumber * hashGrpColIdxHash

AttrNumber * hashGrpColIdxInput

Bitmapset ** grouped_cols

ExprState * evaltrans_cache[2][2]

TupleTableSlot * sortslot

Tuplesortstate ** sortstates

TupleTableSlot * uniqslot

FunctionCallInfo deserialfn_fcinfo

FunctionCallInfo serialfn_fcinfo

FunctionCallInfo transfn_fcinfo