Avg performance for these two datatypes can be improved by *not*
calculating the sum of squares in the shared accumulator
(do_numeric_accum). However there is a little subtlety as this function
is also the shared by variance and stddev!
- Modifies do_numeric_accum to have an extra bool parameter and does not
calc sumX2 when it is false.
- Amends all the accumulators that call it to include the bool (set to
- Adds new functions [int8|numeric]_avg_accum that call do_numeric_accum
with the bool set to false.
- Amends the the bootstrap entries for pg_aggregate to use the new
accumulators for avg(int8|numeric).
- Adds the new accumulators into the bootstrap entries for pg_proc.
Performance gain is approx 33% (it is still slower than doing sum/count
- possibly due to the construct/deconstruct overhead of the numeric
Description: text/x-patch (7.9 KB)
pgsql-hackers by date
|Next:||From: Larry Rosenman||Date: 2006-11-24 01:55:04|
|Subject: Re: Vacuum columns in statistics tables|
|Previous:||From: Dave Page||Date: 2006-11-23 19:52:38|
|Subject: Re: 8.2 open items list|
pgsql-patches by date
|Next:||From: Bruce Momjian||Date: 2006-11-24 04:06:05|
|Subject: Re: Direct I/O issues|
|Previous:||From: Greg Smith||Date: 2006-11-23 18:09:54|
|Subject: Re: Direct I/O issues |