Re: [GENERAL] int8-datatype: possible bug - Mailing list pgsql-bugs

From José Soares
Subject Re: [GENERAL] int8-datatype: possible bug
Date
Msg-id 3732DBFE.1221D3B1@sferacarta.com
Whole thread Raw
In response to int8-datatype: possible bug  (Jelle Ruttenberg <ruttenberg@neroc.nl>)
List pgsql-bugs
Jelle Ruttenberg ha scritto:
Hello all,

when I try to put a numeric 'timestamp' like 19980528112607 into an
int8-datatype I get the notice 'NOTICE:  Integer input '19980528112607'
is out of range; promoted to float' and the value is put in the database
as 9223091508918288644.
It doesn't matter if I change the value: it will allways be the magical
value 9223091508918288644.

When I use the float8-datatype it all goes well.

Is this a bug in PostgreSQL or has it something to do with
platform-specific limitations?

Thanks,

Jelle.

PostgreSQL: 6.4.2
Platform: SGI IRIX 6.2. IP22

--------------------------------------------------------------
                   NEROC Publishing Solutions

                      Jelle Ruttenberg

De Run 1131, 5503 LB Veldhoven    Phone  : +31-(0)40-2586641
P.O.Box 133, 5500 AC Veldhoven    Fax    : +31-(0)40-2541893
The Netherlands                   E-mail : ruttenberg@neroc.nl
--------------------------------------------------------------

Let me try on v6.5beta1...

prova=> create table test(i8 int8);
CREATE
prova=> insert into test values(19980528112607 );
NOTICE:  Integer input '19980528112607' is out of range; promoted to float
INSERT 145481 1
prova=> insert into test values('19980528112607' );
INSERT 145482 1
prova=> insert into test values('19980528112607'::int8);
INSERT 145483 1
prova=> select * from test;
            i8
--------------
19980528112607
19980528112607
19980528112607
(3 rows)
 

Seems that works fine. And now trying bounds...

prova=> insert into test values(-9223372036854775808);
NOTICE:  Integer input '9223372036854775808' is out of range; promoted to float
ERROR:  Floating point conversion to int64 is out of range
prova=> insert into test values('-9223372036854775808');
INSERT 145486 1
prova=> insert into test values(9223372036854775807);
NOTICE:  Integer input '9223372036854775807' is out of range; promoted to float
ERROR:  Floating point conversion to int64 is out of range
prova=> insert into test values('9223372036854775807');
INSERT 145487 1
prova=> select * from test;
                  i8
--------------------
      19980528112607
      19980528112607
      19980528112607
-9223372036854775808
 9223372036854775807
(5 rows)
 

It works if the data is enclosed with ''. :)

prova=> select version();
version
-------------------------------------------------------------------
PostgreSQL 6.5.0 on i586-pc-linux-gnulibc1, compiled by gcc 2.7.2.1
(1 row)

Jose'
 

pgsql-bugs by date:

Previous
From: Jelle Ruttenberg
Date:
Subject: Re: [GENERAL] int8-datatype: possible bug
Next
From: Peter Galbavy
Date:
Subject: did this ever get integrated ? (for OpenBSD)