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-05T02:27:26Z
Lists: pgsql-hackers
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.

David



Commits

  1. Fix bogus EXPLAIN output for Hash Aggregate