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 885da18306a..6dea65f2c02 100644
--- a/src/backend/executor/execExpr.c
+++ b/src/backend/executor/execExpr.c
@@ -2950,8 +2950,10 @@ ExecBuildAggTrans(AggState *aggstate, AggStatePerPhase phase,
scratch.resnull = &trans_fcinfo->argnull[argno + 1];
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;