diff options
author | Robert Haas <rhaas@postgresql.org> | 2017-08-29 13:12:23 -0400 |
---|---|---|
committer | Robert Haas <rhaas@postgresql.org> | 2017-08-29 13:16:55 -0400 |
commit | 3452dc5240da43e833118484e1e9b4894d04431c (patch) | |
tree | d158d5d9630d80bc8a5ca838ba76eede60c77ba9 /src/include/executor/execParallel.h | |
parent | ce5dcf54b942a469194ae390730f803b3f3fb928 (diff) | |
download | postgresql-3452dc5240da43e833118484e1e9b4894d04431c.tar.gz postgresql-3452dc5240da43e833118484e1e9b4894d04431c.zip |
Push tuple limits through Gather and Gather Merge.
If we only need, say, 10 tuples in total, then we certainly don't need
more than 10 tuples from any single process. Pushing down the limit
lets workers exit early when possible. For Gather Merge, there is
an additional benefit: a Sort immediately below the Gather Merge can
be done as a bounded sort if there is an applicable limit.
Robert Haas and Tom Lane
Discussion: http://postgr.es/m/CA+TgmoYa3QKKrLj5rX7UvGqhH73G1Li4B-EKxrmASaca2tFu9Q@mail.gmail.com
Diffstat (limited to 'src/include/executor/execParallel.h')
-rw-r--r-- | src/include/executor/execParallel.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/include/executor/execParallel.h b/src/include/executor/execParallel.h index bd0a87fa041..79b886706f7 100644 --- a/src/include/executor/execParallel.h +++ b/src/include/executor/execParallel.h @@ -33,7 +33,7 @@ typedef struct ParallelExecutorInfo } ParallelExecutorInfo; extern ParallelExecutorInfo *ExecInitParallelPlan(PlanState *planstate, - EState *estate, int nworkers); + EState *estate, int nworkers, int64 tuples_needed); extern void ExecParallelFinish(ParallelExecutorInfo *pei); extern void ExecParallelCleanup(ParallelExecutorInfo *pei); extern void ExecParallelReinitialize(ParallelExecutorInfo *pei); |