Table of Contents

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

JDBC 4.1 Tasks

Legend:

Status

Method

Description

Derby Change

Size

Owner

(./)

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

Rick

(./)

CallableStatement.getObject(String,Class)

Optional new method. See getObject(int,Class).

Add to JDBC 4 implementation (requires generics). Throw SQLFeatureNotSupportedException. Please note this overload raises an unsupported feature exception just like the String overloads of the other getXXX() methods

Small

Rick

(./)

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

Rick

(./)

Connection.getNetworkTimeout()

Optional new method.

Throw SQLFeatureNotSupportedException.

Small

Rick

(./)

Connection.getTypeMap()

Spec clarification.

No action needed.

None

-

(./)

Connection.getSchema()

Mandatory new method. Gets the name of the session's schema.

Add to JSR 169 implementation.

Small

Rick

(./)

Connection.setNetworkTimeout(Executor)

Optional new method. Sets the client timeout.

Throw SQLFeatureNotSupportedException.

Small

Rick

(./)

Connection.setSchema(String)

Mandatory new method. Sets the name of the session's schema.

Add to JSR 169 implementation.

Small

Rick

(./)

Connection.setTypeMap(Map)

Spec clarification.

No action needed. Throw SQLFeatureNotSupportedException

None

Lily

(./)

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

Rick

(./)

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

Rick

(./)

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

Rick

(./)

DBMD.getProcedureColumns(String,String,String,String)

Spec clarification.

Nothing to do.

None

-

(./)

DBMD.supportsStatementPooling()

Spec clarification.

Nothing to do.

None

-

(./)

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

Rick

(./)

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

-

(./)

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

-

(./)

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

-

(./)

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

Rick

(./)

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

Rick

(./)

ResultSet.getObject(String,Class)

Mandatory new method. Behaves like getObject(int,Class).

The work done for getObject(int,Class) should apply here.

Small

Rick

(./)

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

Rick

(./)

Statement.closeOnCompletion()

Mandatory new method. Automatically close the Statement when its dependent objects (like ResultSets) are closed.

Implement this behavior.

Medium

Rick

(./)

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

Rick

(./)

Statement.execute(String,int)

See Statement.execute(String).

Changes for execute(String) should apply here.

Small

Rick

(./)

Statement.execute(String,int[])

See Statement.execute(String).

Changes for execute(String) should apply here.

Small

Rick

(./)

Statement.execute(String,String[])

See Statement.execute(String).

Changes for execute(String) should apply here.

Small

Rick

(./)

Statement.executeBatch()

Throw SQLTimeoutException as for Statement.execute(String).

Changes for execute(String) should apply here.

Small

Rick

(./)

Statement.executeQuery(String)

See Statement.execute(String).

Changes for execute(String) should apply here.

Small

Rick

(./)

Statement.executeUpdate(String)

See Statement.execute(String).

Changes for execute(String) should apply here.

Small

Rick

(./)

Statement.executeUpdate(String,int)

See Statement.execute(String).

Changes for execute(String) should apply here.

Small

Rick

(./)

Statement.executeUpdate(String,int[])

See Statement.execute(String).

Changes for execute(String) should apply here.

Small

Rick

(./)

Statement.executeUpdate(String,String[])

See Statement.execute(String).

Changes for execute(String) should apply here.

Small

Rick

(./)

Statement.isCloseOnCompletion()

Mandatory new method. Reports whether the Statement automatically closes when its dependent objects (like ResultSets) are closed.

Implement this behavior.

Small

Rick

(./)

Statement.setQueryTimeout(int)

Spec clarification.

Nothing to do.

None

-

(./)

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

Rick

JdbcFourOne (last edited 2011-03-18 22:31:57 by lilywei)