These notes describe the difference between Derby release 10.5.3.0 and the preceding release 10.5.1.1.
Derby is a pure Java relational database engine using standard SQL and JDBC as its APIs.
Derby functionality includes:
- Embedded engine with JDBC drivers
- Network Server
- Network client JDBC drivers
- Command line tools: ij (SQL scripting), dblook (schema dump) and sysinfo (system info)
This is a bug fix release and also provides localization of new 10.5 messages. No new features were added.
The following issues are addressed by Derby release 10.5.3.0. These issues are not addressed in the preceding, deprecated 10.5.2.0 release. Most significantly, Derby 10.5.3.0 carries the fix to the wrong-results bug which caused the community to abandon 10.5.2.0: DERBY-4331
Issue Id Description DERBY-4331 Join returns results in wrong order DERBY-4328 The Developer's Guide falsely claims that you can use SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY to change the boot password on an encrypted database. DERBY-4324 The Reference Guide lists wrong lengths for the GRANTOR and GRANTEE columns in SYSCOLPERMS, SYSROUTINEPERMS, and SYSTABLEPERMS. DERBY-4312 SQLException XJ215 on insert with setCharacterStream() and autocommit off in mailjdbc test DERBY-4310 Closing a prepared statement with an embedded XAConnection can cause the statement to be reprepared and errors related to missing dependencies. This can interfere with network server closeSession() DERBY-4306 NullPointerException in JMXManagementService.unregisterMBean when running jdbcapi._Suite DERBY-4305 Make changes to test harness class j9_foundation11 to support newer version of IBM's JSR169 implementation DERBY-4292 creation of FileInputStream in org.apache.derby.impl.tools.ij.Main not wrapped in privilege block which can cause problems running under SecurityManager DERBY-4246 '.replicationTests.ReplicationRun_Local_3_p5).testReplication_Local_3_p5_DERBY_3878()' fails w/ "Could not perform operation 'stopSlave' because the database '...' has not been booted". DERBY-4270 Make replication tests save derby.log and database when a failure occurs. DERBY-4203 (partial) Change mailjdbc system test to be able to restart with the existing database instead of creating a new one so it can be used for upgrade testing DERBY-4186 After master stop, test fails when it succeeds in connecting (rebooting) shut-down ex-slave DERBY-4185 Make timeout settable or increase default for one replication message layer protocol. DERBY-4175 Instability in some replication tests under load, since tests don't wait long enough for final state or anticipate intermediate states DERBY-4166 (partial) improvements to the mailjdbc test DERBY-4155 jdbcapi/XATest.java doesn't seem to be running anywhere DERBY-3921 Replication: Test replication of encrypted databases DERBY-3814 failure in testAssertFailureThreadDump with weme 6.1 / JSR 169 DERBY-3710 cannot access a database using AES encryption with encryptionKeyLength=192 after it's been shutdown The following additional issues are addressed by Derby release 10.5.3.0. These issues are not addressed in the preceding 10.5.1.1 release.
Issue Id Description DERBY-4287 call to System.getProperty in BCClass.java is not wrapped in a priv block so may fail when running under SecurityManager DERBY-4278 Batch inserts with Clobs fails with the embedded driver DERBY-4276 Update demo's to remove references to com.ibm.db2.jcc.DB2Driver DERBY-4274 SYSCS_UPDATE_STATISTICS takes unnecessary table lock DERBY-4273 A lock could not be obtained within the time requested error in testBTreeForwardScan_fetchRows_resumeAfterWait_nonUnique_split DERBY-4271 testBootSameDbDifferentSubSubProtocol(org.apache.derbyTesting.functionTests.tests.memorydb.BasicInMemoryDbTest)java.sql.SQLException: Database 'BSDDSSP' not found. DERBY-4268 "SECURITY" is reserved as SQL keyword. DERBY-4245 Sorting a table containing a CLOB fails after upgrade to 10.5 DERBY-4239 corruption with storerecovery oc_rec? tests. ERROR XSLA7: Cannot redo operation null in the log when compress occurs during checkpoint, then jvm exits DERBY-4232 XAResource.setTransactionTimeout() makes XAResource.start() fail with the client driver DERBY-4230 DatabaseMetaData.getColumns() returns extra column from view with group by and expression in SELECT list DERBY-4229 encryptionKeyLength connection attribute should be documented DERBY-4221 Provide message localizations for 10.5 DERBY-4218 "Table/View 'MAX_SCAN' does not exist" in org.apache.derbyTesting.functionTests.tests.store.IndexSplitDeadlockTest DERBY-4212 Prepared statement with OFFSET/FETCH gives different results on subsequent execute DERBY-4206 Documentation: Release versions in output need updating DERBY-4205 Developer's Guide: Permissions topic contains wrong info after 10.3 DERBY-4204 Runtime statistics not collected on re-execution of statement DERBY-4198 When using the FOR UPDATE OF clause with SUR (Scroll-insensive updatable result sets), the updateRow() method crashes DERBY-4196 Document initiation of replication from cleanly shut down database DERBY-4193 ASSERT FAILED Scan position already saved with multi-threaded insert/update/delete DERBY-4182 SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE does not reclaim space lost from an aborted insert DERBY-4171 Connections to on-disk db go to in-memory db if in-memory db with same name is booted DERBY-4165 Document the effect of shutdown on in progress transactions and open connections. DERBY-4164 Make REVOKE statement description mention what happens for open result sets/cursors DERBY-4161 SQL Roles - Clarify documentation regarding the SET ROLE DERBY-4154 DboPowersTest should not hard upgrade the system/wombat database DERBY-4142 java.lang.VerifyError causing java.sql.SQLException: Cannot create an instance of generated class ... in lang.GeneratedColumnsTest and GeneratedColumnsPermsTest on IBM iseries DERBY-4133 'testTableFunctionInJar' fails w/ 'The class 'DummyVTI' does not exist or is inaccessible...' on jvm1.4 DERBY-4118 ComparisonFailure in 'testSysinfo(org.apache.derbyTesting.functionTests.tests.derbynet.SysinfoTest)' on Derby 10.5 / Linux DERBY-4097 'testMixedInsertDelete(org.apache.derbyTesting.functionTests.tests.lang.NullableUniqueConstraintTest)org.apache.derby.client.am.BatchUpdateException' DERBY-4053 Network Server's failure to rollback local transactions on shutdown can cause hang on startup with message java.net.BindException: Address already in use: NET_Bind in derby.log DERBY-4034 Document database name and attribute length and character set limitations for network client DERBY-4018 ArrayIndexOutOfBoundsException in TopService.inService under heavy multithreaded use of EmbeddedDriver DERBY-4001 Sequence comparison with "ALL" does not yield correct results DERBY-3991 Clob.truncate(0) throws exception DERBY-3926 Incorrect ORDER BY caused by index DERBY-3887 Embedded Derby fails under JBoss because of JMX-related conflicts DERBY-3846 The list of supported message libraries looks wrong DERBY-3737 Document the new SignatureChecker lint tool in the Tools Guide DERBY-3719 '...replication.buffer.LogBufferFullException' causes failover to fail w/ 'XRE07, SQLERRMC: Could not perform operation because the database is not in replication master mode.' DERBY-3669 ClientXADataSource fetched from JNDI not identical as originally bound; some properties have String "null" instead of null DERBY-3598 Modify ReleaseNoteGenerator and ChangesGenerator to exclude issues that are fixed in earlier releases DERBY-3468 Example in documentation of ij.exceptionTrace is wrong DERBY-3417 slave side stop in a client server mode results in SQLState printed without proper error message DERBY-3296 Importing to table in default schema fails when another table with the same name exists in a different schema DERBY-2821 emphasize that derby encryption only supports NoPadding option DERBY-2447 ejbql and floattypes in org.apache.derbyTesting.functionTests.tests.lang.LangScripts intermittently fails with 'expected:<[0.0 ] > but was:<[-0.0] ' DERBY-2074 NullPointerException when two threads load sort factory concurrently DERBY-1923 XML operators - Xalan requirement DERBY-1209 It would be good to add an example to the SYSCS_UTIL.SYSCS_CHECK_TABLE documentation for how to check all tables
Compared with the previous release (10.5.1.1), Derby release 10.5.3.0 introduces the following new features and incompatibilities. These merit your special attention.
Note for DERBY-4230: In order to see the fix for DERBY-4230 for a view created with a previous release, users must drop and recreate the view.
Note for DERBY-3991: Clob.truncate now presents a more specific error message for a negative length.
Note for DERBY-4230
Summary of Change
In order to see the fix for DERBY-4230 for a view created with a previous release, users must drop and recreate the view.
Symptoms Seen by Applications Affected by Change
DERBY-4230 fixed an issue where an extra column might appear in DatabaseMetaData.getColumns() for a view that uses a group by and an expression in the select list. The problem occurred during create view with the old release. After updating your derby jars to a release that has the fix, if you still see the behavior, you will need to drop and recreate the view to get the fix.
Incompatibilities with Previous Release
none
Rationale for Change
The change was made to fix a regression introduced in version 10.3.1.4 by DERBY-681.
Application Changes Required
Users must drop an recreate affected views to see the fix for DERBY-4230.
Note for DERBY-3991
Summary of Change
Clob.truncate now presents a more specific error message for a negative length.
Symptoms Seen by Applications Affected by Change
Specifying a negative length will raise an SQLException with a different state;
- Now: XJ071: Negative length argument '-2' passed in a BLOB or CLOB method.
- Before: XJ070: Negative or zero position argument '-2' passed in a Blob or Clob method.
Incompatibilities with Previous Release
Applications catching a specific exception based on SQLState may behave differently. The incompatibility can only be seen if the application calls Clob.truncate with a negative length using the embedded driver.
Rationale for Change
The embedded driver was changed to be consistent with the client driver for the error message raised when invoking Clob.truncate with a negative length.
Application Changes Required
Look for SQLState XJ071 instead of XJ070 when Clob.truncate is called to catch invocations specifying a negative length.
Derby release 10.5.3.0 was built using the following environment:
- Branch - Source code came from the 10.5 branch.
- Machine - Mac OS X 10.5.7 on Macbook Pro 3,1.
- Ant - Apache Ant version 1.7.1 compiled on June 27 2008
- J2ME/JSR 169 - Sun's phoneME Advanced MR2
- JDK 1.4 - Apple's Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_21-b01-324)
- Java 5 - Apple's Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_19-b02-304)
- Java 6 - Apple's Java(TM) SE Runtime Environment (build 1.6.0_13-b03-211)
- Compiler - The Apple Java 5 compiler was used to compile all classes. Platform-specific code was compiled against the corresponding platform libraries listed above.