Re: Todo: Teach planner to evaluate multiple windows in the optimal order
Ankit Kumar Pandey <itsankitkp@gmail.com>
From: Ankit Kumar Pandey <itsankitkp@gmail.com>
To: David Rowley <dgrowleyml@gmail.com>
Cc: Vik Fearing <vik@postgresfriends.org>,
pghackers <pgsql-hackers@lists.postgresql.org>
Date: 2023-01-05T07:46:15Z
Lists: pgsql-hackers
On 05/01/23 12:53, David Rowley wrote: > > We *can* reuse Sorts where a more strict or equivalent sort order is > available. The question is how do we get the final WindowClause to do > something slightly more strict to save having to do anything for the > ORDER BY. One way you might think would be to adjust the > WindowClause's orderClause to add the additional clauses, but that > cannot be done because that would cause are_peers() in nodeWindowAgg.c > to not count some rows as peers when they maybe should be given a less > strict orderClause in the WindowClause. Okay, now I see issue in my approach. > It might be possible to adjust create_one_window_path() so that when > processing the final WindowClause that it looks at the DISTINCT or > ORDER BY clause to see if we can sort on a few extra columns to save > having to do any further sorting. We just *cannot* make any > adjustments to the WindowClause's orderClause. > This is much better solution. I will check create_one_window_path for the same. -- Regards, Ankit Kumar Pandey
Commits
-
Split out tiebreaker comparisons from comparetup_* functions
- c9bfa40914be 17.0 landed
-
Add additional regression tests for select_active_windows
- a14a5832923e 16.0 landed