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-0004mL-51@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 ------ REL9_3_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/534267e7f3ea03f67e22950f689ad71aaa1560ce 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 по дате отправления: