Wow, this is an excellent discussion - and I must admit, a bit beyond my abilities. Is there a consensus as to the best approach to adopt? Is Elliot's the best?
On 10/22/13, Rémi Cura <[email protected]> wrote: > OK, > just out of pure curiosity, > is it always the case or is it due to this particular aggregate? > > Cheers, > Rémi-C > > > 2013/10/22 Merlin Moncure <[email protected]> > >> On Tue, Oct 22, 2013 at 9:43 AM, Rémi Cura <[email protected]> wrote: >> > Thanks again for the precision ! >> > >> > I still don't understand perfectly. We call the aggregate n times, and >> each >> > time we compute the aggregate, using (potentially) n rows, thus >> > becoming >> (at >> > most) O(n*n). >> > >> > With a standard loop, I loop n times, and each times I only need the >> current >> > row plus the previous row which I put in memory, thus O(n). >> >> For posterity, the above is incorrect. Since the aggregate is ordered >> through the window function, it gets executed exactly once per output >> row. It behaves exactly like a loop. You know this because there is >> no array in the aggregate state. >> >> merlin >> > -- Sent via pgsql-general mailing list ([email protected]) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general
