postgres.git / summary / log / commit / refs

commit    b15367ae39402eb4eb8736f9c38c607995c82bb2
Author:   Amit Kapila <akapila@postgresql.org>
Date:     Sat Jul 25 05:01:19 2020 +0000
First released in: 14.0, 10.14, 11.9, 12.4, 13.0

    Fix buffer usage stats for nodes above Gather Merge.
    
    Commit 85c9d347 addressed a similar problem for Gather and Gather
    Merge nodes but forgot to account for nodes above parallel nodes.  This
    still works for nodes above Gather node because we shut down the workers
    for Gather node as soon as there are no more tuples.  We can do a similar
    thing for Gather Merge as well but it seems better to account for stats
    during nodes shutdown after completing the execution.
    
    Reported-by: Stéphane Lorek, Jehan-Guillaume de Rorthais
    Author: Jehan-Guillaume de Rorthais <jgdr@dalibo.com>
    Reviewed-by: Amit Kapila
    Backpatch-through: 10, where it was introduced
    Discussion: https://postgr.es/m/20200718160206.584532a2@firost


src/backend/executor/execProcnode.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/backend/executor/execProcnode.c b/src/backend/executor/execProcnode.c index 5662e7d7421..01b7b926bf7 100644 --- a/src/backend/executor/execProcnode.c +++ b/src/backend/executor/execProcnode.c @@ -755,8 +755,6 @@ ExecShutdownNode(PlanState *node) check_stack_depth(); - planstate_tree_walker(node, ExecShutdownNode, NULL); - /* * Treat the node as running while we shut it down, but only if it's run * at least once already. We don't expect much CPU consumption during @@ -770,6 +768,8 @@ ExecShutdownNode(PlanState *node) if (node->instrument && node->instrument->running) InstrStartNode(node->instrument); + planstate_tree_walker(node, ExecShutdownNode, NULL); + switch (nodeTag(node)) { case T_GatherState: [parent: 70eca6a9a6df]