pgsql: Avoid wrong results for power() with NaN input on moreplatforms
От | Tom Lane |
---|---|
Тема | pgsql: Avoid wrong results for power() with NaN input on moreplatforms |
Дата | |
Msg-id | E1fCubU-0008G7-Ie@gemulon.postgresql.org обсуждение исходный текст |
Список | 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 ------ REL9_6_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/d6ec3d2375ac3b94d2480c01d7ee7739b236642c 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 по дате отправления: