aboutsummaryrefslogtreecommitdiff
path: root/src/backend/executor
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/executor')
-rw-r--r--src/backend/executor/execMain.c5
-rw-r--r--src/backend/executor/execUtils.c2
-rw-r--r--src/backend/executor/nodeGather.c2
3 files changed, 4 insertions, 5 deletions
diff --git a/src/backend/executor/execMain.c b/src/backend/executor/execMain.c
index 09b8169b6c7..d8b46a11f45 100644
--- a/src/backend/executor/execMain.c
+++ b/src/backend/executor/execMain.c
@@ -1548,10 +1548,7 @@ ExecutePlan(EState *estate,
if (numberTuples || dest->mydest == DestIntoRel)
use_parallel_mode = false;
- /*
- * If a tuple count was supplied, we must force the plan to run without
- * parallelism, because we might exit early.
- */
+ estate->es_use_parallel_mode = use_parallel_mode;
if (use_parallel_mode)
EnterParallelMode();
diff --git a/src/backend/executor/execUtils.c b/src/backend/executor/execUtils.c
index a3bcb100dad..54c60a8d445 100644
--- a/src/backend/executor/execUtils.c
+++ b/src/backend/executor/execUtils.c
@@ -140,6 +140,8 @@ CreateExecutorState(void)
estate->es_epqTupleSet = NULL;
estate->es_epqScanDone = NULL;
+ estate->es_use_parallel_mode = false;
+
/*
* Return the executor state structure
*/
diff --git a/src/backend/executor/nodeGather.c b/src/backend/executor/nodeGather.c
index 7342aadfbb4..216759aeab1 100644
--- a/src/backend/executor/nodeGather.c
+++ b/src/backend/executor/nodeGather.c
@@ -150,7 +150,7 @@ ExecGather(GatherState *node)
* Sometimes we might have to run without parallelism; but if parallel
* mode is active then we can try to fire up some workers.
*/
- if (gather->num_workers > 0 && IsInParallelMode())
+ if (gather->num_workers > 0 && estate->es_use_parallel_mode)
{
ParallelContext *pcxt;