Re: [SQL] RE: [GENERAL] Problem with SELECT on large negative INT4 - Mailing list pgsql-sql

From Bruce Momjian
Subject Re: [SQL] RE: [GENERAL] Problem with SELECT on large negative INT4
Date
Msg-id 200001271637.LAA23266@candle.pha.pa.us
Whole thread Raw
In response to RE: [GENERAL] Problem with SELECT on large negative INT4  ("Hiroshi Inoue" <Inoue@tpf.co.jp>)
Responses Re: [SQL] RE: [GENERAL] Problem with SELECT on large negative INT4  (Tom Lane <tgl@sss.pgh.pa.us>)
RE: [SQL] RE: [GENERAL] Problem with SELECT on large negative INT4  ("Hiroshi Inoue" <Inoue@tpf.co.jp>)
Re: [SQL] RE: [GENERAL] Problem with SELECT on large negative INT4  (John Brothers <johnbr@mindspring.com>)
List pgsql-sql
[Charset iso-8859-1 unsupported, filtering to ASCII...]
> > -----Original Message-----
> > From: owner-pgsql-general@postgresql.org
> > [mailto:owner-pgsql-general@postgresql.org]On Behalf Of Nicolas Huillard
> >
> > 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.
> >
>
> Could you try the follwoing patch ?

Hiroshi, I don't see this in the main tree, nor do I see it having been
requested for application. Should I apply it?

>
> Regards.
>
> Hiroshi Inoue
>
> *** nbtcompare.c        2000/01/11 03:33:34     1.3
> --- nbtcompare.c        2000/01/19 05:42:06
> ***************
> *** 34,40 ****
>   int32
>   btint4cmp(int32 a, int32 b)
>   {
> !       return a - b;
>   }
>
>   int32
> --- 34,45 ----
>   int32
>   btint4cmp(int32 a, int32 b)
>   {
> !       if (a > b)
> !               return 1;
> !       else if (a == b)
> !               return 0;
> !       else
> !               return -1;
>   }
>
>   int32
>
>
>
> ************
>
>


--
  Bruce Momjian                        |  http://www.op.net/~candle
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

pgsql-sql by date:

Previous
From: "Hiroshi Inoue"
Date:
Subject: RE: [GENERAL] Problem with SELECT on large negative INT4
Next
From: Don Baccus
Date:
Subject: Re: [HACKERS] Ars Digita and PostgreSQL