Version 0.9 adds new `Execute` functions to `sqlitex` and changes the default blocking behavior. Version 0.9 also includes various fixes to the schema migration behavior. ### Added - Added `SetBlockOnBusy` method to set an indefinite timeout on acquiring a lock. - Official support for `windows/amd64`. - `sqlitex` has three new functions — `Execute`, `ExecuteTransient`, and `ExecuteScript` — that take in an `ExecOptions` struct. ([#5](https://github.com/zombiezen/go-sqlite/issues/5)) - New method `sqlite.ResultCode.ToError` to create error values. - New methods `ColumnBool` and `GetBool` on `*sqlite.Stmt` ([#37](https://github.com/zombiezen/go-sqlite/issues/37)). ### Changed - `OpenConn` calls `SetBlockOnBusy` on new connections instead of `SetBusyTimeout(10 * time.Second)`. - The `sqlitex.Execute*` family of functions now verify that the arguments passed match the SQL parameters. ([#31](https://github.com/zombiezen/go-sqlite/issues/31)) ### Deprecated - `sqlitex.ExecFS` has been renamed to `sqlitex.ExecuteFS`, `sqlitex.ExecTransientFS` has been renamed to `sqlitex.ExecuteTransientFS`, and `sqlitex.ExecScriptFS` has been renamed to `sqlitex.ExecuteScriptFS` for consistency with the new `Execute` functions. Aliases remain in this version, but will be removed in the next version. Use `zombiezen-sqlite-migrate` to clean up existing references. - `sqlitex.Exec` and `sqlitex.ExecTransient` have been marked deprecated because they do not perform the argument checks that the `Execute` functions now perform. These functions will remain into 1.0 and beyond for compatibility, but should not be used in new applications. ### Fixed - `sqlitemigration.Schema.RepeatableMigration` is now run as part of the final transaction. This ensures that the repeatable migration for migration `N` has executed if and only if `user_version == N`. Previously, the repeatable migration could fail independently of the final transaction, which would mean that a subsequent migration run would not trigger a retry of the repeatable transaction, but report success. - `sqlitemigration` will no longer skip applying the repeatable migration if the final migration is empty. - `OpenConn` now sets a busy handler before enabling WAL (thanks @anacrolix!).