Carbonado version 1.2 --------------------- Carbonado is an extensible, high performance persistence abstraction layer for Java applications with a relational view to the underlying persistence technology. http://carbonado.sourceforge.net/ Carbonado change history ------------------------ 1.1 to 1.2 ------------------------------- - Builds using JDK1.6, but targets JDK1.5. - Added support for sequences for SQL databases that don't natively support sequences. - Added @Automatic annotation, which also supports auto-increment columns. - JDBC cursor skipping uses relative movement, if supported. - JDBC repository supports optional automatic version management, eliminating the requirement that triggers be installed on the database. - FilteredCursor ensures that filter being used is bound. 1.1-BETA11 to 1.1 (release) ------------------------------- - Only minor comment changes. 1.1-BETA10 to 1.1-BETA11 ------------------------------- - Fixed bug when decoding old Storable generations - new properties must be cleared. Otherwise, indexes on newly added properties might not get updated. - Added system properties to control performance characteristics of MergeSortBuffer. - Fixed verify error in generation of markPropertiesDirty. - ReplicatedRepository installs user triggers on the replica again, but it now disables all triggers during resync to prevent errors. When triggers were on master, downstream triggers would not see changes made by earlier triggers. - Index creation does a better job of picking up where it left off, avoiding unnecessary delete/insert pairs. - JDBCRepository is more lenient with primary key validation. This allows Storables to be more easily mapped to views. - IndexedRepository supports optional and throttled index repair. 1.1-BETA9 to 1.1-BETA10 ------------------------------- - JDBCSupportStrategy cleans up database product name before using it to determine custom support strategy class name. - Added additional index selection tie-breaker if index is most likely defined to support desired ordering. - Support mapping JDBC numeric column to short or byte. - Index removal is now batched - reducing memory requirements when removing large indexes. - Fixed bug when filtering against negative floating point values. - Fixed multiple cursor implementations to be extra paranoid and close the cursor when an exception is thrown. - Fixed JDBC cursor implementation to close the connection when an exception is thrown during cursor construction. 1.1-BETA8 to 1.1-BETA9 ------------------------------- - Fixed bug in JDBC repository which caused cursor skip to skip everything. - Fix for getting supplied filter values when duplicate property filters exist. - Fixes for bugs found using FindBugs. 1.1-BETA7 to 1.1-BETA8 ------------------------------- - Removed call to get index metadata in JDBC repository. Oracle bug causes a table analyze to run. - When a property evolves from a boxed primitive to an unboxed primitive, null is converted to zero or false instead of throwing a NullPointerException. - Support write-no-sync mode for Sleepycat repositories. 1.1-BETA6 to 1.1-BETA7 ------------------------------- - Added @Authoritative annotation. - ReplicatedRepository installs user triggers on the master, not the replica. This fixes errors caused by resync running user triggers. 1.1-BETA5 to 1.1-BETA6 ------------------------------- - Added automatic repair for broken layout metadata. - Add Storable to CorruptEncodingException when loading from index. - Fix conversion of null lobs. - Query filter constants appear as SQL constants. 1.1-BETA4 to 1.1-BETA5 ------------------------------- - More fixes in resync corruption repair logic. - Fixed deadlock when using unsupported Storage for the first time. 1.1-BETA3 to 1.1-BETA4 ------------------------------- - Added additional repair logic in resync if replica entries are corrupt. - ConstraintException thrown when inserting uninitialized properties now includes property names in the exception message. 1.1-BETA2 to 1.1-BETA3 ------------------------------- - Fixed exception when printing join plan with blank parameters. - Added isolation level of "none" to indicate that transaction is auto-commit. 1.1-BETA to 1.1-BETA2 ------------------------------- - Inner joins in generated SQL use more compliant syntax. - Fixed deadlocks during replicated respository resync.