> > > > postgres=> select b,c,sum(a) from t1 group by b,c;
> > > > b|c|sum
> > > > -+-+---
> > > > |x| 5
> > > > |z| 3
> > > > |x| 0
> > > > (3 rows)
> > > >
> > > > postgres=> select * from t1;
> > > > a|b|c
> > > > -+-+-
> > > > 1| |x
> > > > 2| |x
> > > > 2| |x
> > > > 3| |z
> > > > 0| |x
> > > > (5 rows)
> > > >
> > > ...
> >
> And in v6.1. If b is a space (rather than a NULL), then the behaviour is correct
> so it must be a problem in grouping NULLs.
>
explain select b,c,sum(a) from foo group by b,c; -- gives...
Aggregate (cost=0.00 size=0 width=0)
-> Group (cost=0.00 size=0 width=0)
-> Sort (cost=0.00 size=0 width=0)
-> Seq Scan on foo (cost=0.00 size=0 width=28)
There sort is there before the grouping operation, so this would seem to point to
the sort code incorrectly setting something when handling NULLs.
This doesn't seem like the same bug that Vadim found since a small data set such as
this one _shouldn't_ be going out to a tape file.
darrenk