You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Use writeWithoutTransaction when appropriate (#53)
This pull request fixes SQLITE_BUSY errors caused by the shift to IMMEDIATE transactions.
Updating the transaction type https://sqlite.org/lang_transaction.html#deferred_immediate_and_exclusive_transactions 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 pull request, vacuuming and checkpointing tests failed when IMMEDIATE transactions were used.