Re: Parallel Aggregates for string_agg and array_agg
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Andres Freund <andres@anarazel.de>
Cc: Mark Dilger <hornschnorter@gmail.com>,
David Rowley <david.rowley@2ndquadrant.com>,
Alvaro Herrera <alvherre@alvh.no-ip.org>,
Stephen Frost <sfrost@snowman.net>,
Tomas Vondra <tomas.vondra@2ndquadrant.com>,
PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2018-05-01T21:16:16Z
Lists: pgsql-hackers
Andres Freund <andres@anarazel.de> writes: > On 2018-05-01 14:09:39 -0700, Mark Dilger wrote: >> I don't care which order the data is in, as long as x[i] and y[i] are >> matched correctly. It sounds like this patch would force me to write >> that as, for example: >> >> select array_agg(a order by a, b) AS x, array_agg(b order by a, b) AS y >> from generate_a_b_func(foo); >> >> which I did not need to do before. > Why would it require that? Rows are still processed row-by-row even if > there's parallelism, no? Yeah, as long as we distribute all the aggregates in the same way, it seems like they'd all see the same random-ish input ordering. I can vaguely conceive of future optimizations that might break that, but not what we have today. regards, tom lane
Commits
-
Fix unstable aggregate regression test
- f5d0e866404a 16.3 landed
- d6a6957d53e3 17.0 landed
-
Allow parallel aggregate on string_agg and array_agg
- 16fd03e95654 16.0 landed
-
Improve performance of ORDER BY / DISTINCT aggregates
- 1349d2790bf4 16.0 cited
-
Support ORDER BY within aggregate function calls, at long last providing a
- 34d26872ed81 9.0.0 cited
-
Fix broken markup.
- 6a6efb964092 9.0.0 cited