Re: Doc: Minor update for enable_partitionwise_aggregate

From: Andrew Atkinson <andyatkinson(at)gmail(dot)com>
To: Ashutosh Bapat <ashutosh(dot)bapat(dot)oss(at)gmail(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: Doc: Minor update for enable_partitionwise_aggregate
Date: 2023-10-11 03:21:50
Message-ID: CAG6XLEnzvR2KKiJjXKfie1D65J3JLpGf3s7YseswppLWn8yLiQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Thank you for the feedback and clarifications Ashutosh. How about this?

"which allows grouping or aggregation on partitioned tables to be performed
separately for each partition."

Attached a v2 patch file with this change.

Here is a gist w/ a partitioned table and 2 partitions, comparing execution
plans after enabling the parameter, and reading the plan nodes up from the
bottom. With enable_partitionwise_aggregate = on, I can see the Partial
HashAggregate/"Group Key" on each of the two partitions (of the partitioned
table) where I don't see that when the setting is off (by default).
https://gist.github.com/andyatkinson/7af81fb8a5b9e677af6049e29ab2cb73

For the terms partitioned table vs. partitions, I used how they're
described here:
https://www.postgresql.org/docs/current/ddl-partitioning.html
- partitioned table (virtual table)
- partitions (of a partitioned table)

Thanks!
Andrew

On Tue, Oct 3, 2023 at 4:33 AM Ashutosh Bapat <ashutosh(dot)bapat(dot)oss(at)gmail(dot)com>
wrote:

> On Sun, Oct 1, 2023 at 7:38 AM Andy Atkinson <andyatkinson(at)gmail(dot)com>
> wrote:
> >
> > Hello. While reading the docs for the enable_partitionwise_aggregate
> parameter on the Query Planning page, I thought the description had a small
> mistake that could be improved.
> >
> > The current wording is: "which allows grouping or aggregation on a
> partitioned tables performed separately "
> >
> > Page: https://www.postgresql.org/docs/current/runtime-config-query.html
> >
> > I think possible better alternatives could be:
> >
> > (Option 1) a "partitioned table's partitions" (the possessive form of
> "it's"). The "enable_partition_pruning" parameter uses "the partitioned
> table's partitions" in this form. I think this option is good, but I had a
> slight preference for option 2.
> > (Option 2) Or to just cut out the first part and say "to be performed
> separately for each partition", which seemed simpler. So the sentence
> reads: "which allows grouping or aggregation to be performed separately for
> each partition"
>
> I would leave "on a partitioned table". Notice that I have removed "s"
> from tables.
>
> > (Option 3) dropping the "a" so it says "which allows grouping or
> aggregation on partitioned tables performed separately". I don't think this
> is as good though because the aggregation happens on the partitions, so it
> feels slightly off to me to say the "partitioned tables" instead of the
> partitions.
>
> It's technically incorrect as well. Aggregation is performed on a
> single relation always - a join or subquery or simple relation. A join
> may have multiple tables in it but the aggregation is performed on its
> result and not individual tables and hence not on partitions of
> individual tables.
>
> --
> Best Wishes,
> Ashutosh Bapat
>

Attachment Content-Type Size
query-planning-enable-partitionwise-aggregate-improved-wording_v2.patch application/octet-stream 926 bytes

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Noah Misch 2023-10-11 03:29:08 Re: interval_ops shall stop using btequalimage (deduplication)
Previous Message Peter Geoghegan 2023-10-11 03:12:36 Re: interval_ops shall stop using btequalimage (deduplication)