aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Rowley <drowley@postgresql.org>2020-07-01 12:16:42 +1200
committerDavid Rowley <drowley@postgresql.org>2020-07-01 12:16:42 +1200
commitd73e9a57bf5bd977d9bf36bc07c77a1acf45e35b (patch)
tree68ff04c9de25f3faf4af90e685943182f295c0c5
parent70dc45e8cb76e0c612648ccefc433b7fb2b16c2b (diff)
downloadpostgresql-d73e9a57bf5bd977d9bf36bc07c77a1acf45e35b.tar.gz
postgresql-d73e9a57bf5bd977d9bf36bc07c77a1acf45e35b.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.
-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)