Re: Large Objects with OID > 2147483647

From: Kris Jurka <books(at)ejurka(dot)com>
To: Albe Laurenz <all(at)adv(dot)magwien(dot)gv(dot)at>
Cc: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: Large Objects with OID > 2147483647
Date: 2007-02-19 06:07:37
Message-ID: Pine.BSO.4.64.0702190106330.24412@leary.csoft.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

On Mon, 11 Dec 2006, Albe Laurenz wrote:

> In a posting to the newsgroup comp.databases.postgresql,
> somebody has complained that he gets
>
> org.postgresql.util.PSQLException: Bad value for type int : 2338491788.
>
> when he tries to access a BLOB.
> The problem is new for the poster, it used to work.
>
> This looks like a bug in the driver to me:
> In the driver source code, I see that the OID is treated as 'int',
> which according to
> http://java.sun.com/docs/books/jls/third_edition/html/typesValues.html
> is a 4 byte signed integer, while OIDs are 4 byte unsigned integers.
>
> So accessing Large Objects with OID > 2147483647 as BLOB will not
> work, right? I think that 'long' would be more appropriate than 'int'.
>
> Is this problem known?
>

I have put a fix into CVS for 8.1, 8.2 and head drivers that stores the
OIDs as longs insteads of ints.

Kris Jurka

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Albe Laurenz 2007-02-19 08:44:22 Re: Large Objects with OID > 2147483647
Previous Message John R Pierce 2007-02-19 05:27:58 Re: query using JDBC with postgresql