pgsql: Defer creation of partially-grouped relation until it's needed.

Поиск
Список
Период
Сортировка
От Robert Haas
Тема pgsql: Defer creation of partially-grouped relation until it's needed.
Дата
Msg-id E1eyJ65-0005OC-LO@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Defer creation of partially-grouped relation until it's needed.

This avoids unnecessarily creating a RelOptInfo for which we have no
actual need.  This idea is from Ashutosh Bapat, who wrote a very
different patch to accomplish a similar goal.  It will be more
important if and when we get partition-wise aggregate, since then
there could be many partially grouped relations all of which could
potentially be unnecessary.  In passing, this sets the grouping
relation's reltarget, which wasn't done previously but makes things
simpler for this refactoring.

Along the way, adjust things so that add_paths_to_partial_grouping_rel,
now renamed create_partial_grouping_paths, does not perform the Gather
or Gather Merge steps to generate non-partial paths from partial
paths; have the caller do it instead.  This is again for the
convenience of partition-wise aggregate, which wants to inject
additional partial paths are created and before we decide which ones
to Gather/Gather Merge.  This might seem like a separate change, but
it's actually pretty closely entangled; I couldn't really see much
value in separating it and having to change some things twice.

Patch by me, reviewed by Ashutosh Bapat.

Discussion: http://postgr.es/m/CA+TgmoZ+ZJTVad-=vEq393N99KTooxv9k7M+z73qnTAqkb49BQ@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/4f15e5d09de276fb77326be5567dd9796008ca2e

Modified Files
--------------
src/backend/optimizer/plan/planner.c | 324 ++++++++++++++++++-----------------
1 file changed, 170 insertions(+), 154 deletions(-)


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

Предыдущее
От: Alvaro Herrera
Дата:
Сообщение: Re: pgsql: Fix CommandCounterIncrement in partition-related DDL
Следующее
От: Robert Haas
Дата:
Сообщение: pgsql: Determine grouping strategies in create_grouping_paths.