[BUGS] Float value 'Infinity' is cast to numeric 1 on Windows

Поиск
Список
Период
Сортировка
Искать
От
Taiki Kondo
Тема
[BUGS] Float value 'Infinity' is cast to numeric 1 on Windows
Дата
Msg-id
12A9442FBAE80D4E8953883E0B84E088C8C7A2@BPXM01GP.gisp.nec.co.jp
Список
Дерево обсуждения
[BUGS] Float value 'Infinity' is cast to numeric 1 on Windows Taiki Kondo <tai-kondo@yk.jp.nec.com>
Re: [BUGS] [HACKERS] Float value 'Infinity' is cast to numeric 1 on Windows Kohei KaiGai <kaigai@heterodb.com>
Re: [BUGS] [HACKERS] Float value 'Infinity' is cast to numeric 1 on Windows Tom Lane <tgl@sss.pgh.pa.us>
Hi all,

I build PostgreSQL 9.6.5 by Visual Studio 2013 on Windows, I found weird behavior on it.

I execute following SQL, occurring ERROR is expected, but I got mysterious value 1.


postgres=# select (float8 'inf')::numeric;
 numeric
---------
       1
(1 row)


On Windows, at least Visual Studio, the string of float/double value meaning
infinity is "1.#INF" not "inf". So, set_var_from_str() called from float8_numeric()
in utils/adt/numeric.c will return numeric value 1, and no one checks this situation.

This situation is also occurring by cast from float4.

I wrote a patch to add check this situation.
Please find attached.


Sincerely,

--
Taiki Kondo
NEC Solution Innovators, Ltd.



-- 
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs
В списке pgsql-bugs по дате отправления
От: Michael Paquier
Дата:
От: Kohei KaiGai
Дата:
FAQ