I wrote:
> If you don't want an ORDER BY, maybe turn off enable_hashagg for
> these queries?  But you'll get the same plan either way.

Or not ... I forgot it has a better model of the rowcount changes now:

regression=# explain SELECT few.dataa, count(*), min(id), max(id), 
unnest('{1,1,3}'::int[]) FROM few WHERE few.id = 1 GROUP BY few.dataa, 
unnest('{1,1,3}'::int[]) order by few.dataa, unnest('{1,1,3}'::int[]);
                              QUERY PLAN                               
-----------------------------------------------------------------------
 Sort  (cost=27.75..27.76 rows=4 width=52)
   Sort Key: dataa, (unnest('{1,1,3}'::integer[]))
   ->  HashAggregate  (cost=27.66..27.71 rows=4 width=52)
         Group Key: dataa, unnest('{1,1,3}'::integer[])
         ->  ProjectSet  (cost=0.00..22.66 rows=400 width=40)
               ->  Seq Scan on few  (cost=0.00..20.62 rows=4 width=36)
                     Filter: (id = 1)
(7 rows)
regression=# set enable_hashagg TO 0;
SET
regression=# explain SELECT few.dataa, count(*), min(id), max(id), 
unnest('{1,1,3}'::int[]) FROM few WHERE few.id = 1 GROUP BY few.dataa, 
unnest('{1,1,3}'::int[]);
                              QUERY PLAN                               
-----------------------------------------------------------------------
 GroupAggregate  (cost=39.94..45.99 rows=4 width=52)
   Group Key: dataa, (unnest('{1,1,3}'::integer[]))
   ->  Sort  (cost=39.94..40.94 rows=400 width=40)
         Sort Key: dataa, (unnest('{1,1,3}'::integer[]))
         ->  ProjectSet  (cost=0.00..22.66 rows=400 width=40)
               ->  Seq Scan on few  (cost=0.00..20.62 rows=4 width=36)
                     Filter: (id = 1)
(7 rows)

So which plan would you rather test?

                        regards, tom lane


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

Reply via email to