You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Lukas Eder (JIRA)" <ji...@apache.org> on 2017/07/20 13:58:00 UTC
[jira] [Created] (DERBY-6952) Regression on
Statement.getGeneratedKeys() on UPDATE statements
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)