Search Postgresql Archives

Re: PgSQL 7.4.2 - NaN on Tru64 UNIX

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Nikola Milutinovic wrote:

+ #define NAN DBL_INFINITY

The compilation has went smoothly, I'll try to run regression tests. Will let you know if something fails.

Hate to reply to myself, but here goes.


With NAN defined as "DBL_INFINITY" I get 3 failed regression test, most notably "float8" test.

With NAN defined as "DBL_QNAN" (double float Quiet NaN) I get just one, "float8".

With NAN defined as "DBL_SNAN" (double float Signalling NaN) I get one error, "float8".

The "problem" is the same in all three cases, an expression that is supposed to cause overflow, does so, but the output error text is slightly different. Here is the DIFF file:

*** ./expected/float8.out Thu Sep 25 08:58:06 2003
--- ./results/float8.out Mon May 17 08:37:51 2004
***************
*** 247,253 ****
SET f1 = FLOAT8_TBL.f1 * '-1'
WHERE FLOAT8_TBL.f1 > '0.0';
SELECT '' AS bad, f.f1 * '1e200' from FLOAT8_TBL f;
! ERROR: type "double precision" value out of range: overflow
SELECT '' AS bad, f.f1 ^ '1e200' from FLOAT8_TBL f;
ERROR: result is out of range
SELECT '' AS bad, ln(f.f1) from FLOAT8_TBL f where f.f1 = '0.0' ;
--- 247,254 ----
SET f1 = FLOAT8_TBL.f1 * '-1'
WHERE FLOAT8_TBL.f1 > '0.0';
SELECT '' AS bad, f.f1 * '1e200' from FLOAT8_TBL f;
! ERROR: floating-point exception
! DETAIL: An invalid floating-point operation was signaled. This probably means an out-of-range result or an invalid operation, suc
h as division by zero.
SELECT '' AS bad, f.f1 ^ '1e200' from FLOAT8_TBL f;
ERROR: result is out of range
SELECT '' AS bad, ln(f.f1) from FLOAT8_TBL f where f.f1 = '0.0' ;
***************
*** 270,276 ****


  -- test for over- and underflow
  INSERT INTO FLOAT8_TBL(f1) VALUES ('10e400');
! ERROR:  "10e400" is out of range for type double precision
  INSERT INTO FLOAT8_TBL(f1) VALUES ('-10e400');
  ERROR:  "-10e400" is out of range for type double precision
  INSERT INTO FLOAT8_TBL(f1) VALUES ('10e-400');
--- 271,277 ----

  -- test for over- and underflow
  INSERT INTO FLOAT8_TBL(f1) VALUES ('10e400');
! ERROR:  invalid input syntax for type double precision: "10e400"
  INSERT INTO FLOAT8_TBL(f1) VALUES ('-10e400');
  ERROR:  "-10e400" is out of range for type double precision
  INSERT INTO FLOAT8_TBL(f1) VALUES ('10e-400');

======================================================================

Any comments?

Nix.

---------------------------(end of broadcast)---------------------------
TIP 7: don't forget to increase your free space map settings

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux