On Sun, 2015-02-22 at 03:14 +0100, Tomas Vondra wrote:
> >>   SELECT COUNT(x) FROM (
> >>      SELECT a, array_agg(i) AS x FRM test GROUP BY 1
> >>   ) foo;
> > 
> > That's actually a bogus test -- array_agg is never executed.
> 
> Really? How could that happen when the result of array_agg() is passed
> to the COUNT()? Also, how could that allocate huge amounts of memory and
> get killed by OOM, which happens easily with this query?

Oops, I misread that as "COUNT(*)". Count(x) will force array_agg() to
be executed.

Regards,
        Jeff Davis




-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to