db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bryan Pendleton (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (DERBY-6849) Statement.RETURN_GENERATED_KEYS returns "keys" even if there are no auto-generated fields
Date Fri, 01 Jan 2016 18:52:39 GMT

     [ https://issues.apache.org/jira/browse/DERBY-6849?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Bryan Pendleton updated DERBY-6849:
    Attachment: DERBY6849Repro.java

I looked briefly at this job. The description is clear, but the
code snippets are incomplete and aren't a working program
by themselves.

I didn't spend a lot of time on this, but I tried to take the code
snippets from the distribution and turn them into a standalone
test case, and failed.

Attached is DERBY6849Repro.java, which, against both 10.9
and trunk, prints

    getGeneratedKeys returned null

One thing I did that may be very significant is to use a simple
VARCHAR type for the 'image' column, rather than using BLOB.

John, perhaps you could have a look at my attached program
and tell us whether:
a) This program works differently for you than it did for me
b) You can alter my trivial program to produce a standalone
    testcase that demonstrates the problem you're seeing with
   your application?



> Statement.RETURN_GENERATED_KEYS returns "keys" even if there are no auto-generated fields
> -----------------------------------------------------------------------------------------
>                 Key: DERBY-6849
>                 URL: https://issues.apache.org/jira/browse/DERBY-6849
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC
>    Affects Versions:
>            Reporter: John Hendrikx
>         Attachments: DERBY6849Repro.java
> I have a very simple table:
> {noformat}
>     CREATE TABLE images (
>       url varchar(1000) NOT NULL,
>       image blob NOT NULL,
>       CONSTRAINT images_url PRIMARY KEY (url)
>     );
> {noformat}
> No auto-generated fields.  However when I do an insert, JDBC tells me there are auto-generated
keys (rs.next() does not return false and a LONG value is returned):
> {noformat}
>       try(PreparedStatement statement = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS))
>         setParameters(parameterValues, statement);
>         statement.execute();
>         try(ResultSet rs = statement.getGeneratedKeys()) {
>           if(rs.next()) {
>             return rs.getObject(1);
>           }
>           return null;
>         }
>       }
>       catch(SQLException e) {
>         throw new DatabaseException(this, sql + ": " + parameters, e);
>       }
> {noformat}
> This sounds like a bug to me.  For comparison, PostgreSQL does not have the same behaviour.

This message was sent by Atlassian JIRA

View raw message