From: | Merlin Moncure <mmoncure(at)gmail(dot)com> |
---|---|
To: | Rémi Cura <remi(dot)cura(at)gmail(dot)com> |
Cc: | Hubert Lubaczewski <depesz(at)depesz(dot)com>, Robert James <srobertjames(at)gmail(dot)com>, Postgres General <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: Count of records in a row |
Date: | 2013-10-22 16:21:43 |
Message-ID: | CAHyXU0yMqC0_GpkTdqrvuRqebHaoZkCdYPG4weC2BXcEsi4_FA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Tue, Oct 22, 2013 at 9:43 AM, Rémi Cura <remi(dot)cura(at)gmail(dot)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
From | Date | Subject | |
---|---|---|---|
Next Message | Rémi Cura | 2013-10-22 16:24:19 | Re: Count of records in a row |
Previous Message | Shaun Thomas | 2013-10-22 15:33:41 | Re: Backup Question |