Re: PostgreSQL pre-7.1 Linux/Alpha Status... - Mailing list pgsql-hackers

From Peter Eisentraut
Subject Re: PostgreSQL pre-7.1 Linux/Alpha Status...
Date
Msg-id Pine.LNX.4.30.0012211825200.775-100000@peter.localdomain
Whole thread Raw
In response to Re: PostgreSQL pre-7.1 Linux/Alpha Status...  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: PostgreSQL pre-7.1 Linux/Alpha Status...  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
Tom Lane writes:

> Ryan Kirkpatrick <pgsql@rkirkpat.net> writes:
> > INSERT INTO OID_TBL(f1) VALUES ('-1040');
> > ERROR:  oidin: error reading "-1040": value too large
>
> That's coming from a possibly-misguided error check that I put into
> oidin():
>
>     unsigned long cvt;
>     char       *endptr;
>
>     cvt = strtoul(s, &endptr, 10);
>
>     ...
>
>     /*
>      * Cope with possibility that unsigned long is wider than Oid.
>      */
>     result = (Oid) cvt;

        if (sizeof(unsigned long) > sizeof(Oid) && cvt > UINT_MAX)

>     if ((unsigned long) result != cvt)
>         elog(ERROR, "oidin: error reading \"%s\": value too large", s);
>
> On a 32-bit machine, -1040 converts to 4294966256, but on a 64-bit
> machine it converts to 2^64-1040, and the test is accordingly deciding
> that that value won't fit in an Oid.

--
Peter Eisentraut      peter_e@gmx.net       http://yi.org/peter-e/


pgsql-hackers by date:

Previous
From: Alex Pilosov
Date:
Subject: Re: CIDR output format
Next
From: "Rod Taylor"
Date:
Subject: Inline Comments for pg_dump