pgsql: Add additional regression tests for select_active_windows - Mailing list pgsql-committers

From David Rowley
Subject pgsql: Add additional regression tests for select_active_windows
Date
Msg-id E1pDytX-002Pqu-JS@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Add additional regression tests for select_active_windows

During the development of 728202b63, which was aimed at reducing the
number of sorts required to evaluate multiple window functions with
different WindowClause definitions, the code written sorted the
WindowClauses in reverse tleSortGroupRef order.  There appears to be no
discussion in the thread which was opened to discuss the development of
this patch and no comments mentioning the fact that having the
WindowClauses in reverse tleSortGroupRef order makes it more likely that
the final WindowClause to be evaluated will provide presorted input to
the query's DISTINCT or ORDER BY clause.  The reason for this is that the
tleSortGroupRef indexes are assigned for the DISTINCT and ORDER BY clauses
before they are for the WindowClauses PARTITION BY and ORDER BY clauses.
Putting the WindowClause with the lowest tleSortGroupRef last means that
it's more likely that no additional sorting is required for the query's
DISTINCT or ORDER BY clause.

All we're doing here is adding some tests and a comment to help ensure
that remains true and that we don't accidentally forget to consider this
again should we ever rewrite that code.

Author: Ankit Kumar Pandey, David Rowley
Discussion: https://postgr.es/m/CAApHDvq=g2=ny59f1bvwRVvupsgPHK-KjLPBsSL25fVuGZ4idQ@mail.gmail.com

Branch
------
master

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

Modified Files
--------------
src/backend/optimizer/plan/planner.c |  8 +++
src/test/regress/expected/window.out | 98 ++++++++++++++++++++++++++++++++++++
src/test/regress/sql/window.sql      | 50 ++++++++++++++++++
3 files changed, 156 insertions(+)


pgsql-committers by date:

Previous
From: Tom Lane
Date:
Subject: pgsql: Check for two_phase change at end of process_syncing_tables_for_
Next
From: Amit Kapila
Date:
Subject: pgsql: Remove the streaming files for incomplete xacts after restart.