aboutsummaryrefslogtreecommitdiff
path: root/src/backend/executor
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/executor')
-rw-r--r--src/backend/executor/execExpr.c20
1 files changed, 6 insertions, 14 deletions
diff --git a/src/backend/executor/execExpr.c b/src/backend/executor/execExpr.c
index 766dbbb0740..5a84742d149 100644
--- a/src/backend/executor/execExpr.c
+++ b/src/backend/executor/execExpr.c
@@ -1385,20 +1385,12 @@ ExecInitExprRec(Expr *node, PlanState *parent, ExprState *state,
state->steps[whenstep].d.jump.jumpdone = state->steps_len;
}
- if (caseExpr->defresult)
- {
- /* evaluate ELSE expr into CASE's result variables */
- ExecInitExprRec(caseExpr->defresult, parent, state,
- resv, resnull);
- }
- else
- {
- /* default ELSE is to return NULL */
- scratch.opcode = EEOP_CONST;
- scratch.d.constval.value = (Datum) 0;
- scratch.d.constval.isnull = true;
- ExprEvalPushStep(state, &scratch);
- }
+ /* transformCaseExpr always adds a default */
+ Assert(caseExpr->defresult);
+
+ /* evaluate ELSE expr into CASE's result variables */
+ ExecInitExprRec(caseExpr->defresult, parent, state,
+ resv, resnull);
/* adjust jump targets */
foreach(lc, adjust_jumps)