On 20 January 2017 at 00:22, Antonin Houska <a...@cybertec.at> wrote: > Sorry, it was my thinko - I somehow confused David's CROSS JOIN example with > this one. If one side of the join clause is unique and the other becomes > unique due to aggregation (and if parallel processing is not engaged) then > neither combinefn nor multiplyfn should be necessary before the finalfn.
Yes, if the join can be detected not to duplicate the groups then a normal aggregate node can be pushed below the join. No need for Partial Aggregate, or Finalize Aggregate nodes. I've a pending patch in the commitfest named "Unique Joins", which aims teach the planner about the unique properties of joins. So you should just have both stages of aggregation occur for now, and that can be improved on once the planner is a bit smart and knows about unique joins. -- David Rowley http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services -- Sent via pgsql-hackers mailing list (email@example.com) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers