Return-Path:
DERBY-3791 Excessive memory usage when fetching small Clobs
+
+DERBY-3786 Assert failure in CacheEntry.unkeepForRemove when running stress.multi
+
DERBY-3783 LOBStreamControl shouldn't throw SQLException
@@ -267,6 +270,9 @@
+DERBY-1848 jdbcapi/SetQueryTimeoutTest.java fails on IBM wctme 5.7
+
DERBY-48 A connection request that has a default schema that is being created by another transaction will fail to connect
+
@@ -283,6 +289,16 @@
Note for DERBY-48: +In Derby, a user's initial default schema is named the same as +the user name, or APP if a user is not provided at connect time. This +schema is implicitly auto-created the first time a schema object is +created in that schema. +
+ ++ + + + +Summary of Change
+ ++In Derby, a user's initial default schema is named the same as +the user name, or APP if a user is not provided at connect time. This +schema is implicitly auto-created the first time a schema object is +created in that schema. +
+ ++Previously, this auto-creation would be performed as part of the user +transaction. This would sometimes lead to locking issues as described +in this issue. With this change, the auto-creation is now performed +and committed immediately in a separate sub-transaction. +
+ + + + + +Symptoms Seen by Applications Affected by Change
+ ++The initial default schema will be present in cases where it +previously would not yet have been created: If the user transaction +that creates a schema object leading to auto-creation of the initial +default schema rolls back for some reason after having created the +schema, up till now the auto-creation of the initial default schema +would be rolled back as well. Since it is now created and committed in +a sub-transaction, the schema creation will not be rolled back: the +default schema will persist. +
+ + + + + +Incompatibilities with Previous Release
+ ++Most applications should not be impacted by this change, but there are +some corner cases as described below: +
+ ++If the application tests for the existence of the initial default +schema by querying Derby system tables, the results could now be +different than in earlier releases, if the test is made after a +rollback as described in the previous section. +
+ ++Since the initial default schema will now potentially exist in cases +where it would previously not exist, schema operations may be +impacted, e.g. where before a DROP SCHEMA <default schema name> +RESTRICT would fail due to it not yet existing, it could now work (if +empty), depending on when the drop attempt is made. +
+ + + + +Rationale for Change
+ ++Implicit schema creation is now performed in its own transaction to +avoid deadlocks with other connections accessing the same schema. +
+ ++Doing this is a separate transaction avoids holding dictionary locks +longer than necessary, +cf. DERBY-48 +and thus reduces the chance for deadlocks. +
+ + + + + +Application Changes Required
+ ++Verify that the application code does not rely on the initial default schema +being absent after a rollback. +
+ + + +