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'