Re: Error while retrieving generated keys

From: "Gary Greenberg" <gary(at)icontrol(dot)com>
To: <pgsql-jdbc(at)postgresql(dot)org>
Subject: Re: Error while retrieving generated keys
Date: 2007-03-09 18:36:35
Message-ID: 030801c76279$de152100$740a3c0a@D9GKB4C1
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc pgsql-odbc

I see it now. It should have been, however, mentioned in documentation for
the JDBC driver.

I have also reviewed a recent thread
http://archives.postgresql.org/pgsql-jdbc/2007-03/msg00038.php on a similar
topic.

The gist of it was how to overcome the deficiency of JDBC3 driver using
JDBC1 features.

It looks to me that you, guys, are missing the primary point:

Ability to retrieve auto-generated key is one of the key features of JDB3.
It exists for over 2 years and all JDBC3 drivers I know of, supports it.

A lot of frameworks (JPA, Hibernate, etc.) are relying on it. It means that
they won't work with PostgreSQL.

It also means that developers must do a lot of extra tinkering to adopt many
standard apps for PostgreSQL.

In essence it means that PostgreSQL has fallen into the third world of
database engines.

I used to work a lot with PostgreSQL in mid-90s and loved it but I just
recently returned to this world from working with Oracle, Sybase, etc.

I am really disappointed that PostgreSQL is becoming a fossil.

If there are no plans to make this feature work in the very near future,
I'll be pushing for replacement of the engine.

_____

From: QuanZongliang [mailto:quanzongliang(at)hotmail(dot)com]
Sent: Thursday, March 08, 2007 8:48 PM
To: Gary Greenberg
Cc: pgsql-jdbc(at)postgresql(dot)org
Subject: RE: [JDBC] Error while retrieving generated keys

from AbstractJdbc3Connection.java:

348 public PreparedStatement prepareStatement(String sql, int
autoGeneratedKeys)
349 throws SQLException
350 {
351 if (autoGeneratedKeys != Statement.NO_GENERATED_KEYS)
352 throw new PSQLException(GT.tr("Returning autogenerated keys
is not supported."), PSQLState.NOT_IMPLEMENTED);
353 return prepareStatement(sql);
354 }

So, it is not supported.

Only the prepareStatement(sql, Statement.NO_GENERATED_KEYS) can be used.

_____

From: gary(at)icontrol(dot)com
To: pgsql-jdbc(at)postgresql(dot)org
Subject: [JDBC] Error while retrieving generated keys
Date: Thu, 8 Mar 2007 19:49:52 -0800

My application trew the following exception:

org.postgresql.util.PSQLException: Returning autogenerated keys is not
supported.

at
org.postgresql.jdbc3.AbstractJdbc3Connection.prepareStatement(AbstractJdbc3C
onnection.java:352)

at
org.apache.commons.dbcp.DelegatingConnection.prepareStatement(DelegatingConn
ection.java:394)

at
org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.prepare
Statement(PoolingDataSource.java:370)

I am using 8.2-504.jdbc3 driver with the PostgreSql 8.0.8 on SUSE Linux.

I have not seen anywhere in the documentation that this standard JDBC3
feature is not supported.

Can anyone explain it to me, please.

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Heikki Linnakangas 2007-03-09 19:31:14 Re: Error while retrieving generated keys
Previous Message Dave Cramer 2007-03-09 12:00:55 Re: Error while retrieving generated keys

Browse pgsql-odbc by date

  From Date Subject
Next Message Heikki Linnakangas 2007-03-09 19:31:14 Re: Error while retrieving generated keys
Previous Message David Gardner 2007-03-09 18:11:24 Re: Access violation - probably not the fault of Postgres