aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/backend/executor/execExpr.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/backend/executor/execExpr.c b/src/backend/executor/execExpr.c
index ea35103dd68..d8cd2b4c5f3 100644
--- a/src/backend/executor/execExpr.c
+++ b/src/backend/executor/execExpr.c
@@ -3046,8 +3046,10 @@ ExecBuildAggTrans(AggState *aggstate, AggStatePerPhase phase,
scratch.resnull = &trans_fcinfo->args[argno + 1].isnull;
ExprEvalPushStep(state, &scratch);
- adjust_bailout = lappend_int(adjust_bailout,
- state->steps_len - 1);
+ /* don't add an adjustment unless the function is strict */
+ if (pertrans->deserialfn.fn_strict)
+ adjust_bailout = lappend_int(adjust_bailout,
+ state->steps_len - 1);
/* restore normal settings of scratch fields */
scratch.resvalue = &state->resvalue;