From: | David Rowley <drowley(at)postgresql(dot)org> |
---|---|
To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
Subject: | pgsql: Allow parallel aggregate on string_agg and array_agg |
Date: | 2023-01-23 04:35:40 |
Message-ID: | E1pJoYV-0050rd-SN@gemulon.postgresql.org |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
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
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/16fd03e956540d1b47b743f6a84f37c54ac93dd4
Modified Files
--------------
doc/src/sgml/func.sgml | 6 +-
src/backend/optimizer/prep/prepagg.c | 28 +-
src/backend/parser/parse_agg.c | 37 +-
src/backend/utils/adt/array_userfuncs.c | 624 +++++++++++++++++++++++++++++++
src/backend/utils/adt/arrayfuncs.c | 20 +-
src/backend/utils/adt/varlena.c | 207 +++++++++-
src/include/catalog/catversion.h | 2 +-
src/include/catalog/pg_aggregate.dat | 13 +-
src/include/catalog/pg_proc.dat | 27 ++
src/include/parser/parse_agg.h | 2 +
src/include/utils/array.h | 3 +
src/test/regress/expected/aggregates.out | 98 +++++
src/test/regress/sql/aggregates.sql | 62 +++
13 files changed, 1101 insertions(+), 28 deletions(-)
From | Date | Subject | |
---|---|---|---|
Next Message | Michael Paquier | 2023-01-23 04:59:52 | pgsql: pg_walinspect: Add pg_get_wal_fpi_info() |
Previous Message | Tom Lane | 2023-01-22 19:08:57 | pgsql: Track logrep apply workers' last start times to avoid useless wa |