Re: Parallel Aggregation support for aggregate functions that use transitions not implemented for array_agg

From: Andres Freund <andres(at)anarazel(dot)de>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com>, Regina Obe <lr(at)pcorp(dot)us>, 'PostgreSQL-development' <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Parallel Aggregation support for aggregate functions that use transitions not implemented for array_agg
Date: 2017-06-07 04:06:13
Message-ID: 20170607040613.y23jt5n7hfwm4suz@alap3.anarazel.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 2017-06-07 00:03:15 -0400, Tom Lane wrote:
> Andres Freund <andres(at)anarazel(dot)de> writes:
> > On 2017-06-06 23:32:53 -0400, Peter Eisentraut wrote:
> >> I'm not sure how you would parallelize these, since in most uses you
> >> want to have a deterministic output order.
>
> > Unless you specify ORDER BY you don't really have that anyway, consider
> > hash-aggregation. If you want deterministic order, you really need an
> > ORDER BY inside the aggregate.
>
> Hash aggregation does not destroy the property that array_agg/string_agg
> will produce results whose components appear in the order that the
> subquery emitted them in. It only causes the various aggregate results
> in a GROUP BY query to themselves appear in random order.

Whoa, I obviously should stop working tonight. I think it's still a
hugely useful to parallelize such aggregates - it might be worthwhile to
have two versions of array_agg, one with a serial/combinefunc and one
without...

Greetings,

Andres Freund

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message amul sul 2017-06-07 04:53:17 Re: Adding support for Default partition in partitioning
Previous Message Tom Lane 2017-06-07 04:03:15 Re: Parallel Aggregation support for aggregate functions that use transitions not implemented for array_agg