pgsql: Avoid wrong results for power() with NaN input on someplatforms

Поиск
Список
Период
Сортировка
От Tom Lane
Тема pgsql: Avoid wrong results for power() with NaN input on someplatforms
Дата
Msg-id E1fCrtX-0004mC-4N@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Avoid wrong results for power() with NaN input on some platforms.

Per spec, the result of power() should be NaN if either input is NaN.
It appears that on some versions of Windows, the libc function does
return NaN, but it also sets errno = EDOM, confusing our code that
attempts to work around shortcomings of other platforms.  Hence, add
guard tests to avoid substituting a wrong result for the right one.

It's been like this for a long time (and the odd behavior only appears
in older MSVC releases, too) so back-patch to all supported branches.

Dang Minh Huong, reviewed by David Rowley

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

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/61b200e2f582d0886d9de947e182483339d881fd

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


В списке pgsql-committers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: pgsql: Cosmetic improvement: use BKI_DEFAULT and BKI_LOOKUP inpg_langu
Следующее
От: Tom Lane
Дата:
Сообщение: pgsql: Update time zone data files to tzdata release 2018d.