1
0
mirror of https://github.com/postgres/postgres.git synced 2025-06-16 06:01:02 +03:00

Allow parallel aggregate on string_agg and array_agg

This adds combine, serial and deserial functions for the array_agg() and
string_agg() aggregate functions, thus allowing these aggregates to
partake in partial aggregations.  This allows both parallel aggregation to
take place when these aggregates are present and also allows additional
partition-wise aggregation plan shapes to include plans that require
additional aggregation once the partially aggregated results from the
partitions have been combined.

Author: David Rowley
Reviewed-by: Andres Freund, Tomas Vondra, Stephen Frost, Tom Lane
Discussion: https://postgr.es/m/CAKJS1f9sx_6GTcvd6TMuZnNtCh0VhBzhX6FZqw17TgVFH-ga_A@mail.gmail.com
This commit is contained in:
David Rowley
2023-01-23 17:35:01 +13:00
parent 5a3a95385b
commit 16fd03e956
13 changed files with 1103 additions and 30 deletions

View File

@ -19746,7 +19746,7 @@ SELECT NULLIF(value, '(none)') ...
<para>
Collects all the input values, including nulls, into an array.
</para></entry>
<entry>No</entry>
<entry>Yes</entry>
</row>
<row>
@ -19759,7 +19759,7 @@ SELECT NULLIF(value, '(none)') ...
dimension. (The inputs must all have the same dimensionality, and
cannot be empty or null.)
</para></entry>
<entry>No</entry>
<entry>Yes</entry>
</row>
<row>
@ -20099,7 +20099,7 @@ SELECT NULLIF(value, '(none)') ...
after the first is preceded by the
corresponding <parameter>delimiter</parameter> (if it's not null).
</para></entry>
<entry>No</entry>
<entry>Yes</entry>
</row>
<row>