Alvaro Herrera <alvherre@2ndquadrant.com> writes:
> Robert Haas wrote:
>> dromedary and arapaima have failures like this, which seems likely
>> related to this commit:
>>
>> EXPLAIN
>> SELECT COUNT(*) FROM ndistinct GROUP BY a, d;
>> QUERY PLAN
>> ---------------------------------------------------------------------
>> ! HashAggregate (cost=225.00..235.00 rows=1000 width=16)
>> Group Key: a, d
>> ! -> Seq Scan on ndistinct (cost=0.00..150.00 rows=10000 width=8)
>> (3 rows)
> Yes. What seems to be going on here, is that both arapaima and
> dromedary are 32 bit machines; all the 64 bit ones are passing (except
> for prion which showed a real relcache bug, which I already stomped).
> Now, the difference is that the total cost in those machines for seqscan
> is 155 instead of 150. Tomas suggests that this happens because
> MAXALIGN is different, leading to packing tuples differently: the
> expected cost (on our laptop's 64 bit) is 155, and the cost we get in 32
> bit arch is 150 -- so 5 pages of difference. We insert 1000 rows on the
> table; 4 bytes per tuple would amount to 40 kB, which is exactly 5
> pages.
> I'll push an alternate expected file for this test, which we think is
> the simplest fix.
Why not use COSTS OFF? Or I'll put that even more strongly: all the
existing regression tests use COSTS OFF, exactly to avoid this sort of
machine-dependent output. There had better be a really damn good
reason not to use it here.
regards, tom lane