Tom Lane <tgl@xxxxxxxxxxxxx> writes: > Greg Stark <gsstark@xxxxxxx> writes: > > Last I heard the reason count(*) was so expensive was because its state > > variable was a bigint. That means it doesn't fit in a Datum and has to be > > alloced and stored as a pointer. And because of the Aggregate API that means > > it has to be allocated and freed for every tuple processed. > > There's a hack in 8.1 to avoid the palloc overhead (courtesy of Neil > Conway IIRC). ah, cool, missed that. -- greg