]> granicus.if.org Git - postgresql/commit
Treat aggregate direct arguments as per-agg data not per-trans data.
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 16 Oct 2017 20:02:51 +0000 (16:02 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 16 Oct 2017 20:02:51 +0000 (16:02 -0400)
commitcf5ba7c30c0428f5ff49197ec1e0f052035300d6
tree7447b1b9af16972127f7f12e83f76e45ebcc51dc
parentbe0ebb65f51225223421df6e10eb6e87fc8264d7
Treat aggregate direct arguments as per-agg data not per-trans data.

There is no reason to insist that direct arguments must match before
we can merge transition states of two aggregate calls.  They're only
used during the finalfn call, so we can treat them as like the finalfn
itself.  This allows, eg, merging of

select
  percentile_cont(0.25) within group (order by a),
  percentile_disc(0.5) within group (order by a)
from ...

This didn't matter (and could not have been tested) before we allowed
state merging of OSAs otherwise.

Discussion: https://postgr.es/m/CAB4ELO5RZhOamuT9Xsf72ozbenDLLXZKSk07FiSVsuJNZB861A@mail.gmail.com
src/backend/executor/nodeAgg.c