postgres.git / summary / log / commit / refs

commit    2a2494229a709b880a6db82d8b267017fccf671f
Author:   Amit Kapila <akapila@postgresql.org>
Date:     Sat Jul 25 04:50:39 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: 79d6d1a277ee]