mirror of
https://github.com/postgres/postgres.git
synced 2025-12-21 05:21:08 +03:00
Use 128-bit math to accelerate some aggregation functions.
On platforms where we support 128bit integers, use them to implement faster transition functions for sum(int8), avg(int8), var_*(int2/int4),stdev_*(int2/int4). Where not supported continue to use numeric as a transition type. In some synthetic benchmarks this has been shown to provide significant speedups. Bumps catversion. Discussion: 544BB5F1.50709@proxel.se Author: Andreas Karlsson Reviewed-By: Peter Geoghegan, Petr Jelinek, Andres Freund, Oskari Saarenmaa, David Rowley
This commit is contained in:
@@ -1027,6 +1027,12 @@ extern Datum numeric_var_pop(PG_FUNCTION_ARGS);
|
||||
extern Datum numeric_var_samp(PG_FUNCTION_ARGS);
|
||||
extern Datum numeric_stddev_pop(PG_FUNCTION_ARGS);
|
||||
extern Datum numeric_stddev_samp(PG_FUNCTION_ARGS);
|
||||
extern Datum numeric_poly_sum(PG_FUNCTION_ARGS);
|
||||
extern Datum numeric_poly_avg(PG_FUNCTION_ARGS);
|
||||
extern Datum numeric_poly_var_pop(PG_FUNCTION_ARGS);
|
||||
extern Datum numeric_poly_var_samp(PG_FUNCTION_ARGS);
|
||||
extern Datum numeric_poly_stddev_pop(PG_FUNCTION_ARGS);
|
||||
extern Datum numeric_poly_stddev_samp(PG_FUNCTION_ARGS);
|
||||
extern Datum int2_sum(PG_FUNCTION_ARGS);
|
||||
extern Datum int4_sum(PG_FUNCTION_ARGS);
|
||||
extern Datum int8_sum(PG_FUNCTION_ARGS);
|
||||
@@ -1034,6 +1040,7 @@ extern Datum int2_avg_accum(PG_FUNCTION_ARGS);
|
||||
extern Datum int4_avg_accum(PG_FUNCTION_ARGS);
|
||||
extern Datum int2_avg_accum_inv(PG_FUNCTION_ARGS);
|
||||
extern Datum int4_avg_accum_inv(PG_FUNCTION_ARGS);
|
||||
extern Datum int8_avg_accum_inv(PG_FUNCTION_ARGS);
|
||||
extern Datum int8_avg(PG_FUNCTION_ARGS);
|
||||
extern Datum int2int4_sum(PG_FUNCTION_ARGS);
|
||||
extern Datum width_bucket_numeric(PG_FUNCTION_ARGS);
|
||||
|
||||
Reference in New Issue
Block a user