pgsql: Fix planner failure in some cases of sorting by an aggregate. - Mailing list pgsql-committers

From Tom Lane
Subject pgsql: Fix planner failure in some cases of sorting by an aggregate.
Date
Msg-id E1lYsRd-0002un-UC@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Fix planner failure in some cases of sorting by an aggregate.

An oversight introduced by the incremental-sort patches caused
"could not find pathkey item to sort" errors in some situations
where a sort key involves an aggregate or window function.

The basic problem here is that find_em_expr_usable_for_sorting_rel
isn't properly modeling what prepare_sort_from_pathkeys will do
later.  Rather than hoping we can keep those functions in sync,
let's refactor so that they actually share the code for
identifying a suitable sort expression.

With this refactoring, tlist.c's tlist_member_ignore_relabel
is unused.  I removed it in HEAD but left it in place in v13,
in case any extensions are using it.

Per report from Luc Vlaming.  Back-patch to v13 where the
problem arose.

James Coleman and Tom Lane

Discussion: https://postgr.es/m/91f3ec99-85a4-fa55-ea74-33f85a5c651f@swarm64.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/375398244168add84a884347625d14581a421e71

Modified Files
--------------
src/backend/optimizer/path/equivclass.c        | 255 ++++++++++++++++++++-----
src/backend/optimizer/plan/createplan.c        | 118 +-----------
src/backend/optimizer/util/tlist.c             |  28 ---
src/include/optimizer/paths.h                  |   8 +
src/include/optimizer/tlist.h                  |   1 -
src/test/regress/expected/incremental_sort.out |  26 +++
src/test/regress/sql/incremental_sort.sql      |   7 +
7 files changed, 262 insertions(+), 181 deletions(-)


pgsql-committers by date:

Previous
From: Andrew Dunstan
Date:
Subject: pgsql: Avoid unfortunate IPC::Run path caching in PostgresNode
Next
From: Emre Hasegeli
Date:
Subject: Re: pgsql: Convert built-in SQL-language functions to SQL-standard-body sty