mirror of
https://github.com/postgres/postgres.git
synced 2026-02-03 20:40:14 -05:00
This adds a few more functions to int128.h, allowing more of numeric.c to use 128-bit integers on all platforms. Specifically, int64_div_fast_to_numeric() and the following aggregate functions can now use 128-bit integers for improved performance on all platforms, rather than just platforms with native support for int128: - SUM(int8) - AVG(int8) - STDDEV_POP(int2 or int4) - STDDEV_SAMP(int2 or int4) - VAR_POP(int2 or int4) - VAR_SAMP(int2 or int4) In addition to improved performance on platforms lacking native 128-bit integer support, this significantly simplifies this numeric code by allowing a lot of conditionally compiled code to be deleted. A couple of numeric functions (div_var_int64() and sqrt_var()) still contain conditionally compiled 128-bit integer code that only works on platforms with native 128-bit integer support. Making those work more generally would require rolling our own higher precision 128-bit division, which isn't supported for now. Author: Dean Rasheed <dean.a.rasheed@gmail.com> Reviewed-by: John Naylor <johncnaylorls@gmail.com> Discussion: https://postgr.es/m/CAEZATCWgBMc9ZwKMYqQpaQz2X6gaamYRB+RnMsUNcdMcL2Mj_w@mail.gmail.com |
||
|---|---|---|
| .. | ||
| archive.h | ||
| base64.h | ||
| blkreftable.h | ||
| checksum_helper.h | ||
| compression.h | ||
| config_info.h | ||
| connect.h | ||
| controldata_utils.h | ||
| cryptohash.h | ||
| fe_memutils.h | ||
| file_perm.h | ||
| file_utils.h | ||
| hashfn.h | ||
| hashfn_unstable.h | ||
| hmac.h | ||
| int.h | ||
| int128.h | ||
| ip.h | ||
| jsonapi.h | ||
| keywords.h | ||
| kwlookup.h | ||
| link-canary.h | ||
| logging.h | ||
| md5.h | ||
| oauth-common.h | ||
| openssl.h | ||
| parse_manifest.h | ||
| percentrepl.h | ||
| pg_lzcompress.h | ||
| pg_prng.h | ||
| relpath.h | ||
| restricted_token.h | ||
| saslprep.h | ||
| scram-common.h | ||
| sha1.h | ||
| sha2.h | ||
| shortest_dec.h | ||
| string.h | ||
| unicode_case.h | ||
| unicode_case_table.h | ||
| unicode_category.h | ||
| unicode_category_table.h | ||
| unicode_east_asian_fw_table.h | ||
| unicode_nonspacing_table.h | ||
| unicode_norm.h | ||
| unicode_norm_hashfunc.h | ||
| unicode_norm_table.h | ||
| unicode_normprops_table.h | ||
| unicode_version.h | ||
| username.h | ||