Int8: problems

From: Jelle Ruttenberg <ruttenberg(at)neroc(dot)nl>
To: <Thomas(dot)Lockhart(at)jpl(dot)nasa(dot)gov>, <pgsql-general(at)postgresql(dot)org>
Subject: Int8: problems
Date: 1999-05-11 14:05:57
Message-ID: 199905111359.PAA07626@mail.neroc.nl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hello Thomas,

I installed the whole PostgreSQL-bundle, including int8, out of the box
and now I'm trying to use the int8-datatype. It looks as if I can get a
value in the table but not in a 'normal' way out of it. I tried your
testscript itest.sql and below you see it's output.

Another (?) problem: when I put a unquoted value into an int8 (and also a
float8), I get the following message:
pgsql=> insert into qtest values(19990511161616);
NOTICE: Integer input '19990511161616' is out of range; promoted to float
INSERT 148320 1
pgsql=> select float8(q1) from qtest;
float8
--------------------
123
123
4.56789012345679e+15
4.56789012345679e+15
4.56789012345679e+15
19990511161616
(6 rows)

Maybe you know a solution to this problems? At the moment I use the
float8-datatype for large numbers, but, well: when there is an int8 why
not use it...

Thank you,

Jelle.

pgsql=> select version();
version
----------------------------------------------------
PostgreSQL 6.4.2 on mips-sgi-irix6.2, compiled by cc

create table qtest(q1 int8, q2 int8);
CREATE

insert into qtest values('123','456');
INSERT 148298 1
insert into qtest values('123','4567890123456789');
INSERT 148299 1
insert into qtest values('4567890123456789','123');
INSERT 148300 1
insert into qtest values('4567890123456789','4567890123456789');
INSERT 148301 1
insert into qtest values('4567890123456789','-4567890123456789');
INSERT 148302 1

select * from qtest;
q1| q2
-------------------+-------------------
9223091508918288644|9223091508918288644
9223091508918288644|9223091508918288644
9223091508918288644|9223091508918288644
9223091508918288644|9223091508918288644
9223091508918288644|9223091508918288644
(5 rows)

select q1, -q1 as minus from qtest;
q1| minus
-------------------+-------------------
9223091508918288644|9223091508918288644
9223091508918288644|9223091508918288644
9223091508918288644|9223091508918288644
9223091508918288644|9223091508918288644
9223091508918288644|9223091508918288644
(5 rows)

select q1, q2, q1 + q2 as plus from qtest;
q1| q2| plus
-------------------+-------------------+-------------------
9223091508918288644|9223091508918288644|9223091508918288644
9223091508918288644|9223091508918288644|9223091508918288644
9223091508918288644|9223091508918288644|9223091508918288644
9223091508918288644|9223091508918288644|9223091508918288644
9223091508918288644|9223091508918288644|9223091508918288644
(5 rows)

select q1, q2, q1 - q2 as minus from qtest;
q1| q2| minus
-------------------+-------------------+-------------------
9223091508918288644|9223091508918288644|9223091508918288644
9223091508918288644|9223091508918288644|9223091508918288644
9223091508918288644|9223091508918288644|9223091508918288644
9223091508918288644|9223091508918288644|9223091508918288644
9223091508918288644|9223091508918288644|9223091508918288644
(5 rows)

select q1, q2, q1 * q2 as multiply from qtest
where q1 < 1000 or (q2 > 0 and q2 < 1000);
q1| q2| multiply
-------------------+-------------------+-------------------
9223091508918288644|9223091508918288644|9223091508918288644
9223091508918288644|9223091508918288644|9223091508918288644
9223091508918288644|9223091508918288644|9223091508918288644
(3 rows)

--select q1, q2, q1 * q2 as multiply qtest
-- where q1 < '1000'::int8 or (q2 > '0'::int8 and q2 < '1000'::int8);
select q1, q2, q1 / q2 as divide from qtest;
q1| q2| divide
-------------------+-------------------+-------------------
9223091508918288644|9223091508918288644|9223091508918288644
9223091508918288644|9223091508918288644|9223091508918288644
9223091508918288644|9223091508918288644|9223091508918288644
9223091508918288644|9223091508918288644|9223091508918288644
9223091508918288644|9223091508918288644|9223091508918288644
(5 rows)

select q1, float8(q1) from qtest;
q1|float8
-------------------+--------------------
9223091508918288644|123
9223091508918288644|123
9223091508918288644|4.56789012345679e+15
9223091508918288644|4.56789012345679e+15
9223091508918288644|4.56789012345679e+15
(5 rows)

select q2, float8(q2) from qtest;
q2|float8
-------------------+---------------------
9223091508918288644|456
9223091508918288644|4.56789012345679e+15
9223091508918288644|123
9223091508918288644|4.56789012345679e+15
9223091508918288644|-4.56789012345679e+15
(5 rows)

select q1, int8(float8(q1)) from qtest;
q1| int8
-------------------+-------------------
9223091508918288644|9223091508918288644
9223091508918288644|9223091508918288644
9223091508918288644|9223091508918288644
9223091508918288644|9223091508918288644
9223091508918288644|9223091508918288644
(5 rows)

--------------------------------------------------------------
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(at)neroc(dot)nl
--------------------------------------------------------------

Browse pgsql-general by date

  From Date Subject
Next Message Jonny Hinojosa 1999-05-11 15:03:43 Re: [GENERAL] pg_database corrupted(?) If so, what do I do????
Previous Message Carlos Peralta Ramirez 1999-05-11 11:21:30 More problems with arrays !!!!!