| From: | "Richard Wang" <ruc_wang(at)hotmail(dot)com> |
|---|---|
| To: | pgsql-hackers(at)postgresql(dot)org |
| Subject: | bug in float8in() |
| Date: | 2008-04-02 06:12:03 |
| Message-ID: | fsv83l$14a6$1@news.hub.org |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | 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?
| From | Date | Subject | |
|---|---|---|---|
| Next Message | James Mansion | 2008-04-02 06:21:26 | notify with payload (pgkill, notify) |
| Previous Message | Bruce Momjian | 2008-04-02 03:06:26 | Re: [GENERAL] SHA1 on postgres 8.3 |