Hi all,

With the following statements on latest master (c81bd3b9), I find
negative cost for plan nodes.

create table a (i int, j int);
insert into a select i%100000, i from generate_series(1,1000000)i;
analyze a;

# explain select i from a group by i;
                           QUERY PLAN
-----------------------------------------------------------------
 HashAggregate  (cost=1300.00..-1585.82 rows=102043 width=4)
   Group Key: i
   Planned Partitions: 4
   ->  Seq Scan on a  (cost=0.00..14425.00 rows=1000000 width=4)
(4 rows)

In function cost_agg, when we add the disk costs of hash aggregation
that spills to disk, nbatches is calculated as 1.18 in this case. It is
greater than 1, so there will be spill. And the depth is calculated as
-1 in this case, with num_partitions being 4. I think this is where
thing goes wrong.

Thanks
Richard

Reply via email to