Re: [HACKERS] [GENERAL] PgSQL 7.4.2 - NaN on Tru64 UNIX - Mailing list pgsql-patches
From | Bruce Momjian |
---|---|
Subject | Re: [HACKERS] [GENERAL] PgSQL 7.4.2 - NaN on Tru64 UNIX |
Date | |
Msg-id | 200407100152.i6A1qJl19534@candle.pha.pa.us Whole thread Raw |
List | pgsql-patches |
OK, I will use "DBL_QNAN" for the patch. Your patch has been added to the PostgreSQL unapplied patches list at: http://momjian.postgresql.org/cgi-bin/pgpatches I will try to apply it within the next 48 hours. --------------------------------------------------------------------------- Nikola Milutinovic wrote: > 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 6: Have you searched our list archives? > > http://archives.postgresql.org > -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073
pgsql-patches by date: