Lukas Eder created DERBY-6952: --------------------------------- Summary: Regression on Statement.getGeneratedKeys() on UPDATE statements Key: DERBY-6952 URL: https://issues.apache.org/jira/browse/DERBY-6952 Project: Derby Issue Type: Bug Components: JDBC Affects Versions: 10.13.1.1 Reporter: Lukas Eder
Consider this program: {code} import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; import java.util.Properties; import org.apache.derby.jdbc.EmbeddedDriver; public class Derby { public static void main(String[] args) throws Exception { try (Connection c1 = new EmbeddedDriver().connect("jdbc:derby:memory:test;create=true", new Properties()); Statement s = c1.createStatement()) { s.execute( "CREATE TABLE test (" + "id INT PRIMARY KEY NOT NULL GENERATED ALWAYS AS IDENTITY," + "val INT)"); try { s.executeUpdate("INSERT INTO test (val) VALUES (1)"); try (PreparedStatement p = c1.prepareStatement("UPDATE test SET val = 2 WHERE id = 1", Statement.RETURN_GENERATED_KEYS)) { p.executeUpdate(); try (ResultSet rs = p.getGeneratedKeys()) { while (rs.next()) System.out.println(rs.getString(1)); } } } finally { s.execute("DROP TABLE test"); } } } } {code} Running this with Derby version 10.12.1.1 yields 1 With 10.13.1.1, it yields: 0 I'm not sure if this is (supposed to be) working at all, but the change is certainly a bit confusing. -- This message was sent by Atlassian JIRA (v6.4.14#64029)