Re: PgSQL 7.4.2 - NaN on Tru64 UNIX

Поиск
Список
Период
Сортировка
От Nikola Milutinovic
Тема Re: PgSQL 7.4.2 - NaN on Tru64 UNIX
Дата
Msg-id 40A86317.3070805@ev.co.yu
обсуждение исходный текст
Ответ на PgSQL 7.4.2 - NaN on Tru64 UNIX  (Nikola Milutinovic <Nikola.Milutinovic@ev.co.yu>)
Список pgsql-general
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.

В списке pgsql-general по дате отправления:

Предыдущее
От: Greg Stark
Дата:
Сообщение: Re: fsync = true beneficial on ext3?
Следующее
От: "Bruno BAGUETTE"
Дата:
Сообщение: SQL norm views to describes tables (and probably some other things) of a database ?