[ http://issues.apache.org/jira/browse/DERBY-1281?page=all ]
Rick Hillegas updated DERBY-1281:
---------------------------------
Description:
Here is my analysis of where we currently fall short of JDBC4 compliance, based
on my reading of the current draft revision of the JDBC4 Compliance chapter. I
will break this into subtasks.
Comparison of Derby to early May sneak preview of the JDBC4 Compliance Chapter:
6.1 Definitions
Just a recital of definitions.
6.2
Supported:
- Entry level SQL 92
- Escape syntax
- Transactions
- Driver access to all documented Derby features
- SQLFeatureNotSupportedException thrown for unimplemented optional features
- Agreement between DatabaseMetaData and actual feature set
Unsupported:
Although escape syntax is supported, there is no way to turn off escape
processing. That is, Statement.setEscapeProcessing() is a NOP.
6.3 JDBC 4.0 API Compliance
Supported:
- Supports a ResultSet type of TYPE_FORWARD_ONLY
- Supports a ResultSet concurrency of CONCUR_READ_ONLY
- Supports batch updates
- Fully implements the following interfaces:
* java.sql.Driver
* java.sql.DatabaseMetaData
* java.sql.ParameterMetaData
* java.sql.ResultSetMetaData
* java.sql.Wrapper
* javax.sql.DataSource
Unsupported:
- The following java.sql.Connection methods:
* getClientInfo()
* getClientInfo(java.lang.String)
* setClientInfo(java.lang.String,java.lang.String)
- The following java.sql.CallableStatement methods:
* getBlob(int)
* getClob(int)
- The following java.sql.ResultSet methods:
* updateBlob(int,java.sql.Blob)
* updateBlob(java.lang.String,java.sql.Blob)
* updateClob(int,java.sql.Clob)
* updateClob(java.lang.String,java.sql.Clob)
- The following java.sql.Blob methods:
* java.sql.Blob.setBytes(long,byte[])
* setBytes(long,byte[],int,int)
* getBinaryStream(long,long)
* setBinaryStream(long)
* truncate(long)
- The following java.sql.Clob methods:
* setString(long,java.lang.String)
* setString(long,java.lang.String,int,int)
* setAsciiStream(long)
* getCharacterStream(long,long)
* setCharacterStream(long)
* truncate(long)
6.4 Java EE JDBC Compliance
Supported:
- escape functions concat, substring, locate, length,
abs, sqrt, mod.
- executeUpdate() works for calling procedures via
escape syntax.
Unsupported:
- OUT parameters not supported for these datatypes: BLOB, CLOB
- executeQuery() does NOT work for calling procedures via escape syntax.
IN ACTIVE DEVELOPMENT
- The following java.sql.Connection methods:
* Brokered class forwarding:
- isValid(int)
- createQueryObject(java.lang.Class)
- getClientInfo()
- getClientInfo(java.lang.String)
- setClientInfo(java.lang.String,java.lang.String)
* LOB improvements:
- createBlob()
- createClob()
- The following java.sql.Statement methods:
* Brokered class forwarding:
- isClosed()
- cancel()
- The following java.sql.PreparedStatement methods:
* Brokered class forwarding:
- setUnicodeStream(int,java.io.InputStream,int)
- setBlob(int,java.io.InputStream,long)
- setClob(int,java.io.Reader,long)
- The following java.sql.CallableStatement methods:
* Brokered class forwarding:
- getBlob(int)
- getClob(int)
- The following java.sql.Blob methods:
* LOB improvements:
- free()
- The following java.sql.Clob methods:
* LOB improvements:
- free()
was:
Here is my analysis of where we currently fall short of JDBC4 compliance, based
on my reading of the current draft revision of the JDBC4 Compliance chapter. I
will break this into subtasks.
Comparison of Derby to early May sneak preview of the JDBC4 Compliance Chapter:
6.1 Definitions
Just a recital of definitions.
6.2
Supported:
- Entry level SQL 92
- Escape syntax
- Transactions
- Driver access to all documented Derby features
- SQLFeatureNotSupportedException thrown for unimplemented optional features
- Agreement between DatabaseMetaData and actual feature set
6.3 JDBC 4.0 API Compliance
Supported:
- Supports a ResultSet type of TYPE_FORWARD_ONLY
- Supports a ResultSet concurrency of CONCUR_READ_ONLY
- Supports batch updates
- Fully implements the following interfaces:
* java.sql.Driver
* java.sql.DatabaseMetaData
* java.sql.ParameterMetaData
* java.sql.ResultSetMetaData
* java.sql.Wrapper
* javax.sql.DataSource
Unsupported:
- The following java.sql.Connection methods:
* getClientInfo()
* getClientInfo(java.lang.String)
* setClientInfo(java.lang.String,java.lang.String)
- The following java.sql.CallableStatement methods:
* getBlob(int)
* getClob(int)
- The following java.sql.ResultSet methods:
* updateBlob(int,java.sql.Blob)
* updateBlob(java.lang.String,java.sql.Blob)
* updateClob(int,java.sql.Clob)
* updateClob(java.lang.String,java.sql.Clob)
- The following java.sql.Blob methods:
* java.sql.Blob.setBytes(long,byte[])
* setBytes(long,byte[],int,int)
* getBinaryStream(long,long)
* setBinaryStream(long)
* truncate(long)
- The following java.sql.Clob methods:
* setString(long,java.lang.String)
* setString(long,java.lang.String,int,int)
* setAsciiStream(long)
* getCharacterStream(long,long)
* setCharacterStream(long)
* truncate(long)
6.4 Java EE JDBC Compliance
Supported:
- escape functions concat, substring, locate, length,
abs, sqrt, mod.
- executeUpdate() works for calling procedures via
escape syntax.
Unsupported:
- OUT parameters not supported for these datatypes: BLOB, CLOB
- executeQuery() does NOT work for calling procedures via escape syntax.
IN ACTIVE DEVELOPMENT
- The following java.sql.Connection methods:
* Brokered class forwarding:
- isValid(int)
- createQueryObject(java.lang.Class)
- getClientInfo()
- getClientInfo(java.lang.String)
- setClientInfo(java.lang.String,java.lang.String)
* LOB improvements:
- createBlob()
- createClob()
- The following java.sql.Statement methods:
* Brokered class forwarding:
- isClosed()
- cancel()
- The following java.sql.PreparedStatement methods:
* Brokered class forwarding:
- setUnicodeStream(int,java.io.InputStream,int)
- setBlob(int,java.io.InputStream,long)
- setClob(int,java.io.Reader,long)
- The following java.sql.CallableStatement methods:
* Brokered class forwarding:
- getBlob(int)
- getClob(int)
- The following java.sql.Blob methods:
* LOB improvements:
- free()
- The following java.sql.Clob methods:
* LOB improvements:
- free()
Added compliance issue for Statement.setEscapeProcessing().
> JDBC4 Compliance
> ----------------
>
> Key: DERBY-1281
> URL: http://issues.apache.org/jira/browse/DERBY-1281
> Project: Derby
> Type: Improvement
> Components: JDBC
> Versions: 10.2.0.0
> Reporter: Rick Hillegas
> Fix For: 10.2.0.0
>
> Here is my analysis of where we currently fall short of JDBC4 compliance,
> based on my reading of the current draft revision of the JDBC4 Compliance
> chapter. I will break this into subtasks.
> Comparison of Derby to early May sneak preview of the JDBC4 Compliance
> Chapter:
> 6.1 Definitions
> Just a recital of definitions.
> 6.2
> Supported:
> - Entry level SQL 92
> - Escape syntax
> - Transactions
> - Driver access to all documented Derby features
> - SQLFeatureNotSupportedException thrown for unimplemented optional features
> - Agreement between DatabaseMetaData and actual feature set
> Unsupported:
> Although escape syntax is supported, there is no way to turn off escape
> processing. That is, Statement.setEscapeProcessing() is a NOP.
> 6.3 JDBC 4.0 API Compliance
> Supported:
> - Supports a ResultSet type of TYPE_FORWARD_ONLY
> - Supports a ResultSet concurrency of CONCUR_READ_ONLY
> - Supports batch updates
> - Fully implements the following interfaces:
> * java.sql.Driver
> * java.sql.DatabaseMetaData
> * java.sql.ParameterMetaData
> * java.sql.ResultSetMetaData
> * java.sql.Wrapper
> * javax.sql.DataSource
> Unsupported:
> - The following java.sql.Connection methods:
> * getClientInfo()
> * getClientInfo(java.lang.String)
> * setClientInfo(java.lang.String,java.lang.String)
> - The following java.sql.CallableStatement methods:
> * getBlob(int)
> * getClob(int)
> - The following java.sql.ResultSet methods:
> * updateBlob(int,java.sql.Blob)
> * updateBlob(java.lang.String,java.sql.Blob)
> * updateClob(int,java.sql.Clob)
> * updateClob(java.lang.String,java.sql.Clob)
> - The following java.sql.Blob methods:
> * java.sql.Blob.setBytes(long,byte[])
> * setBytes(long,byte[],int,int)
> * getBinaryStream(long,long)
> * setBinaryStream(long)
> * truncate(long)
> - The following java.sql.Clob methods:
> * setString(long,java.lang.String)
> * setString(long,java.lang.String,int,int)
> * setAsciiStream(long)
> * getCharacterStream(long,long)
> * setCharacterStream(long)
> * truncate(long)
> 6.4 Java EE JDBC Compliance
> Supported:
> - escape functions concat, substring, locate, length,
> abs, sqrt, mod.
> - executeUpdate() works for calling procedures via
> escape syntax.
> Unsupported:
> - OUT parameters not supported for these datatypes: BLOB, CLOB
> - executeQuery() does NOT work for calling procedures via escape syntax.
> IN ACTIVE DEVELOPMENT
> - The following java.sql.Connection methods:
> * Brokered class forwarding:
> - isValid(int)
> - createQueryObject(java.lang.Class)
> - getClientInfo()
> - getClientInfo(java.lang.String)
> - setClientInfo(java.lang.String,java.lang.String)
> * LOB improvements:
> - createBlob()
> - createClob()
> - The following java.sql.Statement methods:
> * Brokered class forwarding:
> - isClosed()
> - cancel()
> - The following java.sql.PreparedStatement methods:
> * Brokered class forwarding:
> - setUnicodeStream(int,java.io.InputStream,int)
> - setBlob(int,java.io.InputStream,long)
> - setClob(int,java.io.Reader,long)
> - The following java.sql.CallableStatement methods:
> * Brokered class forwarding:
> - getBlob(int)
> - getClob(int)
> - The following java.sql.Blob methods:
> * LOB improvements:
> - free()
> - The following java.sql.Clob methods:
> * LOB improvements:
> - free()
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira