[BUGS] BUG #1988: keygen not implemented

2005-10-23 Thread Mike Clements

The following bug has been logged online:

Bug reference:  1988
Logged by:  Mike Clements
Email address:  [EMAIL PROTECTED]
PostgreSQL version: 8.0.3
Operating system:   WinXP
Description:keygen not implemented
Details: 

Create a table with an integer primary key using a sequence to automatically
assign values.
Connect to the database with a JDBC client.
Insert a row into the table using:
Connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
The driver throws an exception saying this method is not yet implemented.
What it should do is create the prepared statement so when you execute it,
the returned ResultSet has the generated primary key.

---(end of broadcast)---
TIP 1: if posting/reading through Usenet, please send an appropriate
   subscribe-nomail command to [EMAIL PROTECTED] so that your
   message can get through to the mailing list cleanly


Re: [BUGS] BUG #1988: keygen not implemented

2005-10-24 Thread Mike Clements
Thanks for the info. I found a workaround by selecting the current value of the 
sequence after doing the insert. This however is not desirable since it 
requires another round trip call to the DB, and it requires PostGRE SQL 
specific code in my "generic" JDBC client. If the driver supported 
getGeneratedKeys(), client applications could perform better and be truly 
generic.

Also looking at the release notes I see I'm not the only person asking for this 
feature... Good luck.

> -Original Message-
> From: Oliver Jowett [mailto:[EMAIL PROTECTED] 
> Sent: Sunday, October 23, 2005 2:24 PM
> To: Mike Clements
> Cc: pgsql-bugs@postgresql.org
> Subject: Re: [BUGS] BUG #1988: keygen not implemented
> 
> Mike Clements wrote:
> 
> > Insert a row into the table using:
> > Connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
> > The driver throws an exception saying this method is not 
> yet implemented.
> 
> This is an optional part of the JDBC spec, and the driver 
> doesn't claim 
> to support it in the metadata it provides 
> (DatabaseMetaData.supportsGetGeneratedKeys() returns false).
> 
> > What it should do is create the prepared statement so when 
> you execute it,
> > the returned ResultSet has the generated primary key.
> 
> Unfortunately this requires functionality in the backend that 
> does not 
> yet exist (support for "INSERT .. RETURNING ...", or similar).
> 
> -O
> 
> 

---(end of broadcast)---
TIP 4: Have you searched our list archives?

   http://archives.postgresql.org