aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDavid Rowley <drowley@postgresql.org>2020-07-01 12:15:59 +1200
committerDavid Rowley <drowley@postgresql.org>2020-07-01 12:15:59 +1200
commit40efbf8706cdd96e06bc4d1754272e46d9857875 (patch)
tree132692b4642540a5b3e8d0e18c33f93d8c6af516 /src
parente576f71fbe713d9357d1b480b4993043f7fcc73a (diff)
downloadpostgresql-40efbf8706cdd96e06bc4d1754272e46d9857875.tar.gz
postgresql-40efbf8706cdd96e06bc4d1754272e46d9857875.zip
Further adjustments to Hashagg EXPLAIN ANALYZE output
The "Disk Usage" and "HashAgg Batches" properties in the EXPLAIN ANALYZE output for HashAgg were previously only shown if the number of batches was greater than 0. Here we change this so that these properties are always shown for EXPLAIN ANALYZE formats other than "text". The idea here is that since the HashAgg could have spilled to disk if there had been more data or groups to aggregate, then it's relevant that we're clear in the EXPLAIN ANALYZE output when no spilling occurred in this particular execution of the given plan. For the "text" EXPLAIN format, we still hide these properties when no spilling occurs. This EXPLAIN format is designed to be easy for humans to read. To maintain the readability we have a higher threshold for which properties we display for this format. Discussion: https://postgr.es/m/CAApHDvo_dmNozQQTmN-2jGp1vT%3Ddxx7Q0vd%2BMvD1cGpv2HU%3DSg%40mail.gmail.com Backpatch-through: 13, where the hashagg spilling code was added.
Diffstat (limited to 'src')
-rw-r--r--src/backend/commands/explain.c21
1 files changed, 7 insertions, 14 deletions
diff --git a/src/backend/commands/explain.c b/src/backend/commands/explain.c
index a131d15ac0c..093864cfc04 100644
--- a/src/backend/commands/explain.c
+++ b/src/backend/commands/explain.c
@@ -3070,13 +3070,10 @@ show_hashagg_info(AggState *aggstate, ExplainState *es)
/* EXPLAIN ANALYZE */
ExplainPropertyInteger("Peak Memory Usage", "kB", memPeakKb, es);
- if (aggstate->hash_batches_used > 0)
- {
- ExplainPropertyInteger("Disk Usage", "kB",
- aggstate->hash_disk_used, es);
- ExplainPropertyInteger("HashAgg Batches", NULL,
- aggstate->hash_batches_used, es);
- }
+ ExplainPropertyInteger("Disk Usage", "kB",
+ aggstate->hash_disk_used, es);
+ ExplainPropertyInteger("HashAgg Batches", NULL,
+ aggstate->hash_batches_used, es);
}
else
{
@@ -3145,13 +3142,9 @@ show_hashagg_info(AggState *aggstate, ExplainState *es)
{
ExplainPropertyInteger("Peak Memory Usage", "kB", memPeakKb,
es);
- if (hash_batches_used > 0)
- {
- ExplainPropertyInteger("Disk Usage", "kB", hash_disk_used,
- es);
- ExplainPropertyInteger("HashAgg Batches", NULL,
- hash_batches_used, es);
- }
+ ExplainPropertyInteger("Disk Usage", "kB", hash_disk_used, es);
+ ExplainPropertyInteger("HashAgg Batches", NULL,
+ hash_batches_used, es);
}
if (es->workers_state)