pgsql: Push tuple limits through Gather and Gather Merge.

From: Robert Haas <rhaas(at)postgresql(dot)org>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Push tuple limits through Gather and Gather Merge.
Date: 2017-08-29 17:20:09
Message-ID: E1dmkBN-0005nU-7u@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

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

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/3452dc5240da43e833118484e1e9b4894d04431c

Modified Files
--------------
src/backend/executor/execParallel.c | 54 +++++++++---
src/backend/executor/execProcnode.c | 121 ++++++++++++++++++++++++++
src/backend/executor/nodeGather.c | 4 +-
src/backend/executor/nodeGatherMerge.c | 4 +-
src/backend/executor/nodeLimit.c | 98 ++++-----------------
src/include/executor/execParallel.h | 2 +-
src/include/executor/executor.h | 1 +
src/include/nodes/execnodes.h | 2 +
src/test/regress/expected/select_parallel.out | 24 ++++-
src/test/regress/sql/select_parallel.sql | 9 +-
10 files changed, 222 insertions(+), 97 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Robert Haas 2017-08-29 17:32:12 pgsql: Propagate sort instrumentation from workers back to leader.
Previous Message Tom Lane 2017-08-29 13:34:40 pgsql: Improve docs about numeric formatting patterns (to_char/to_numbe