postgres.git / summary / log / commit / refs

commit    f963b5bc028df73ffcc5a391c6ddd998921c3fad
Author:   Amit Kapila <akapila@postgresql.org>
Date:     Sat Jul 25 05:27:20 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 d87fb05abfb..ed78cf82c10 100644 --- a/src/backend/executor/execProcnode.c +++ b/src/backend/executor/execProcnode.c @@ -731,8 +731,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 @@ -746,6 +744,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: d8ec3b1263d2]