All Versions
19
Latest Version
Avg Release Cycle
37 days
Latest Release
1233 days ago

Changelog History
Page 1

  • v4.0.0-beta.2

    March 28, 2017
  • v4.0.0-beta.1

    January 31, 2017
  • v3.2.3

    December 13, 2016
  • v3.2.2

    December 05, 2016
    • 🌲 Introduce a new error logging mechanism in the code generator that allows SquiDB to log errors without generating a bunch of "cannot find symbol [ModelClass]" errors
    • Implement validation in the code generator to guard against illegal column or table names, e.g. those that use SQLite keywords or contain invalid characters.
  • v3.2.1

    November 07, 2016
    • 🛠 Fix a bug that could cause containsNonNullValue(Property<?>) to return an incorrect result under certain conditions.
    • ⚠ Eliminate several harmless warnings that could be emitted by the code generator when compiling using Java 1.8.
    • 🔖 Deprecate the SQLite version constants in the VersionCode class in favor of use-case specific constants in other classes. Most notably, VersionCode.LATEST is superseded by SQLiteBindingsAdapter.SQLITE_VERSION for the squidb-sqlite-bindings project, and VersionCode.V3_7_11 is superseded by Insert.SQLITE_VERSION_MULTI_ROW_INSERT.
    • Minor enhancements to null argument handling in the in()/notIn() criterion creating methods.
  • v3.2.0

    November 01, 2016
    • ➕ Add an experimental, under-the-hood change that can lead to performance increases of up to 70% for transactions inserting a large number of rows, and ~25-50% in the average case when inserting rows. The change is disabled by default; to enable it, users can call setPreparedInsertCacheEnabled(true) in the onConfigure method of their SquidDatabase. See the javadocs of setPreparedInsertCacheEnabled for more information.
    • ➕ Add a new prepareStatement API to SquidDatabase, which allows users to prepare and reuse low-level (non-query) SQLite statements. Reusing these prepared statements can result in a performance improvement when used judiciously.
    • 🏗 Introduce the ArgumentResolver API that lets users control how non-primitive values are bound to SQL statements (e.g., a user could override enum value handling to bind the values using ordinal() instead of name()). Custom ArgumentResolver implementations can be used in a SquidDatabase using the extensible buildCompileContext method.
    • 🚚 Move the copyDatabase() debugging utility into SquidDatabase. Fix some bugs with its implementation to make it behave nicely with databases in WAL mode and be thread safe.
    • 🔌 Some minor enhancements to the BasicPropertyGenerator plugin API that make it easier to modify the declarations of a model's getters and setters.
    • ⬆️ Bump the SQLite version in squidb-sqlite-bindings to 3.15.0.
  • v3.1.3

    September 02, 2016
    • 🛠 Fix a bug where enums that override toString() would be incorrectly serialized to the database. It's likely that you would have noticed a problem before now if this happened to you, but if you've been persisting an enum column with an enum that overrides toString(), you may have to run a data migration to fix the issue. Sorry to anyone affected by this!
  • v3.1.2

    August 24, 2016
    • 🛠 Fix a bug introduced in version 3.1.1 where automatically generating the deprecated default ID property would cause a compilation error. This issue only affected users who have not yet updated their model specs as described in the 3.1.0 release notes.
  • v3.1.1

    August 23, 2016
    • Edit: A bug with the deprecated default INTEGER PRIMARY KEY column existed in this version. Users should use 3.1.2 instead.
    • Further enhancements to the INTEGER PRIMARY KEY changes introduced in version 3.1.0. Any columns acting as an alias to the model rowid will now generate named getters and setters, which will delegate to getRowId()/setRowId() under the hood. This makes rowid alias columns easier to work with.
    • ✨ Enhance code generation plugins by allowing them to declare compile-time options that they consume using the @SupportedOptions annotation. This makes it easier for the code generator to warn about unused/mistyped options passed to SquiDB as well as allowing user-defined plugins to consume their own custom option flags.
  • v3.1.0

    July 27, 2016
    • ✂ Removed restrictions on the @PrimaryKey annotation so that columns of any type may be declared as the primary key for the table. SquiDB will stop generating the ID property as a rowid alias in a future version; as such the getId() and setId() methods in all TableModel subclasses are deprecated in favor of the more descriptively named getRowId() and setRowId(). See this wiki page for information on how to future-proof your existing model specs for this change.
    • SquidCursor now exposes the "hint" class object of its type argument via the getModelHintClass() method