Re: pg13dev: explain partial, parallel hashagg, and memory use

David Rowley <dgrowleyml@gmail.com>

From: David Rowley <dgrowleyml@gmail.com>
To: Justin Pryzby <pryzby@telsasoft.com>
Cc: PostgreSQL-development <pgsql-hackers@postgresql.org>, Jeff Davis <jdavis@postgresql.org>
Date: 2020-08-05T05:25:25Z
Lists: pgsql-hackers

Attachments

On Wed, 5 Aug 2020 at 14:27, David Rowley <dgrowleyml@gmail.com> wrote:
>
> On Wed, 5 Aug 2020 at 14:13, Justin Pryzby <pryzby@telsasoft.com> wrote:
> > Also odd (to me).  If I encourage more workers, there are "slots" for each
> > "planned" worker, even though fewer were launched:
>
> Looking at explain.c for "num_workers; " (including the final space at
> the end), looking at each for loop that loops over each worker, quite
> a number of those locations have a condition that skips the worker.
>
> For example, show_sort_info() does
>
> if (sinstrument->sortMethod == SORT_TYPE_STILL_IN_PROGRESS)
> continue; /* ignore any unfilled slots */
>
> So maybe Hash Agg should be doing something similar.  Additionally,
> maybe it should not show the leader details if the leader didn't help.

Here's what I had in mind.

The unpatched format got even more broken with EXPLAIN (ANALYZE,
VERBOSE), so this is certainly a bug fix.

David

Commits

  1. Fix bogus EXPLAIN output for Hash Aggregate