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