From: | Rémi Cura <remi(dot)cura(at)gmail(dot)com> |
---|---|
To: | Merlin Moncure <mmoncure(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:24:19 |
Message-ID: | CAJvUf_vOhvn9y44OVmWEDhfVhBx5N3e2D_WLQkFMZRTat5W-dg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
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(at)gmail(dot)com>
> 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 | Steve Crawford | 2013-10-22 16:24:26 | Re: pg_dumpall from a script |
Previous Message | Merlin Moncure | 2013-10-22 16:21:43 | Re: Count of records in a row |