PostgreSQL Source Code: src/include/executor/execExpr.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13
14#ifndef EXEC_EXPR_H
15#define EXEC_EXPR_H
16
20
21
26
27
28
29#define EEO_FLAG_INTERPRETER_INITIALIZED (1 << 5)
30
31#define EEO_FLAG_DIRECT_THREADED (1 << 6)
32
33
37
38
42
43
44
46{
47
48
49
50
51
52
56
57
58
59
60
61
62
63
64
65
67{
68
70
71
73
74
80
81
87
88
94
95
97
98
99
100
101
102
108
109
111
113
114
116
117
118
119
120
121
128
129
130
131
132
133
134
138
139
143
144
146
147
149
150
152
153
157
158
161
162
165
166
171
172
176
178
179
182
183
185
186
199
200
201
202
203
205
206
208
209
211
212
214
215
216
217
218
220
221
222
223
224
225
227
228
230
231
232
233
234
235
237
238
240
241
243
244
247
248
250
251
253
254
260
261
276
277
294
295
298
299
301{
302
303
304
305
306
308
309
312
313
314
315
316
317
318
319 union
320 {
321
322 struct
323 {
324
326
328
330
333
334
335 struct
336 {
337
338
343
344
345 struct
346 {
353
354
355 struct
356 {
357
359
362
363
364 struct
365 {
366
369
370
371 struct
372 {
376
377
378 struct
379 {
380
384
385
386 struct
387 {
390
395
396
397 struct
398 {
400 int jumpdone;
402
403
404 struct
405 {
406 int jumpdone;
408
409
410 struct
411 {
412 int jumpdone;
414
415
416 struct
417 {
418
421
422
423 struct
424 {
428
429
430 struct
431 {
435 int paramid;
438
439
440 struct
441 {
445
446
447 struct
448 {
452
453
454 struct
455 {
456
459
463
464
465 struct
466 {
469
470
471 struct
472 {
476
477
478 struct
479 {
489
490
491 struct
492 {
497
498
499 struct
500 {
502
506
507
508 struct
509 {
510
514
516
519
520
521 struct
522 {
525
526
527 struct
528 {
529
533
535
539
540
541 struct
542 {
545
548
549
550 struct
551 {
552
554
555
556
558
559
564
565
566 struct
567 {
569
571 int jumpdone;
573
574
575 struct
576 {
578
581
582
583 struct
584 {
585
587
590
594
595
596 struct
597 {
599
601
602
603 struct
604 {
607
609 int jumpdone;
612
613
614 struct
615 {
618
623
624
625 struct
626 {
627
635
638
639
640 struct
641 {
649
650
651 struct
652 {
654
657
661
662
663 struct
664 {
667
668
669 struct
670 {
673
674
675 struct
676 {
679
680
681 struct
682 {
683
686
687
688 struct
689 {
690
693
694
695 struct
696 {
700
701
702 struct
703 {
704
705
706
707
708
709
710
711
712
713
714
720
721
722 struct
723 {
727
728
729 struct
730 {
735
736
737
738 struct
739 {
746
747
748 struct
749 {
752
753
754 struct
755 {
758
759
760 struct
761 {
765
774
775
777 "size of ExprEvalStep exceeds 64 bytes");
778
779
780
782{
783 bool isassignment;
784
785
787
788
789
791 bool *upperprovided;
794
795
800
801
804
805
809
810
812{
813
819
820
822{
827 struct
828 {
834
835
836
838
839
842
845
846
847
848
849
850
905
909 Datum newValue, bool newValueIsNull,
910 Datum oldValue, bool oldValueIsNull);
919
920#endif
void ExecEvalParamExtern(ExprState *state, ExprEvalStep *op, ExprContext *econtext)
void ExecEvalFieldStoreForm(ExprState *state, ExprEvalStep *op, ExprContext *econtext)
void ExecEvalGroupingFunc(ExprState *state, ExprEvalStep *op)
struct SubscriptExecSteps SubscriptExecSteps
void ExecEvalRow(ExprState *state, ExprEvalStep *op)
void ExecEvalFieldStoreDeForm(ExprState *state, ExprEvalStep *op, ExprContext *econtext)
void ExecEvalCurrentOfExpr(ExprState *state, ExprEvalStep *op)
void ExecEvalSQLValueFunction(ExprState *state, ExprEvalStep *op)
void ExecEvalRowNull(ExprState *state, ExprEvalStep *op, ExprContext *econtext)
struct SubscriptingRefState SubscriptingRefState
void ExecEvalArrayExpr(ExprState *state, ExprEvalStep *op)
void ExecEvalParamSet(ExprState *state, ExprEvalStep *op, ExprContext *econtext)
void ExecEvalCoerceViaIOSafe(ExprState *state, ExprEvalStep *op)
Datum ExecInterpExprStillValid(ExprState *state, ExprContext *econtext, bool *isNull)
void ExecEvalConvertRowtype(ExprState *state, ExprEvalStep *op, ExprContext *econtext)
bool ExecEvalPreOrderedDistinctMulti(AggState *aggstate, AggStatePerTrans pertrans)
void ExecEvalFieldSelect(ExprState *state, ExprEvalStep *op, ExprContext *econtext)
int ExecEvalJsonExprPath(ExprState *state, ExprEvalStep *op, ExprContext *econtext)
void ExecEvalConstraintNotNull(ExprState *state, ExprEvalStep *op)
void ExprEvalPushStep(ExprState *es, const ExprEvalStep *s)
void ExecEvalScalarArrayOp(ExprState *state, ExprEvalStep *op)
void ExecEvalAggOrderedTransDatum(ExprState *state, ExprEvalStep *op, ExprContext *econtext)
void ExecEvalParamExec(ExprState *state, ExprEvalStep *op, ExprContext *econtext)
void ExecEvalJsonCoercion(ExprState *state, ExprEvalStep *op, ExprContext *econtext)
struct ExprEvalRowtypeCache ExprEvalRowtypeCache
void ExecAggInitGroup(AggState *aggstate, AggStatePerTrans pertrans, AggStatePerGroup pergroup, ExprContext *aggcontext)
void ExecEvalNextValueExpr(ExprState *state, ExprEvalStep *op)
void ExecEvalSysVar(ExprState *state, ExprEvalStep *op, ExprContext *econtext, TupleTableSlot *slot)
void ExecEvalMinMax(ExprState *state, ExprEvalStep *op)
void ExecEvalSubPlan(ExprState *state, ExprEvalStep *op, ExprContext *econtext)
void ExecEvalJsonIsPredicate(ExprState *state, ExprEvalStep *op)
bool(* ExecEvalBoolSubroutine)(ExprState *state, struct ExprEvalStep *op, ExprContext *econtext)
Datum ExecAggCopyTransValue(AggState *aggstate, AggStatePerTrans pertrans, Datum newValue, bool newValueIsNull, Datum oldValue, bool oldValueIsNull)
struct ExprEvalStep ExprEvalStep
void ExecEvalMergeSupportFunc(ExprState *state, ExprEvalStep *op, ExprContext *econtext)
void CheckExprStillValid(ExprState *state, ExprContext *econtext)
void ExecEvalJsonConstructor(ExprState *state, ExprEvalStep *op, ExprContext *econtext)
void ExecEvalWholeRowVar(ExprState *state, ExprEvalStep *op, ExprContext *econtext)
void ExecEvalHashedScalarArrayOp(ExprState *state, ExprEvalStep *op, ExprContext *econtext)
void ExecEvalJsonCoercionFinish(ExprState *state, ExprEvalStep *op)
void ExecReadyInterpretedExpr(ExprState *state)
void ExecEvalRowNotNull(ExprState *state, ExprEvalStep *op, ExprContext *econtext)
ExprEvalOp ExecEvalStepOp(ExprState *state, ExprEvalStep *op)
void(* ExecEvalSubroutine)(ExprState *state, struct ExprEvalStep *op, ExprContext *econtext)
@ EEOP_FUNCEXPR_STRICT_FUSAGE
@ EEOP_HASHDATUM_NEXT32_STRICT
@ EEOP_JSONEXPR_COERCION_FINISH
@ EEOP_HASHDATUM_FIRST_STRICT
@ EEOP_AGG_PLAIN_PERGROUP_NULLCHECK
@ EEOP_AGG_STRICT_DESERIALIZE
@ EEOP_BOOLTEST_IS_NOT_FALSE
@ EEOP_AGG_PLAIN_TRANS_BYREF
@ EEOP_AGG_PRESORTED_DISTINCT_MULTI
@ EEOP_AGG_PLAIN_TRANS_BYVAL
@ EEOP_NULLTEST_ROWISNOTNULL
@ EEOP_ASSIGN_TMP_MAKE_RO
@ EEOP_BOOL_OR_STEP_FIRST
@ EEOP_AGG_STRICT_INPUT_CHECK_NULLS
@ EEOP_AGG_STRICT_INPUT_CHECK_ARGS_1
@ EEOP_AGG_STRICT_INPUT_CHECK_ARGS
@ EEOP_NULLTEST_ROWISNULL
@ EEOP_NULLTEST_ISNOTNULL
@ EEOP_MERGE_SUPPORT_FUNC
@ EEOP_AGG_PRESORTED_DISTINCT_SINGLE
@ EEOP_BOOL_AND_STEP_FIRST
@ EEOP_DOMAIN_TESTVAL_EXT
@ EEOP_BOOL_AND_STEP_LAST
@ EEOP_AGG_ORDERED_TRANS_DATUM
@ EEOP_HASHDATUM_SET_INITVAL
@ EEOP_AGG_PLAIN_TRANS_STRICT_BYREF
@ EEOP_BOOLTEST_IS_NOT_TRUE
@ EEOP_AGG_PLAIN_TRANS_INIT_STRICT_BYVAL
@ EEOP_AGG_PLAIN_TRANS_STRICT_BYVAL
@ EEOP_AGG_PLAIN_TRANS_INIT_STRICT_BYREF
@ EEOP_HASHED_SCALARARRAYOP
@ EEOP_AGG_ORDERED_TRANS_TUPLE
void ExecEvalConstraintCheck(ExprState *state, ExprEvalStep *op)
StaticAssertDecl(sizeof(ExprEvalStep)<=64, "size of ExprEvalStep exceeds 64 bytes")
void ExecEvalArrayCoerce(ExprState *state, ExprEvalStep *op, ExprContext *econtext)
void ExecEvalFuncExprStrictFusage(ExprState *state, ExprEvalStep *op, ExprContext *econtext)
void ExecEvalFuncExprFusage(ExprState *state, ExprEvalStep *op, ExprContext *econtext)
void ExecEvalXmlExpr(ExprState *state, ExprEvalStep *op)
bool ExecEvalPreOrderedDistinctSingle(AggState *aggstate, AggStatePerTrans pertrans)
struct JsonConstructorExprState JsonConstructorExprState
void ExecEvalAggOrderedTransTuple(ExprState *state, ExprEvalStep *op, ExprContext *econtext)
Datum(* PGFunction)(FunctionCallInfo fcinfo)
ExprState * elemexprstate
struct ExprEvalStep::@55::@94 grouping_func
struct ExprEvalStep::@55::@66 jump
WindowFuncExprState * wfstate
void * json_coercion_cache
ExecEvalBoolSubroutine subscriptfunc
ExprEvalRowtypeCache * rowcache
struct ExprEvalStep::@55::@81 fieldselect
struct ExprEvalStep::@55::@90 hashedscalararrayop
struct ExprEvalStep::@55::@92 json_constructor
struct ExprEvalStep::@55::@60 assign_tmp
struct ExprEvalStep::@55::@71 make_readonly
struct ExprEvalStep::@55::@57 var
struct ExprEvalStep::@55::@82 fieldstore
struct ExprEvalStep::@55::@85 domaincheck
struct ExprEvalStep::@55::@102 is_json
struct ScalarArrayOpExprHashTable * elements_tab
struct SubscriptingRefState * state
VarReturningType varreturningtype
AggStatePerTrans pertrans
struct ExprEvalStep::@55::@104 jsonexpr_coercion
struct ExprEvalStep::@55::@78 rowcompare_step
struct ExprEvalStep::@55::@83 sbsref_subscript
struct JsonExprState * jsestate
struct ExprEvalStep::@55::@91 xmlexpr
struct ExprEvalStep::@55::@84 sbsref
struct ExprEvalStep::@55::@67 nulltest_row
struct ExprEvalStep::@55::@69 cparam
ExecEvalSubroutine paramfunc
FunctionCallInfo fcinfo_data_in
struct ExprEvalStep::@55::@77 row
ExprEvalRowtypeCache * incache
struct ExprEvalStep::@55::@103 jsonexpr
struct ExprEvalStep::@55::@74 nextvalueexpr
struct ExprEvalStep::@55::@86 hashdatum_initvalue
const TupleTableSlotOps * kind
struct ExprEvalStep::@55::@99 agg_plain_pergroup_nullcheck
struct ExprEvalStep::@55::@62 constval
FunctionCallInfo fcinfo_data
struct ExprEvalStep::@55::@93 aggref
struct ExprEvalStep::@55::@97 agg_deserialize
struct ExprEvalStep::@55::@95 window_func
struct ExprEvalStep::@55::@61 returningexpr
struct ExprEvalStep::@55::@72 iocoerce
ErrorSaveContext * escontext
union ExprEvalStep::@55 d
struct ExprEvalStep::@55::@98 agg_strict_input_check
struct ExprEvalStep::@55::@80 minmax
struct ExprEvalStep::@55::@88 convert_rowtype
struct ExprEvalStep::@55::@79 rowcompare_final
struct ExprEvalStep::@55::@70 casetest
struct ExprEvalStep::@55::@75 arrayexpr
struct ExprEvalStep::@55::@89 scalararrayop
struct ExprEvalStep::@55::@100 agg_presorted_distinctcheck
struct ExprEvalStep::@55::@65 qualexpr
struct ExprEvalStep::@55::@58 wholerow
struct ExprEvalStep::@55::@101 agg_trans
FunctionCallInfo fcinfo_data_out
ExecEvalSubroutine subscriptfunc
ExprEvalRowtypeCache * outcache
struct ExprEvalStep::@55::@68 param
struct ExprEvalStep::@55::@87 hashdatum
struct ExprEvalStep::@55::@96 subplan
struct ExprEvalStep::@55::@63 func
struct ExprEvalStep::@55::@73 sqlvaluefunction
struct ExprEvalStep::@55::@64 boolexpr
ExprEvalRowtypeCache rowcache
struct JsonConstructorExprState * jcstate
struct ExprEvalStep::@55::@56 fetch
struct ExprEvalStep::@55::@59 assign_var
struct ArrayMapState * amstate
struct ExprEvalStep::@55::@76 arraycoerce
JsonConstructorExpr * constructor
struct JsonConstructorExprState::@105 * arg_type_cache
ExecEvalSubroutine sbs_fetch_old
ExecEvalBoolSubroutine sbs_check_subscripts
ExecEvalSubroutine sbs_assign
ExecEvalSubroutine sbs_fetch