Index: java/client/org/apache/derby/client/am/Connection.java =================================================================== --- java/client/org/apache/derby/client/am/Connection.java (revision 620889) +++ java/client/org/apache/derby/client/am/Connection.java (working copy) @@ -1719,20 +1719,28 @@ } public java.sql.PreparedStatement prepareStatement(String sql, int columnIndexes[]) throws SQLException { + PreparedStatement ps = null; try { if (agent_.loggingEnabled()) { agent_.logWriter_.traceEntry(this, "prepareStatement", sql, columnIndexes); } checkForClosedConnection(); - throw new SqlException(agent_.logWriter_, - new ClientMessageId (SQLState.NOT_IMPLEMENTED), - "prepareStatement(String, int[])"); + ps = prepareStatementX(sql, + java.sql.ResultSet.TYPE_FORWARD_ONLY, + java.sql.ResultSet.CONCUR_READ_ONLY, + holdability(), + java.sql.Statement.RETURN_GENERATED_KEYS, + null); + if (agent_.loggingEnabled()) { + agent_.logWriter_.traceExit(this, "prepareStatement", ps); + } } catch ( SqlException se ) { throw se.getSQLException(); } + return ps; } public java.sql.PreparedStatement prepareStatement(String sql, String columnNames[]) throws SQLException { @@ -1746,7 +1754,7 @@ java.sql.ResultSet.CONCUR_READ_ONLY, holdability(), java.sql.Statement.RETURN_GENERATED_KEYS, - columnNames); + null); if (agent_.loggingEnabled()) { agent_.logWriter_.traceExit(this, "prepareStatement", ps); } @@ -2078,12 +2086,6 @@ new Integer (autoGeneratedKeys)); } - if (columnNames != null) { - throw new SqlException(agent_.logWriter_, - new ClientMessageId (SQLState.NOT_IMPLEMENTED), - "getAutoGeneratedKeys(columnNames == null)"); - } - } public boolean isXAConnection() { Index: java/client/org/apache/derby/client/am/Statement.java =================================================================== --- java/client/org/apache/derby/client/am/Statement.java (revision 620889) +++ java/client/org/apache/derby/client/am/Statement.java (working copy) @@ -1194,9 +1194,12 @@ agent_.logWriter_.traceEntry(this, "executeUpdate", sql, columnIndexes); } checkForClosedStatement(); - throw new SqlException(agent_.logWriter_, - new ClientMessageId(SQLState.NOT_IMPLEMENTED), - "executeUpdate(String, int[])"); + autoGeneratedKeys_ = Statement.RETURN_GENERATED_KEYS; + int updateValue = executeUpdateX(sql); + if (agent_.loggingEnabled()) { + agent_.logWriter_.traceExit(this, "executeUpdate", updateValue); + } + return updateValue; } catch ( SqlException se ) { @@ -1211,7 +1214,8 @@ if (agent_.loggingEnabled()) { agent_.logWriter_.traceEntry(this, "executeUpdate", sql, columnNames); } - generatedKeysColumnNames_ = columnNames; + generatedKeysColumnNames_ = null; + autoGeneratedKeys_ = Statement.RETURN_GENERATED_KEYS; int updateValue = executeUpdateX(sql); if (agent_.loggingEnabled()) { agent_.logWriter_.traceExit(this, "executeUpdate", updateValue); @@ -1253,9 +1257,15 @@ agent_.logWriter_.traceEntry(this, "execute", sql, columnIndexes); } checkForClosedStatement(); - throw new SqlException(agent_.logWriter_, - new ClientMessageId(SQLState.NOT_IMPLEMENTED), - "execute(String, int[])"); + + + generatedKeysColumnNames_ = null; + autoGeneratedKeys_ = Statement.RETURN_GENERATED_KEYS; + boolean b = executeX(sql); + if (agent_.loggingEnabled()) { + agent_.logWriter_.traceExit(this, "execute", b); + } + return b; } catch ( SqlException se ) { @@ -1270,7 +1280,8 @@ if (agent_.loggingEnabled()) { agent_.logWriter_.traceEntry(this, "execute", sql, columnNames); } - generatedKeysColumnNames_ = columnNames; + generatedKeysColumnNames_ = null; + autoGeneratedKeys_ = Statement.RETURN_GENERATED_KEYS; boolean b = executeX(sql); if (agent_.loggingEnabled()) { agent_.logWriter_.traceExit(this, "execute", b);