On 20/07/06, Reini Urban <rurban@x-ray.at> wrote:
>
> Thanks,
> Which postgresql version?
The version is cvs HEAD.
> Can we have a regular cygwin error report please mailed to cygwin at
> cygwin.com please. See http://cygwin.com/problems.html (cygcheck -s -v
> -r > cygcheck.out)
>
> Looks like a strtod() newlib feature, but I haven't inspected closely.
> http://sources.redhat.com/ml/newlib/2006/msg00020.html
>
> BTW: HAVE_LONG_LONG_INT_64 is defined, so INT64_IS_BUSTED is defined also.
>
> Does it look the same on redhat fedora?
> Our buildfarm doesn't have these issues, this runs gcc-3.3.3 and gcc-3.4.4
I'm not sure about fedora, but on NetBSD 3.0rc5 , postgresql 8.1.3 I
can see the
same behaviour:
am=# select version(); version
--------------------------------------------------------------------------------------------PostgreSQL 8.1.3 on
i386--netbsdelf,compiled by GCC gcc (GCC) 3.3.3
(NetBSD nb3 20040520)
(1 row)
am=# SELECT '-10e400'::float8;
ERROR: "-10e400" is out of range for type double precision
> The problem I see is that float8in() in
> src/backend/utils/adt/float.c checks only for "-Infinity" and not "-inf"
> as returned by newlib:
> pg_strncasecmp(num, "-Infinity", 9) == 0
>
> Can you test this?
Sure .
> $ gcc test-strtod.c; ./a
> double: -inf, errno: 34, tail: '', isinf: 1, fabs: inf, inf>max: 1
Yes, I'm getting the same output (both on cygwin and netbsd 3.0rc5):
$ ./test-strtod.exe
double: -inf, errno: 34, tail: '', isinf: 1, fabs: inf,inf>max: 1
Cheers,
Adrian Maier