MCPcopy Create free account
hub / github.com/apache/cloudberry / ExecInterpExpr

Function ExecInterpExpr

src/backend/executor/execExprInterp.c:394–1877  ·  view source on GitHub ↗

* Evaluate expression identified by "state" in the execution context * given by "econtext". *isnull is set to the is-null flag for the result, * and the Datum value is the function result. * * As a special case, return the dispatch table's address if state is NULL. * This is used by ExecInitInterpreter to set up the dispatch_table global. * (Only applies when EEO_USE_COMPUTED_GOTO is define

Source from the content-addressed store, hash-verified

392 * (Only applies when EEO_USE_COMPUTED_GOTO is defined.)
393 */
394static Datum
395ExecInterpExpr(ExprState *state, ExprContext *econtext, bool *isnull)
396{
397 ExprEvalStep *op;
398 TupleTableSlot *resultslot;
399 TupleTableSlot *innerslot;
400 TupleTableSlot *outerslot;
401 TupleTableSlot *scanslot;
402
403 /*
404 * This array has to be in the same order as enum ExprEvalOp.
405 */
406#if defined(EEO_USE_COMPUTED_GOTO)
407 static const void *const dispatch_table[] = {
408 &&CASE_EEOP_DONE,
409 &&CASE_EEOP_INNER_FETCHSOME,
410 &&CASE_EEOP_OUTER_FETCHSOME,
411 &&CASE_EEOP_SCAN_FETCHSOME,
412 &&CASE_EEOP_INNER_VAR,
413 &&CASE_EEOP_OUTER_VAR,
414 &&CASE_EEOP_SCAN_VAR,
415 &&CASE_EEOP_INNER_SYSVAR,
416 &&CASE_EEOP_OUTER_SYSVAR,
417 &&CASE_EEOP_SCAN_SYSVAR,
418 &&CASE_EEOP_WHOLEROW,
419 &&CASE_EEOP_ASSIGN_INNER_VAR,
420 &&CASE_EEOP_ASSIGN_OUTER_VAR,
421 &&CASE_EEOP_ASSIGN_SCAN_VAR,
422 &&CASE_EEOP_ASSIGN_TMP,
423 &&CASE_EEOP_ASSIGN_TMP_MAKE_RO,
424 &&CASE_EEOP_CONST,
425 &&CASE_EEOP_FUNCEXPR,
426 &&CASE_EEOP_FUNCEXPR_STRICT,
427 &&CASE_EEOP_FUNCEXPR_FUSAGE,
428 &&CASE_EEOP_FUNCEXPR_STRICT_FUSAGE,
429 &&CASE_EEOP_BOOL_AND_STEP_FIRST,
430 &&CASE_EEOP_BOOL_AND_STEP,
431 &&CASE_EEOP_BOOL_AND_STEP_LAST,
432 &&CASE_EEOP_BOOL_OR_STEP_FIRST,
433 &&CASE_EEOP_BOOL_OR_STEP,
434 &&CASE_EEOP_BOOL_OR_STEP_LAST,
435 &&CASE_EEOP_BOOL_NOT_STEP,
436 &&CASE_EEOP_QUAL,
437 &&CASE_EEOP_JUMP,
438 &&CASE_EEOP_JUMP_IF_NULL,
439 &&CASE_EEOP_JUMP_IF_NOT_NULL,
440 &&CASE_EEOP_JUMP_IF_NOT_TRUE,
441 &&CASE_EEOP_NULLTEST_ISNULL,
442 &&CASE_EEOP_NULLTEST_ISNOTNULL,
443 &&CASE_EEOP_NULLTEST_ROWISNULL,
444 &&CASE_EEOP_NULLTEST_ROWISNOTNULL,
445 &&CASE_EEOP_BOOLTEST_IS_TRUE,
446 &&CASE_EEOP_BOOLTEST_IS_NOT_TRUE,
447 &&CASE_EEOP_BOOLTEST_IS_FALSE,
448 &&CASE_EEOP_BOOLTEST_IS_NOT_FALSE,
449 &&CASE_EEOP_PARAM_EXEC,
450 &&CASE_EEOP_PARAM_EXTERN,
451 &&CASE_EEOP_PARAM_CALLBACK,

Callers 1

ExecInitInterpreterFunction · 0.85

Calls 15

CheckOpSlotCompatibilityFunction · 0.85
slot_getsomeattrsFunction · 0.85
ExecEvalSysVarFunction · 0.85
ExecEvalWholeRowVarFunction · 0.85
ExecEvalFuncExprFusageFunction · 0.85
DatumGetBoolFunction · 0.85
BoolGetDatumFunction · 0.85
ExecEvalRowNullFunction · 0.85
ExecEvalRowNotNullFunction · 0.85
ExecEvalParamExecFunction · 0.85

Tested by

no test coverage detected