Skip to content

Releases: shareup/sqlite

v23.0.0

Choose a tag to compare

@atdrendel atdrendel released this 24 Sep 14:59
24d5f3f
  • Remove observeLifecycleEvents argument from SQLiteDatabase.init.
  • Do not list to app lifecycle notifications on Mac Catalyst.

v22.1.0

Choose a tag to compare

@atdrendel atdrendel released this 24 Sep 13:51
ceed648
  • Add observeLifecycleEvents argument to SQLiteDatabase.init to allow callers to optionally disable app lifecycle observation.

v22.0.0

Choose a tag to compare

@atdrendel atdrendel released this 15 Apr 13:22
e451ca1
  • Remove SQLiteDatabase.addCollation() and SQLiteDatabase.removeCollation because they would only add the collation for an individual database connection, not the pool of connections.
  • Add collationSequences initialization arguments to SQLiteDatabase to allow consumers to add custom collation sequences to a database at initialization time.
  • Expose GRDB's default collation sequence names for consumers to use.

v21.3.0

Choose a tag to compare

@atdrendel atdrendel released this 14 Apr 16:15
223e7d9
  • Add SQLiteDatabase.addCollation(named:comparator:) and SQLiteDatabase.removeCollation(named:)
  • Update GRDB to new major version 7

v21.2.0

Choose a tag to compare

@atdrendel atdrendel released this 10 Jan 03:44
413a130
  • Expose releaseMemory() and releaseMemoryEventually()
  • Update GRDB

v21.1.4

Choose a tag to compare

@atdrendel atdrendel released this 09 Feb 00:23
09d4b60
  • Use file coordinators to safely access the database when calling truncate() and close() in order to, hopefully, put an end to the flaky Xcode Cloud test failures I've been seeing since moving to IMMEDIATE transactions.

v21.1.3

Choose a tag to compare

@atdrendel atdrendel released this 05 Feb 11:11
044cf23

This release attempts to fix flaky CI tests when on-disk databases are created with transactions set to IMMEDIATE. This release tries to ensure all reads and writes finish before truncation happens and the database is closed.

#Background

In an iOS app that consumes SQLite, migration tests have occasionally been failing with errors similiar to the following:

BUG IN CLIENT OF libsqlite3.dylib: database integrity compromised by API violation: vnode unlinked while in use
invalidated open fd

The errors mentioned the WAL or SHM files were being deleted before the database had been closed. The errors do not seem to be related to the content of the tests themselves. Instead, it seems like the migration tests have periodically started failing instead of the other database tests is the migration tests create databases on disk, whereas the other tests use in-memory databases. The databases are being created in a temporary directory and are not being manually deleted by the tests.

The tests started failing after moving to defaulting to IMMEDIATE transactions based on the GRDB documentation.

v21.1.2

Choose a tag to compare

@atdrendel atdrendel released this 01 Feb 19:05
4563f1c

Fixes SQLITE_BUSY errors caused by the shift to IMMEDIATE transactions.

Updating the transaction type from the default DEFERRED to IMMEDIATE exposed some issues with the way SQLite wrapped GRDB. SQLite was wrapping some writes in an unnecessary transaction. This caused issues because IMMEDIATE transactions immediately begin a write, meaning other writes will receive a SQLITE_BUSY error. Before applying the changes in this release, vacuuming and checkpointing tests failed when IMMEDIATE transactions were used.

21.1.1

Choose a tag to compare

@atdrendel atdrendel released this 30 Jan 22:27
ed19230

v21.1.0

Choose a tag to compare

@atdrendel atdrendel released this 14 Sep 18:39
a2d387b