diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/executor/execUtils.c | 2 | ||||
-rw-r--r-- | src/backend/executor/nodeGather.c | 7 | ||||
-rw-r--r-- | src/backend/executor/nodeGatherMerge.c | 7 | ||||
-rw-r--r-- | src/include/nodes/execnodes.h | 5 |
4 files changed, 21 insertions, 0 deletions
diff --git a/src/backend/executor/execUtils.c b/src/backend/executor/execUtils.c index 5737f9f4ebd..6712302ec8c 100644 --- a/src/backend/executor/execUtils.c +++ b/src/backend/executor/execUtils.c @@ -158,6 +158,8 @@ CreateExecutorState(void) estate->es_sourceText = NULL; estate->es_use_parallel_mode = false; + estate->es_parallel_workers_to_launch = 0; + estate->es_parallel_workers_launched = 0; estate->es_jit_flags = 0; estate->es_jit = NULL; diff --git a/src/backend/executor/nodeGather.c b/src/backend/executor/nodeGather.c index 5d4ffe989cb..7f7edc7f9fc 100644 --- a/src/backend/executor/nodeGather.c +++ b/src/backend/executor/nodeGather.c @@ -182,6 +182,13 @@ ExecGather(PlanState *pstate) /* We save # workers launched for the benefit of EXPLAIN */ node->nworkers_launched = pcxt->nworkers_launched; + /* + * Count number of workers originally wanted and actually + * launched. + */ + estate->es_parallel_workers_to_launch += pcxt->nworkers_to_launch; + estate->es_parallel_workers_launched += pcxt->nworkers_launched; + /* Set up tuple queue readers to read the results. */ if (pcxt->nworkers_launched > 0) { diff --git a/src/backend/executor/nodeGatherMerge.c b/src/backend/executor/nodeGatherMerge.c index 45f6017c29e..bc99c0b4485 100644 --- a/src/backend/executor/nodeGatherMerge.c +++ b/src/backend/executor/nodeGatherMerge.c @@ -223,6 +223,13 @@ ExecGatherMerge(PlanState *pstate) /* We save # workers launched for the benefit of EXPLAIN */ node->nworkers_launched = pcxt->nworkers_launched; + /* + * Count number of workers originally wanted and actually + * launched. + */ + estate->es_parallel_workers_to_launch += pcxt->nworkers_to_launch; + estate->es_parallel_workers_launched += pcxt->nworkers_launched; + /* Set up tuple queue readers to read the results. */ if (pcxt->nworkers_launched > 0) { diff --git a/src/include/nodes/execnodes.h b/src/include/nodes/execnodes.h index aab59d681cf..e4698a28c4f 100644 --- a/src/include/nodes/execnodes.h +++ b/src/include/nodes/execnodes.h @@ -708,6 +708,11 @@ typedef struct EState bool es_use_parallel_mode; /* can we use parallel workers? */ + int es_parallel_workers_to_launch; /* number of workers to + * launch. */ + int es_parallel_workers_launched; /* number of workers actually + * launched. */ + /* The per-query shared memory area to use for parallel execution. */ struct dsa_area *es_query_dsa; |