bug in float8in()
От | Richard Wang |
---|---|
Тема | bug in float8in() |
Дата | |
Msg-id | fsv83l$14a6$1@news.hub.org обсуждение исходный текст |
Ответы |
Re: bug in float8in()
Re: bug in float8in() |
Список | pgsql-hackers |
I run the following sql statements in linux and get the results: postgres=# create table test_double(col1 float8); CREATE TABLE postgres=# insert into test_double values(1.7976931348623159E308); INSERT 0 1 postgres=# select * from test_double; col1 ----------Infinity (1 row) but in windows: postgres=# create table test_double(col1 float8); CREATE TABLE postgres=# insert into test_double values(1.7976931348623159E308); ERROR: "17976931348623159000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000" is out of range for type double precision postgres=# select * from test_double;col1 ------ (0 rows) This is a bug, the behavior in windows and linux is not the smae I check the code and find that float8in exists a bug: the strtod() function in linux dosen't set errno when dealing with 1.7976931348623159E308 but in windows it does How should we improve it?
В списке pgsql-hackers по дате отправления: