Re: Window Function "Run Conditions"
От | David Rowley |
---|---|
Тема | Re: Window Function "Run Conditions" |
Дата | |
Msg-id | CAApHDvrU132PxjuLakFrQhjR_b40LHAqhCzk-q2iGOST+-6dCw@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Window Function "Run Conditions" (Andy Fan <zhihui.fan1213@gmail.com>) |
Ответы |
Re: Window Function "Run Conditions"
|
Список | pgsql-hackers |
On Tue, 5 Apr 2022 at 19:38, Andy Fan <zhihui.fan1213@gmail.com> wrote: > 1. We can do more on PASSTHROUGH, we just bypass the window function > currently, but IIUC we can ignore all of the following tuples in current partition > once we go into this mode. patch 0001 shows what I mean. Yeah, there is more performance to be had than even what you've done there. There's no reason really for spool_tuples() to do tuplestore_puttupleslot() when we're not in run mode. The attached should give slightly more performance. I'm unsure if there's more that can be done for window aggregates, i.e. eval_windowaggregates() I'll consider the idea about doing all the filtering in nodeWindowAgg.c. For now I made find_window_run_conditions() keep the qual so that it's still filtered in the subquery level when there is a PARTITION BY clause. Probably the best way would be to make nodeWindowAgg.c just loop with a for(;;) loop. I'll need to give it more thought. I'll do that in the morning. David
Вложения
В списке pgsql-hackers по дате отправления: