diff options
author | Robert Haas <rhaas@postgresql.org> | 2017-11-15 08:17:29 -0500 |
---|---|---|
committer | Robert Haas <rhaas@postgresql.org> | 2017-11-15 08:23:18 -0500 |
commit | e5253fdc4f5fe2f38aec47e08c6aee93f934183d (patch) | |
tree | b32d139116adab712dea0cb4ac02a939ff4aebd6 /src/backend/executor/nodeGatherMerge.c | |
parent | 7518049980be1d90264addab003476ae105f70d4 (diff) | |
download | postgresql-e5253fdc4f5fe2f38aec47e08c6aee93f934183d.tar.gz postgresql-e5253fdc4f5fe2f38aec47e08c6aee93f934183d.zip |
Add parallel_leader_participation GUC.
Sometimes, for testing, it's useful to have the leader do nothing but
read tuples from workers; and it's possible that could work out better
even in production.
Thomas Munro, reviewed by Amit Kapila and by me. A few final tweaks
by me.
Discussion: http://postgr.es/m/CAEepm=2U++Lp3bNTv2Bv_kkr5NE2pOyHhxU=G0YTa4ZhSYhHiw@mail.gmail.com
Diffstat (limited to 'src/backend/executor/nodeGatherMerge.c')
-rw-r--r-- | src/backend/executor/nodeGatherMerge.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/backend/executor/nodeGatherMerge.c b/src/backend/executor/nodeGatherMerge.c index 5625b125210..7206ab91975 100644 --- a/src/backend/executor/nodeGatherMerge.c +++ b/src/backend/executor/nodeGatherMerge.c @@ -23,6 +23,7 @@ #include "executor/tqueue.h" #include "lib/binaryheap.h" #include "miscadmin.h" +#include "optimizer/planmain.h" #include "utils/memutils.h" #include "utils/rel.h" @@ -233,8 +234,9 @@ ExecGatherMerge(PlanState *pstate) } } - /* always allow leader to participate */ - node->need_to_scan_locally = true; + /* allow leader to participate if enabled or no choice */ + if (parallel_leader_participation || node->nreaders == 0) + node->need_to_scan_locally = true; node->initialized = true; } |