pgsql: Avoid wrong results for power() with NaN input on moreplatforms - Mailing list pgsql-committers

From Tom Lane
Subject pgsql: Avoid wrong results for power() with NaN input on moreplatforms
Date
Msg-id E1fCubU-0008G5-IF@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Avoid wrong results for power() with NaN input on more platforms.

Buildfarm results show that the modern POSIX rule that 1 ^ NaN = 1 is not
honored on *BSD until relatively recently, and really old platforms don't
believe that NaN ^ 0 = 1 either.  (This is unsurprising, perhaps, since
SUSv2 doesn't require either behavior.)  In hopes of getting to platform
independent behavior, let's deal with all the NaN-input cases explicitly
in dpow().

Note that numeric_power() doesn't know either of these special cases.
But since that behavior is platform-independent, I think it should be
addressed separately, and probably not back-patched.

Discussion: https://postgr.es/m/75DB81BEEA95B445AE6D576A0A5C9E936A73E741@BPXM05GP.gisp.nec.co.jp

Branch
------
REL_10_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/217d8f3a19aeae6a221c61487f1758a53dda31c8

Modified Files
--------------
src/backend/utils/adt/float.c                      | 24 +++++++++++++++++++---
.../expected/float8-exp-three-digits-win32.out     |  6 ++++++
src/test/regress/expected/float8-small-is-zero.out |  6 ++++++
.../regress/expected/float8-small-is-zero_1.out    |  6 ++++++
src/test/regress/expected/float8.out               |  6 ++++++
src/test/regress/sql/float8.sql                    |  1 +
6 files changed, 46 insertions(+), 3 deletions(-)


pgsql-committers by date:

Previous
From: Tom Lane
Date:
Subject: pgsql: Get more info about Windows can't-reattach-to-shared-memoryerro
Next
From: Tom Lane
Date:
Subject: pgsql: Get still more info about Windowscan't-reattach-to-shared-memor