Table of Contents
- 10.2.1.6 Release Summary
- JDBC4 Status
- Scrollable, Updatable ResultSets (Insensitive) Status
- Grant/Revoke Status
- Internationalization Status
10.2.1.6 Release Summary
The Derby 10.2 release exposes many new features. Please download this release from
http://db.apache.org/derby/derby_downloads.html.
|
New Feature |
Link to JIRA entries |
Code Status |
Documentation |
|
Command line help for ij |
Complete |
- |
|
|
'show tables' and 'describe' commands in ij |
Complete |
- |
|
|
Database re-encryption |
Complete |
- |
|
|
Scripts adhering to Apache's conventions |
Complete |
DERBY-1223 handles the documentation for this issue. |
|
|
Simplify tool invocation |
Complete |
- |
|
|
Encrypt userid/password where possible |
Complete |
- |
|
|
Restrict client connections,derby.drda.securityMechanism |
Complete |
- |
|
|
Enhance GROUP BY clause to support expressions |
Complete |
- |
|
|
Identity value restart |
Complete |
- |
|
|
Internationalizing Client Messages |
- |
Complete |
- |
|
Scrollable Updatable ResultSets |
|
Complete |
- |
|
Xml support for XPath |
XPath changes implemented. |
- |
|
|
JDBC4 |
See below. |
See below. |
- |
|
New JDBC escape functions: ACOS, ASIN, ATAN, COS, SIN, TAN, PI, DEGREES, RADIANS, EXP, LOG, LOG10, CEILING, FLOOR |
Complete |
- |
|
|
Unary plus/minus for parameters |
Complete |
- |
|
|
Optimizer directives |
Complete |
- |
|
|
New syntax for invoking diagnostic VTIs |
Complete |
- |
|
|
DRDA USRSSBPWD Security Mechanism |
Complete |
- |
|
|
Invoke Java procedures from triggers |
Complete |
- |
|
|
Client timeout mechanism |
Complete |
- |
|
|
New functions: ACOS, ASIN, ATAN, COS, SIN, TAN, PI, DEGREES, RADIANS, EXP, LN, LOG, LOG10, CEIL, CEILING, FLOOR |
Complete |
- |
|
|
Grant Revoke |
Complete |
- |
|
|
Improve Network Server large object streaming |
Complete |
- |
|
|
FOR UPDATE clause |
Complete |
- |
|
|
Online backup |
Complete |
- |
|
|
ALTER TABLE change nullability |
Complete |
- |
For more information on the contents of the 10.2 release, see:
|
Status of some current activities for the Derby project |
|
|
Issues that have been fixed and open issues that are marked Fix For 10.2 |
|
|
Latest Manuals under development for 10.2. Note not all implemented features have been documented yet. Others might be documented but not implemented. |
|
|
Public API javadoc including new JDBC 4.0 DataSource implementations |
JDBC4 Status
The optional JDBC4 support was compiled and tested using Mustang build 99. To exercise this code, please download the Derby 10.2 source distribution and build it according to the instructions in BUILDING.txt, using version 99 or higher of the Mustang JDK.
If you build this optional support, then when you run on the jdk1.6 platform, Derby 10.2 will expose the JDBC4 api. The following JDBC4 features have been coded and are ready for the community to test:
|
Feature |
Description |
Compliance |
|
Driver autoloading |
This lets applications open Connections to Derby databases without having to know the names of the Derby JDBC drivers. |
Fully implemented. |
|
Ease-of-development |
This uses Annotations to simplify and parameterize the creation of tabular DataSets. Derby does not implement its own QueryObjectGenerator. Instead, as the spec allows, Derby forwards ease-of-development calls to Mustang's default QueryObjectFactory. |
Mandatory methods implemented. |
|
Wrapper pattern |
This lets applications exploit vendor-specific behavior wrapped inside JDBC objects. |
Fully implemented, though Derby does not expose any vendor specific behaviour. |
|
Statement events |
This lets applications listen for events which invalidate or close Statements. |
Fully implemented. |
|
SQLException subclasses |
JDBC4 refines SQLException into new subclasses, each bound to some range of error conditions. JDBC4 requires that implementations raise these refined exceptions when the corresponding conditions occur. 10.2 does this. However, 10.2 omits the late-breaking SQLRecoverableException, whose vendor-specific semantics are not clear. Although Derby does not raise this exception, we believe that Derby complies with the spec. |
Mandatory methods implemented. |
|
Miscellaneous methods |
JDBC4 adds new methods and changes old methods on the following JDBC objects: Connection, CallableStatement, DatabaseMetaData, PreparedStatement, ResultSet, Statement, DataSource, and PooledConnection. 10.2 implements all of these methods that are mandatory. Some optional methods will throw SQLFeatureNotSupportedException. |
Mandatory methods implemented. |
|
RowId |
JDBC4 introduces this optional datatype. Derby does not support the corresponding SQL ROWID datatype. Therefore the corresponding JDBC4 methods will throw SQLFeatureNotSupportedException. |
Mandatory methods implemented. |
|
National string types |
JDBC4 introduces these optional datatypes: NCHAR, NVARCHAR, LONGNVARCHAR, NCLOB. Derby does not support the corresponding SQL datatypes. Therefore the corresponding JDBC4 methods will throw SQLFeatureNotSupportedException. |
Mandatory methods implemented. |
|
XML |
JDBC4 introduces this optional datatype. Derby does not support expose the SQL XML datatype through JDBC. Therefore the corresponding JDBC4 methods will throw SQLFeatureNotSupportedException. |
Mandatory methods implemented. |
|
SQLInput/SQLOutput |
JDBC4 introduces these optional interfaces. Derby does not support the corresponding SQL structured and distinct datatypes. Therefore the corresponding JDBC4 methods will throw SQLFeatureNotSupportedException. |
Mandatory methods implemented. |
|
Lengthless streaming overloads |
JDBC4 introduces new streaming overloads where the length of the stream does not have to be specified. The methods are named set- and updateXXXStream, where XXX can be Ascii, Binary or Character. |
Fully implemented. |
10.2 will NOT comply with the following features added by JDBC4:
|
Feature |
Description |
Compliance |
|
Large objects |
JDBC4 adds new methods for creating, inserting, and releasing Blobs and Clobs. These methods appear on the following old JDBC objects: Connection, PreparedStatement, Blob, and Clob. 10.2 will implement the new methods on Connection and PreparedStatement. The JDBC4 spec also requires that the old, JDBC3 Blob and Clob interfaces be fully implemented and that Blob/Clob be updateable through JDBC3 ResultSets method. 10.2 will NOT fully implement the Blob/Clob methods, nor will it let you update large objects through ResultSets. |
NOT compliant. |
Scrollable, Updatable ResultSets (Insensitive) Status
This feature has been fully implemented for both embedded (compliant) and network client (compliant, but see note below) drivers. Documentation is still pending. Highlights of this feature:
It extends Derby's existing scrollable insensitive result sets to be updatable via both the JDBC provided methods updateRow, deleteRow and insertRow, as well as positioned DELETE and UPDATE statements.
Own deletes and updates are visible, inserts are not. Deleted rows leave "holes". The detectability methods rowDeleted and rowUpdated are supported.
As part of this effort, we also:
lifted the "FOR UPDATE" clause requirement for a SQL query to be updatable via result sets methods (
DERBY-231). implemented insertRow for forward-only updatable result sets (
DERBY-100).
Grant/Revoke Status
The following behaviors could use some testing:
|
Behavior |
Description |
|
Statement caching |
What happens if you prepare and execute a statement, then drop privileges it needs, then re-execute the statement? The second execution should fail because the user no longer has the requisite privileges. |
|
Upgrade |
What happens to your permission to run your application after upgrading from 10.1? What happens if someone other than you upgrades the database? |
Internationalization Status
All network client messages have been internationalized, and now all SQLExceptions have a non-null SQL State. As much as possible the SQL State and message for a given error in the network client driver match the SQL State and message in the embedded driver. If an inconsistency between network client driver and embedded driver SQL States is discovered, it should be considered a bug and we would appreciate it being reported in JIRA.