Re: [HACKERS] Aggregate transition state merging vs. hypothetical set functions
От | Tom Lane |
---|---|
Тема | Re: [HACKERS] Aggregate transition state merging vs. hypothetical set functions |
Дата | |
Msg-id | 7197.1507853571@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: [HACKERS] Aggregate transition state merging vs. hypothetical set functions (David Rowley <david.rowley@2ndquadrant.com>) |
Список | pgsql-hackers |
David Rowley <david.rowley@2ndquadrant.com> writes: > On 13 October 2017 at 12:41, Tom Lane <tgl@sss.pgh.pa.us> wrote: >> Yeah, we would probably also want to check the flag in nodeWindowAgg. >> Not sure exactly how that should play out --- maybe we end up with >> a tri-valued property "works as normal agg without merging, works >> as normal agg with merging, works as window agg". > hmm, maybe I'm lacking imagination here, but surely the final function > is either destructive or it's not? I can't understand what the > difference between nodeAgg.c calling the finalfn multiple times on the > same state and nodeWindowAgg.c doing it. Maybe there's something I'm > not accounting for that you are? nodeWindowAgg is doing something more: not only is it calling the finalfn repeatedly, but it's continuing to mutate the transition state in between. The ordered-set aggs provide a counterexample to considering that to be equivalent to state merging. The OSAs can cope with state merging as long as they have a flag to make sure only the first finalfn does tuplesort_performsort ... but that's not good enough to make them workable as window aggs. Once we sort, we can't absorb more rows into the tuplesort object. regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
В списке pgsql-hackers по дате отправления: