From 96f8373cad5d6066baeb7a1c5a88f6f5c9661974 Mon Sep 17 00:00:00 2001 From: Robert Haas Date: Tue, 29 Mar 2016 15:21:57 -0400 Subject: Fix bug in aggregate (de)serialization commit. resulttypeLen and resulttypeByVal must be set correctly when serializing aggregates, not just when finalizing them. This was in David's final patch but I downloaded the wrong version by mistake and failed to spot the error. David Rowley --- src/backend/executor/nodeAgg.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'src/backend/executor/nodeAgg.c') diff --git a/src/backend/executor/nodeAgg.c b/src/backend/executor/nodeAgg.c index aba54195a30..614b26b8e3c 100644 --- a/src/backend/executor/nodeAgg.c +++ b/src/backend/executor/nodeAgg.c @@ -2862,11 +2862,10 @@ ExecInitAgg(Agg *node, EState *estate, int eflags) fmgr_info_set_expr((Node *) finalfnexpr, &peragg->finalfn); } - /* when finalizing we get info about the final result's datatype */ - if (aggstate->finalizeAggs) - get_typlenbyval(aggref->aggtype, - &peragg->resulttypeLen, - &peragg->resulttypeByVal); + /* get info about the output value's datatype */ + get_typlenbyval(aggref->aggoutputtype, + &peragg->resulttypeLen, + &peragg->resulttypeByVal); /* * initval is potentially null, so don't try to access it as a struct -- cgit v1.2.3