You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by Apache Wiki <wi...@apache.org> on 2011/03/08 00:11:41 UTC

[Db-derby Wiki] Update of "JdbcFourOneTesting" by lilywei

Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Db-derby Wiki" for change notification.

The "JdbcFourOneTesting" page has been changed by lilywei.
The comment on this change is: create JdbcFourOneTesting page.
http://wiki.apache.org/db-derby/JdbcFourOneTesting

--------------------------------------------------

New page:
'''Table of Contents''' <<TableOfContents(3)>>

This webpage tracks the tests needed to support JDBC 4.1. See https://issues.apache.org/jira/browse/DERBY-4869

== JDBC 4.1 Testing ==


Legend:

 * <<Icon(checkmark.png)>> - Done.
 * <<Icon(angry.png)>> - Needs work


|| '''Status''' || '''Method''' || '''Description''' || '''Derby Change''' || '''Size''' || '''Owner''' ||
|| <<Icon(angry.png)>> ||'''!CallableStatement.getObject(int,Class)'''||Optional new method. Retrieves an OUT or INOUT parameter as the desired class type.||Add to JDBC 4 implementation (requires generics).||Medium||Lily||
|| <<Icon(angry.png)>> ||'''!CallableStatement.getObject(String,Class)'''||Optional new method. See getObject(int,Class).||Add to JDBC 4 implementation (requires generics).||Small||Lily||
|| <<Icon(angry.png)>> ||'''Connection.abort(Executor)'''||Mandatory new method. Closes the Connection and lets the Executor release resources lazily.||Add to JDBC 4 implementation (requires java.util.concurrent.Executor interface which was introduced in Java 5).||Medium||-||
|| <<Icon(angry.png)>> ||'''Connection.getNetworkTimeout()'''||Optional new method.||Throw SQLFeatureNotSupportedException.||Small||-||
|| <<Icon(angry.png)>> ||'''Connection.getTypeMap()'''||Spec clarification.||No action needed.||None||-||
|| <<Icon(angry.png)>> ||'''Connection.getSchema()'''||Mandatory new method. Gets the name of the session's schema.||Add to JSR 169 implementation.||Small||-||
|| <<Icon(angry.png)>> ||'''Connection.setNetworkTimeout(Executor)'''||Optional new method. Sets the client timeout.||Throw SQLFeatureNotSupportedException.||Small||-||
|| <<Icon(angry.png)>> ||'''Connection.setSchema(String)'''||Mandatory new method. Sets the name of the session's schema.||Add to JSR 169 implementation.||Small||-||
|| <<Icon(angry.png)>> ||'''Connection.setTypeMap(Map)'''||Spec clarification.||No action needed.||None||-||
|| <<Icon(angry.png)>> ||'''DBMD.generatedKeyAlwaysReturned()'''||Mandatory new method. Reports whether Statement.getGeneratedKeys() always returns a ResultSet even after Statement.execute(String query, String[] columnNames) is called with columnNames that are not identity columns.||Embedded Derby throws an exception if you call execute(String,String[]) with columnNames that are not identity columns, so the return value of getGeneracase, getGeneratedKeys() returns a ResultSet with generated values. Note that Derby only allows you to define one identity column per table. Because of the network behavior, I think that DBMD.generatedKeyAlwaysReturned() should return true.||Small||-||
|| <<Icon(angry.png)>> ||'''DBMD.getPseudoColumns(String,String,String,String)'''||Mandatory new method. Shows the hidden columns in a table.||Derby doesn't have hidden columns. Return an empty ResultSet with the correct column structure. ||Small||-||
|| <<Icon(angry.png)>> ||'''DBMD.getColumns(String,String,String,String)'''||Changed method. New field reports whether a column is generated as defined by the SQL Standard, part 2, section 4.14.8. These are columns defined by generation clauses built out of deterministic expressions involving other columns in the row. These are what Derby call generaated colmns||Add this field to the metadata query.||Small||-||
|| <<Icon(angry.png)>> ||'''DBMD.getProcedureColumns(String,String,String,String)'''||Spec clarification.||Nothing to do.||None||-||
|| <<Icon(angry.png)>> ||'''DBMD.supportsStatementPooling()'''||Spec clarification.||Nothing to do.||None||-||
|| <<Icon(angry.png)>> ||'''Driver.getParentLogger()'''||Optional new method. Returns the root logger for this Driver.||Derby doesn't use java.util.logging so this method can throw SQLFeatureNotSupportedException.||Small||-||
|| <<Icon(angry.png)>> ||'''!PreparedStatement.execute()'''||Should throw a SQLTimeoutException if the query runs beyond the limit set by setQueryTimeout().||The timeout work done for Statement.execute() should apply here.||Small||-||
|| <<Icon(angry.png)>> ||'''!PreparedStatement.executeQuery()'''||Should throw a SQLTimeoutException if the query runs beyond the limit set by setQueryTimeout().||The timeout work done for Statement.execute() should apply here.||Small||-||
|| <<Icon(angry.png)>> ||'''!PreparedStatement.executeUpdate()'''||Should throw a SQLTimeoutException if the query runs beyond the limit set by setQueryTimeout().||The timeout work done for Statement.execute() should apply here.||Small||-||
|| <<Icon(angry.png)>> ||'''ResultSet.absolute(int)'''||If the argument is 0, then the ResultSet is positioned before the first row.||Verify that Derby behaves this way. If it doesn't, make this change. Note that Derby does behave this way. This is verified by !ScrollCursors2Test.testScrollInsensitivePositive()||Small||-||
|| <<Icon(angry.png)>> ||'''ResultSet.getObject(int,Class)'''||Optional new method. Returns the column as an object of the requested type, provided that the coercion is supported in Appendix B, table B-1.||Add this overload to the JDBC 4 implementation (uses generics). Some testing may be required to verify that Derby really supports the required coercions.||Medium||-||
|| <<Icon(angry.png)>> ||'''ResultSet.getObject(String,Class)'''||Mandatory new method. Behaves like getObject(int,Class).||The work done for getObject(int,Class) should apply here.||Small||-||
|| <<Icon(angry.png)>> ||'''Statement.addBatch(String)'''||Clarifies that this method can't be called on a !PreparedStatement or !CallableStatement.||Verify that Derby behaves this way. If it doesn't, make this change.||Small||-||
|| <<Icon(angry.png)>> ||'''Statement.closeOnCompletion()'''||Mandatory new method. Automatically close the Statement when its dependent objects (like ResultSets) are closed.||Implement this behavior.||Medium||-||
|| <<Icon(angry.png)>> ||'''Statement.execute(String)'''||Throw SQLTimeoutException when the statement times out. Also don't allow this method to be called on !PreparedStatements or !CallableStatements.||Implement this behavior.||Medium||-||
|| <<Icon(angry.png)>> ||'''Statement.execute(String,int)'''||See Statement.execute(String).||Changes for execute(String) should apply here.||Small||-||
|| <<Icon(angry.png)>> ||'''Statement.execute(String,int[])'''||See Statement.execute(String).||Changes for execute(String) should apply here.||Small||-||
|| <<Icon(angry.png)>> ||'''Statement.execute(String,String[])'''||See Statement.execute(String).||Changes for execute(String) should apply here.||Small||-||
|| <<Icon(angry.png)>> ||'''Statement.executeBatch()'''||Throw SQLTimeoutException as for Statement.execute(String).||Changes for execute(String) should apply here.||Small||-||
|| <<Icon(angry.png)>> ||'''Statement.executeQuery(String)'''||See Statement.execute(String).||Changes for execute(String) should apply here.||Small||-||
|| <<Icon(angry.png)>> ||'''Statement.executeUpdate(String)'''||See Statement.execute(String).||Changes for execute(String) should apply here.||Small||-||
|| <<Icon(angry.png)>> ||'''Statement.executeUpdate(String,int)'''||See Statement.execute(String).||Changes for execute(String) should apply here.||Small||-||
|| <<Icon(angry.png)>> ||'''Statement.executeUpdate(String,int[])'''||See Statement.execute(String).||Changes for execute(String) should apply here.||Small||-||
|| <<Icon(angry.png)>> ||'''Statement.executeUpdate(String,String[])'''||See Statement.execute(String).||Changes for execute(String) should apply here.||Small||-||
|| <<Icon(angry.png)>> ||'''Statement.isCloseOnCompletion()'''||Mandatory new method. Reports whether the Statement automatically closes when its dependent objects (like !ResultSets) are closed.||Implement this behavior.||Small||-||
|| <<Icon(angry.png)>> ||'''Statement.setQueryTimeout(int)'''||Spec clarification.||Nothing to do.||None||-||
|| <<Icon(angry.png)>> ||'''!CommonDataSource.getParentLogger()'''||Optional new method. Returns the root logger for this data source.||Derby doesn't use java.util.logging so this method can throw SQLFeatureNotSupportedException.||Small||-||