Problems with temporary tables created in callable functions

From: Akhil Srinivasan <akhilss(at)gmail(dot)com>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: Problems with temporary tables created in callable functions
Date: 2005-06-20 06:27:09
Message-ID: ad76b9f2050619232793a567d@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Hi
I have a an application that uses a lot of stored functions, some of them
which create temporary tables and refcursors that point to the tables.
Something that comes up occasionally are errors like

This is when we have some code in the function to delete existing temporary
tables.
ERROR: relation with OID xxxxx does not exist.
ERROR: relation "TEMPSTOCKVALUEALERT" already exists

When we comment that code we get errors like
ERROR: relation "TEMPSTOCKANALYSIS" already exists. This happens every
second call to the function.

In the jdbc call code we have setAutoCommit to false, And I have tried a
couple of options when preparing the call like

CallableStatement proc = con.prepareCall("{ ? = call
\"queryStockAnalysisSingle\" ( ?,?,?,? ) }"
,ResultSet.CONCUR_READ_ONLY,ResultSet.CLOSE_CURSORS_AT_COMMIT);

CallableStatement proc = con.prepareCall("{ ? = call
\"queryStockAnalysisSingle\" ( ?,?,?,? ) }"
,ResultSet.CONCUR_READ_ONLY,ResultSet.HOLD_CURSORS_OVER_COMMIT);

None of them seem to work. Has anybody faced this problem? And hopefully
cone up with a usable fix.
The application has a commons-dbcp maintaining a connection pool to the
database server. The jdbc driver used is the jdbc3. THe database version is
7.4.x. It has been deployed on a Debian Linux system with kernel version
2.6.8.

Thanks
Akhil Srinivasan

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Minal 2005-06-20 06:28:06 JDBC Connectivity..
Previous Message Oliver Jowett 2005-06-17 21:28:51 Re: JDBC compressed stream