pgsql: Add support for hyperbolic functions, as well as log10().

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

pgsql: Add support for hyperbolic functions, as well as log10().

Tom Lane-2
Add support for hyperbolic functions, as well as log10().

The SQL:2016 standard adds support for the hyperbolic functions
sinh(), cosh(), and tanh().  POSIX has long required libm to
provide those functions as well as their inverses asinh(),
acosh(), atanh().  Hence, let's just expose the libm functions
to the SQL level.  As with the trig functions, we only implement
versions for float8, not numeric.

For the moment, we'll assume that all platforms actually do have
these functions; if experience teaches otherwise, some autoconf
effort may be needed.

SQL:2016 also adds support for base-10 logarithm, but with the
function name log10(), whereas the name we've long used is log().
Add aliases named log10() for the float8 and numeric versions.

Lætitia Avrot

Discussion: https://postgr.es/m/CAB_COdguG22LO=rnxDQ2DW1uzv8aQoUzyDQNJjrR4k00XSgm5w@...

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/f1d85aa98ee71d9662309f6f0384b2f7f8f16f02

Modified Files
--------------
doc/src/sgml/func.sgml               | 107 ++++++++++++++++++++++-
src/backend/utils/adt/float.c        | 160 ++++++++++++++++++++++++++++++++++-
src/include/catalog/catversion.h     |   2 +-
src/include/catalog/pg_proc.dat      |  25 ++++++
src/test/regress/expected/float8.out |  37 ++++++++
src/test/regress/sql/float8.sql      |   8 ++
6 files changed, 333 insertions(+), 6 deletions(-)