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 <mmonc...@gmail.com>

> On Tue, Oct 22, 2013 at 9:43 AM, Rémi Cura <remi.c...@gmail.com> 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
>

Reply via email to