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 <mmoncure@xxxxxxxxx>
On Tue, Oct 22, 2013 at 9:43 AM, Rémi Cura <remi.cura@xxxxxxxxx> wrote:For posterity, the above is incorrect. Since the aggregate is ordered
> 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).
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