Skip site navigation (1) Skip section navigation (2)

bug in float8in()

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 (view raw or flat)
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?



Responses

pgsql-hackers by date

Next:From: James MansionDate: 2008-04-02 06:21:26
Subject: notify with payload (pgkill, notify)
Previous:From: Bruce MomjianDate: 2008-04-02 03:06:26
Subject: Re: [GENERAL] SHA1 on postgres 8.3

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group