From fd59b29c873915064f7af6a33c968c97e0d59166 Mon Sep 17 00:00:00 2001 From: Andres Freund Date: Sat, 3 Nov 2018 14:35:23 -0700 Subject: Fix STRICT check for strict aggregates with NULL ORDER BY columns. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I (Andres) broke this unintentionally in 69c3936a14, by checking strictness for all input expressions computed for an aggregate, rather than just the input for the aggregate transition function. Reported-By: Ondřej Bouda Bisected-By: Tom Lane Diagnosed-By: Andrew Gierth Discussion: https://postgr.es/m/2a505161-2727-2473-7c46-591ed108ac52@email.cz Backpatch: 11-, like 69c3936a14 --- src/backend/executor/execExpr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/backend/executor') diff --git a/src/backend/executor/execExpr.c b/src/backend/executor/execExpr.c index c5e8634aeda..5397de4e050 100644 --- a/src/backend/executor/execExpr.c +++ b/src/backend/executor/execExpr.c @@ -3028,7 +3028,7 @@ ExecBuildAggTrans(AggState *aggstate, AggStatePerPhase phase, scratch.opcode = EEOP_AGG_STRICT_INPUT_CHECK; scratch.d.agg_strict_input_check.nulls = strictnulls; scratch.d.agg_strict_input_check.jumpnull = -1; /* adjust later */ - scratch.d.agg_strict_input_check.nargs = numInputs; + scratch.d.agg_strict_input_check.nargs = pertrans->numTransInputs; ExprEvalPushStep(state, &scratch); adjust_bailout = lappend_int(adjust_bailout, state->steps_len - 1); -- cgit v1.2.3