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
This commit is contained in:
Robert Haas 2016-03-29 15:21:57 -04:00
parent 5fe5a2cee9
commit 96f8373cad
1 changed files with 4 additions and 5 deletions

View File

@ -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