postgres.git / summary / log / commit / refs

commit    40efbf8706cdd96e06bc4d1754272e46d9857875
Author:   David Rowley <drowley@postgresql.org>
Date:     Wed Jul 01 00:15:59 2020 +0000
First released in: 14.0, 13.0

    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.


src/backend/commands/explain.c | 21 +++++++-------------- 1 file 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) [parent: e576f71fbe71]