pgsql: Relax overly strict rules in select_outer_pathkeys_for_merge()

Поиск
Список
Период
Сортировка
От David Rowley
Тема pgsql: Relax overly strict rules in select_outer_pathkeys_for_merge()
Дата
Msg-id E1oIeRI-002JpW-3W@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Relax overly strict rules in select_outer_pathkeys_for_merge()

The select_outer_pathkeys_for_merge function made an attempt to build the
merge join pathkeys in the same order as query_pathkeys.  This was done as
it may have led to no sort being required for an ORDER BY or GROUP BY
clause in the upper planner.  However, this restriction seems overly
strict as it required that we match the query_pathkeys entirely or we
don't bother putting the merge join pathkeys in that order.

Here we relax this rule so that we use a prefix of the query_pathkeys
providing that prefix matches all of the join quals.  This may provide the
upper planner with partially sorted input which will allow the use of
incremental sorts instead of full sorts.

Author: David Rowley
Reviewed-by: Richard Guo
Discussion: https://postgr.es/m/CAApHDvrtZu0PHVfDPFM4Yx3jNR2Wuwosv+T2zqa7LrhhBr2rRg@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/b592422095655a64d638f541df784b19b8ecf8ad

Modified Files
--------------
src/backend/optimizer/path/pathkeys.c | 40 +++++++++++++++++++++++++++++------
src/test/regress/expected/join.out    | 31 +++++++++++++++++++++++++++
src/test/regress/sql/join.sql         | 18 ++++++++++++++++
3 files changed, 82 insertions(+), 7 deletions(-)


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

Предыдущее
От: Tom Lane
Дата:
Сообщение: pgsql: Add a regression test for contrib/pg_prewarm.
Следующее
От: Tom Lane
Дата:
Сообщение: pgsql: Add a regression test for contrib/tcn.