Re: Todo: Teach planner to evaluate multiple windows in the optimal order
От | David Rowley |
---|---|
Тема | Re: Todo: Teach planner to evaluate multiple windows in the optimal order |
Дата | |
Msg-id | CAApHDvp=TK8uY903nDD1C9V1ywyFYnKR_dhTAFt_qUEkXkuizQ@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Todo: Teach planner to evaluate multiple windows in the optimal order (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-hackers |
On Thu, 5 Jan 2023 at 16:12, Tom Lane <tgl@sss.pgh.pa.us> wrote: > > David Rowley <dgrowleyml@gmail.com> writes: > > Additionally, it's also not that clear to me that sorting by more > > columns in the sort below the WindowAgg would always be a win over > > doing the final sort for the ORDER BY. What if the WHERE clause (that > > could not be pushed down before a join) filtered out the vast majority > > of the rows before the ORDER BY. It might be cheaper to do the sort > > then than to sort by the additional columns earlier. > > That's certainly a legitimate question to ask, but I don't quite see > where you figure we'd be sorting more rows? WHERE filtering happens > before window functions, which never eliminate any rows. So it seems > like a sort just before the window functions must sort the same number > of rows as one just after them. Yeah, I didn't think the WHERE clause thing out carefully enough. I think it's only the WindowClause's runCondition that could possibly filter any rows between the Sort below the WindowAgg and before the ORDER BY is evaluated. David
В списке pgsql-hackers по дате отправления: