Re: Avoid extra Sort nodes between WindowAggs when sorting can bereused

Поиск
Список
Период
Сортировка
От Daniel Gustafsson
Тема Re: Avoid extra Sort nodes between WindowAggs when sorting can bereused
Дата
Msg-id CB170BD6-E458-4F15-84F0-46CD8170F522@yesql.se
обсуждение исходный текст
Ответ на Avoid extra Sort nodes between WindowAggs when sorting can be reused  (Daniel Gustafsson <daniel@yesql.se>)
Ответы Re: Avoid extra Sort nodes between WindowAggs when sorting can bereused  (Alexander Kuzmenkov <a.kuzmenkov@postgrespro.ru>)
Список pgsql-hackers
> On 30 May 2018, at 18:19, Daniel Gustafsson <daniel@yesql.se> wrote:
>
> Currently, we can only reuse Sort nodes between WindowAgg nodes iff the
> partitioning and ordering clauses are identical.  If a window Sort node
> sortorder is a prefix of another window, we could however reuse the Sort node
> to hopefully produce a cheaper plan.  In src/backend/optimizer/plan/planner.c
> there is a comment alluding to this:
>
>        * ...
>        *
>        * There is room to be much smarter here, for example detecting whether
>        * one window's sort keys are a prefix of another's (so that sorting for
>        * the latter would do for the former), or putting windows first that
>        * match a sort order available for the underlying query.  For the moment
>        * we are content with meeting the spec.
>        */
>
> The attached patch takes a stab at implementing the sorting on partitioning/
> ordering prefix, inspired by a similar optimization in the Greenplum planner.
> In testing the impact on planning time seems quite minimal, or within the error
> margin.

Attached is a rebased v2 addressing off-list review comments and including a
test.  Parking this in the commitfest.

cheers ./daniel


Вложения

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

Предыдущее
От: Andrew Dunstan
Дата:
Сообщение: Re: late binding of shared libs for C functions
Следующее
От: Ashutosh Bapat
Дата:
Сообщение: Re: Remove mention in docs that foreign keys on partitioned tablesare not supported