Thread

  1. Re: [GENERAL] int8-datatype: possible bug

    Jose Soares <jose@sferacarta.com> — 1999-05-07T12:26:38Z

    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'