Derby 10.8 is out
By kah on May 06, 2011
Derby 10.8.1.2 is a new feature release, the first one in the 10.8 series. The highlights include:
- Automatic calculation of index statistics: In earlier releases, index cardinality statistics had to be updated manually (for example by calling the SYSCS_UTIL.SYSCS_UPDATE_STATISTICS system procedure) if they got out of date. Otherwise, the optimizer might choose suboptimal, poorly performing query execution plans because of the outdated information. This typically happened if one of the tables accessed in the query had grown or shrunk significantly after the index cardinality statistics were calculated initially. As of this release, Derby will recalculate the statistics if it detects that the size of the table has changed so much that the statistics are no longer usable.
- JDBC 4.1: The early access builds of Java SE 7 (available for download here) have added new methods to many of the interfaces in the java.sql and javax.sql packages. This Derby release implements all of these methods so that you can try them out.
- Improved interrupt handling: Earlier releases of Derby didn't handle interrupts very well. If a user thread was interrupted while performing a database operation, it could often end up crashing the database engine and require a reboot of the database. Starting with this release, interrupting a user thread shouldn't take down the entire database. The documentation has also been improved by clarifying which behaviour to expect if a thread is interrupted.
- XML operators out of the box: Older releases of Derby required some work setting up your environment before you could use the XML operators (XMLEXISTS, XMLPARSE, XMLQUERY, XMLSERIALIZE). In Derby 10.8, the implementation of these operators has been made more portable and should work out of the box on most implementations of Java SE 6 and newer.
The release also contains many bug fixes and documentation fixes, as well as some performance improvements. As always, make sure that you read the release notes before upgrading to see if any of the changes could affect your application.