Re: [GENERAL] Problem with SELECT on large negative INT4

From: John Brothers <johnbr(at)mindspring(dot)com>
To: Nicolas Huillard <nhuillard(at)ghs(dot)fr>, "'pgsql-general(at)hub(dot)org'" <pgsql-general(at)hub(dot)org>, "'pgsql-sql(at)hub(dot)org'" <pgsql-sql(at)hub(dot)org>
Subject: Re: [GENERAL] Problem with SELECT on large negative INT4
Date: 2000-01-28 03:48:39
Message-ID: 4.1.20000127224614.00c96190@pop.mindspring.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general pgsql-hackers pgsql-sql

We have the same problem with 64-bit integers - and it isn't just
psql - the same problem exists in jdbc.

Anyways, to fix it, we did the following:

'-11233232322233232323232321232'::int8

whenever we did any operation on the large field.

you may want to try

'-2057496808|'::int4

in the same manner.

At 01:37 PM 1/27/00 +0100, Nicolas Huillard wrote:
>I have a DB with is updated using MS Access. Primary keys are Int4 with
>default random values ("NuméroAuto" + "Aléatoire" in Access).
>The DB is migrated as-is in Postgres, with tbl_prod.cle_prod field
>containing values from -2057496808 to 2139583719.
>When I SELECT in the table, using the INT4 cle_prod value, PG doesn't find
>the tuple. When I SELECT using the VARCHAR(10) ref_prod value, PG finds the
>tuple, and show the right value for the cle_prod filed : the same as the one
>I SELECTed for...
>
>This sounds like the long negative integer values given in PSQL is not
>converted correctly while executing.
>Using a long positive integer value, all works like a charm...
>
>Below is the queries type sto sho what append.
>I'm using Postgres 6.5.2 from the RPMs.
>
>Nicolas Huillard
>
>
>
>
>gest=> select cle_prod, ref_prod from tbl_prod where ref_prod='4866VC';
> cle_prod|ref_prod
>-----------+--------
>-2057496808|4866VC
>(1 row)
>
>gest=> select cle_prod, ref_prod from tbl_prod where cle_prod = -2057496808;
>cle_prod|ref_prod
>--------+--------
>(0 rows)
>
>gest=> \d tbl_prod
>Table = tbl_prod
>+----------------------------------+----------------------------------+----
---+
>| Field | Type |
Length|
>+----------------------------------+----------------------------------+----
---+
>| cle_prod | int4 not null default nextval('" |
4 |
>| ref_prod | varchar() not null |
10 |
>...
>+----------------------------------+----------------------------------+----
---+
>Index: tbl_prod_pkey
>
>gest=> select version();
>version
>--------------------------------------------------------------
>PostgreSQL 6.5.2 on i486-pc-linux-gnu, compiled by gcc 2.7.2.3
>(1 row)
>
>gest=>
>
>
>************

------------
johnbr(at)incanta(dot)net

In response to

Browse pgsql-general by date

  From Date Subject
Next Message John Brothers 2000-01-28 03:51:40 Re: [SQL] RE: [GENERAL] Problem with SELECT on large negative INT4
Previous Message Ed Loehr 2000-01-28 00:52:15 Re: [GENERAL] Large Functions and Index Rebuild

Browse pgsql-hackers by date

  From Date Subject
Next Message The Hermit Hacker 2000-01-28 03:48:42 Re: [HACKERS] [6.5.3] 'attribute not found'
Previous Message Bruce Momjian 2000-01-28 03:46:53 Re: [HACKERS] TODO list check

Browse pgsql-sql by date

  From Date Subject
Next Message John Brothers 2000-01-28 03:51:40 Re: [SQL] RE: [GENERAL] Problem with SELECT on large negative INT4
Previous Message Chairudin Sentosa Harjo 2000-01-28 03:07:09 Re: [SQL] Problems with create temporary table and select ... into