Fix sharing Agg transition state of DISTINCT or ordered aggs. If a query contained two aggregates that could share the transition value, we would correctly collect the input into a tuplesort only once, but incorrectly run the transition function over the accumulated input twice, in finalize_aggregates(). That caused a crash, when we tried to call tuplesort_performsort() on an already-freed NULL tuplestore.
Backport to 9.6, where sharing of transition state and this bug were introduced. Analysis by Tom Lane. Discussion: https://www.postgresql.org/message-id/[email protected] Branch ------ REL9_6_STABLE Details ------- http://git.postgresql.org/pg/commitdiff/ce92fc4e2540d0ce554e498adb27f0ef29199b94 Modified Files -------------- src/backend/executor/nodeAgg.c | 21 ++++++++++++++++++--- src/test/regress/expected/aggregates.out | 9 +++++++++ src/test/regress/sql/aggregates.sql | 3 +++ 3 files changed, 30 insertions(+), 3 deletions(-) -- Sent via pgsql-committers mailing list ([email protected]) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-committers
