pgsql: Let Parallel Append over simple UNION ALL have partialsubpaths.

Поиск
Список
Период
Сортировка
От Robert Haas
Тема pgsql: Let Parallel Append over simple UNION ALL have partialsubpaths.
Дата
Msg-id E1evqht-0005MJ-9M@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Let Parallel Append over simple UNION ALL have partial subpaths.

A simple UNION ALL gets flattened into an appendrel of subquery
RTEs, but up until now it's been impossible for the appendrel to use
the partial paths for the subqueries, so we can implement the
appendrel as a Parallel Append but only one with non-partial paths
as children.

There are three separate obstacles to removing that limitation.
First, when planning a subquery, propagate any partial paths to the
final_rel so that they are potentially visible to outer query levels
(but not if they have initPlans attached, because that wouldn't be
safe).  Second, after planning a subquery, propagate any partial paths
for the final_rel to the subquery RTE in the outer query level in the
same way we do for non-partial paths.  Third, teach finalize_plan() to
account for the possibility that the fake parameter we use for rescan
signalling when the plan contains a Gather (Merge) node may be
propagated from an outer query level.

Patch by me, reviewed and tested by Amit Khandekar, Rajkumar
Raghuwanshi, and Ashutosh Bapat.  Test cases based on examples by
Rajkumar Raghuwanshi.

Discussion: http://postgr.es/m/CA+Tgmoa6L9A1nNCk3aTDVZLZ4KkHDn1+tm7mFyFvP+uQPS7bAg@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/0927d2f46ddd4cf7d6bf2cc84b3be923e0aedc52

Modified Files
--------------
src/backend/optimizer/path/allpaths.c         | 22 +++++++++
src/backend/optimizer/plan/planner.c          | 16 +++++++
src/backend/optimizer/plan/subselect.c        | 17 ++++++-
src/test/regress/expected/select_parallel.out | 65 +++++++++++++++++++++++++++
src/test/regress/sql/select_parallel.sql      | 25 +++++++++++
5 files changed, 143 insertions(+), 2 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: pgsql: Move strtoint() to common
Следующее
От: Andres Freund
Дата:
Сообщение: pgsql: Add COSTS off to two EXPLAIN using tests.