diff options
author | David Rowley <drowley@postgresql.org> | 2023-01-23 17:35:01 +1300 |
---|---|---|
committer | David Rowley <drowley@postgresql.org> | 2023-01-23 17:35:01 +1300 |
commit | 16fd03e956540d1b47b743f6a84f37c54ac93dd4 (patch) | |
tree | 5d4e04184fcc5e119b92d48529b60bc160f99633 /src/include/parser/parse_agg.h | |
parent | 5a3a95385bd5a8f1a4fd50545b7efe9338581899 (diff) | |
download | postgresql-16fd03e956540d1b47b743f6a84f37c54ac93dd4.tar.gz postgresql-16fd03e956540d1b47b743f6a84f37c54ac93dd4.zip |
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
Diffstat (limited to 'src/include/parser/parse_agg.h')
-rw-r--r-- | src/include/parser/parse_agg.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/include/parser/parse_agg.h b/src/include/parser/parse_agg.h index d07b1621ddf..e9afd99d11f 100644 --- a/src/include/parser/parse_agg.h +++ b/src/include/parser/parse_agg.h @@ -35,6 +35,8 @@ extern Oid resolve_aggregate_transtype(Oid aggfuncid, Oid *inputTypes, int numArguments); +extern bool agg_args_support_sendreceive(Aggref *aggref); + extern void build_aggregate_transfn_expr(Oid *agg_input_types, int agg_num_inputs, int agg_num_direct_inputs, |