Re: Continuing problems with using OIDs via JDBC - Mailing list pgsql-jdbc

From Oliver Friedrich
Subject Re: Continuing problems with using OIDs via JDBC
Date
Msg-id BCEFLCEOHFPNLLAKKGAAEELBCIAA.oliver@familie-friedrich.de
Whole thread Raw
In response to Continuing problems with using OIDs via JDBC  ("M. A. Sridhar" <m_a_sridhar@yahoo.com>)
Responses Re: Continuing problems with using OIDs via JDBC
List pgsql-jdbc
What version of PostgreSQL you are using? A Pre-7.1.x version?

A few days ago i have some problems like yours with large object support. I
have updated my postgres to 7.1.3 and now it works great with PostgreSQL
JDBC driver 7.2b3

Oliver



-----Original Message-----
From: pgsql-jdbc-owner@postgresql.org
[mailto:pgsql-jdbc-owner@postgresql.org]On Behalf Of M. A. Sridhar
Sent: Saturday, January 26, 2002 11:05 PM
To: pgsql-jdbc@postgresql.org
Subject: [JDBC] Continuing problems with using OIDs via JDBC


Hello folks,

I would greatly appreciate some help with using large objects in PostgreSQL
via JDBC. I need to create a JDBC-compliant database application tha
supports multiple database vendors, so using any PostgreSQL-specific
extensions is difficult. I am trying to replace my current Oracle-on-Linux
setup with PostgreSQL, and not having much luck.

My setup is Red Hat Linux 7.1 (or 7.2) running the IBM JDK 1.3. I have
installed the PostgreSQL version distributed via the stock Red Hat RPMs for
that OS version.

Also, I am a relative newbie to PostgreSQL, although I have worked with
other databases (Oracle and Pointbase in particular). So please forgive any
errors/omissions on my part.

I need to store and retrieve large binary objects. To this end, I have
followed the directions in the JDBC documentation distributed with the
PostgreSQL package. Specifically I use the oid data type wherever a large
object is needed, and the ResultSet's setBinaryStream/getBinaryStream
methods to store and retrieve data.

When I try this setup using the JDBC 7.1-1.2 drivers, the problem that
arises is the driver's inability to handle null values:

FastPath call returned ERROR:  inv_open: large object 0 not found

I would expect that, if the value is null, the driver would return null
instead of throwing an exception.

I found reports of this bug on Google and the PostgreSQL mailing list, and
the recommendation was to use the newer drivers. Well, that doesn't work
either: both the 7.1-1.2 and 7.1-1.3 drivers (which I downloaded from
jdbc.fastcrypt.com) fail with an error like

java.sql.SQLException: ERROR:  oidin: error in "..."

when I try to insert a record containing a blob.

And yes, I do use setAutoCommit to ensure that retrievals/updates happen
within a transaction, as described in the JDBC documentation.

So I am now unable to use PostgreSQL. Any help is greatly appreciated. I
will be glad to give more details (e.g., source code snippets) to clarify
if needed.

Thanks in advance.



=====
Sridhar
---
M. A. Sridhar
m_a_sridhar@yahoo.com

__________________________________________________
Do You Yahoo!?
Great stuff seeking new owners in Yahoo! Auctions!
http://auctions.yahoo.com

---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
    (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)


pgsql-jdbc by date:

Previous
From: "M. A. Sridhar"
Date:
Subject: Continuing problems with using OIDs via JDBC
Next
From: "M. A. Sridhar"
Date:
Subject: Re: Continuing problems with using OIDs via JDBC