-
-
v1.4.2e5fb8374 · ·
Version 1.4.2 updates the `modernc.org/sqlite` version to 1.37.1. ### Changed - The minimum `modernc.org/sqlite` version updated to 1.37.1.
-
v1.4.1efbdce71 · ·
Version 1.4.1 updates the `modernc.org/sqlite` version to 1.36.1 and includes a couple small improvements. ### Changed - The minimum `modernc.org/sqlite` version updated to 1.36.1. ### Fixed - `*Stmt.ColumnName` no longer performs an allocation ([#101](https://github.com/zombiezen/go-sqlite/issues/118)). - The doc comment for `OpenFlags` has been rewritten for clarity ([#114](https://github.com/zombiezen/go-sqlite/pull/114)).
-
v1.4.0ac683095 · ·
Version 1.4 adds the `sqlitex.ResultBytes` function and fixes several bugs. ### Added - New function `sqlitex.ResultBytes`. ([#86](https://github.com/zombiezen/go-sqlite/pull/86)) ### Changed - `Conn.Close` returns an error if the connection has already been closed ([#101](https://github.com/zombiezen/go-sqlite/issues/101)). - The minimum `modernc.org/sqlite` version updated to 1.33.1. ### Fixed - `sqlite3_initialize` is now called from any top-level function to prevent race conditions during initialization. ([#18](https://github.com/zombiezen/go-sqlite/issues/18)).
-
v1.3.0a8ad27a0 · ·
Version 1.3 is largely a bug-fix release, but is a minor version change because of the new `sqlitemigration.Pool.Take` method. ### Added - `sqlitemigration.Pool` now has a new method `Take` so that it implements a common interface with `sqlitex.Pool` ([#97](https://github.com/zombiezen/go-sqlite/pull/97)). - Documented `OpenWAL` behavior on `sqlite.OpenConn`. ### Fixed - Address low-frequency errors with concurrent use of `sqlitemigration` ([#99](https://github.com/zombiezen/go-sqlite/issues/99)). - The error returned from `sqlitex.NewPool` when trying to open an in-memory database now gives correct advice ([#92](https://github.com/zombiezen/go-sqlite/issues/92)).
-
v1.2.0e4d0fa1c · ·
Version 1.2.0 adds a `sqlitex.Pool.Take` method and improves error messages. ### Added - `sqlitex.Pool` has a new method `Take` which returns an `error` along with a `Conn` ([#83](https://github.com/zombiezen/go-sqlite/issues/83)). - `sqlite.ErrorOffset` is a new function that returns the SQL byte offset that an error references. ### Changed - `sqlite.Conn.Prep`, `sqlite.Conn.Prepare`, and `sqlite.Conn.PrepareTransient` now include position information in error messages if available. - Many error messages around statement execution changed their format for better readability. Error messages are not stable API and should not be depended on. ### Deprecated - The `sqlitex.Pool.Get` method has been deprecated in favor of the new `Take` method. ### Fixed - Error messages no longer duplicate information from their error code (reported in [#84](https://github.com/zombiezen/go-sqlite/issues/84)).
-
v1.1.27941dcba · ·
Version 1.1.2 updates the `modernc.org/sqlite` version to 1.29.1 and makes further tweaks to busy-polling. ### Changed - Set the maximum time between busy polls to 100 milliseconds (follow-on from [#75](https://github.com/zombiezen/go-sqlite/issues/75)). - The minimum `modernc.org/sqlite` version updated to 1.29.1 ([#77](https://github.com/zombiezen/go-sqlite/issues/77)).
-
v1.1.1fb967a87 · ·
Version 1.1.1 improves performance on write-contended workloads. ### Fixed - Make busy-blocking more responsive ([#75](https://github.com/zombiezen/go-sqlite/issues/75)).
-
v1.1.05c555a3a · ·
Version 1.1 introduces the ability to prepare connections on `sqlitex.Pool`, improves performance, and improves documentation. ### Added - Added a `sqlitex.NewPool` function with support for a `ConnPrepareFunc` ([#65](https://github.com/zombiezen/go-sqlite/issues/65)). - Added a documentation example for `SetCollation` ([#64](https://github.com/zombiezen/go-sqlite/issues/64)). ### Deprecated - Deprecated `sqlitex.Open` in favor of `sqlitex.NewPool`. ### Fixed - Speed up internal string conversions ([#66](https://github.com/zombiezen/go-sqlite/pull/66)). Thank you [@ffmiruz](https://github.com/ffmiruz) for the profiling work!
-
v1.0.089f2c5a6 · ·
Version 1.0 is the first officially stable release of `zombiezen.com/go/sqlite`. It includes improved documentation and is cleaned up for current versions of Go. There are no breaking changes to the API: this release is more a recognition that the API has been stable and a promise that it will continue to be stable. ### Added - Added `*Stmt.ColumnIsNull` and `*Stmt.IsNull` methods ([#55](https://github.com/zombiezen/go-sqlite/issues/55)). - Added more documentation to `sqlitefile` and `sqlitex`. ### Changed - Replaced `interface{}` with `any`. This should be a compatible change. - The minimum supported Go version for this library is now Go 1.20. - The minimum `modernc.org/sqlite` version updated to 1.27.0. ### Removed - Removed the `io.*` interface fields on `sqlitefile.Buffer` and `sqlitefile.File`. These were unused. - Removed the `zombiezen.com/go/sqlite/fs` package. It existed to help transition around Go 1.16, but is no longer useful.
-
v0.13.1a49e1499 · ·
Version 0.13.1 fixed a bug with the `sqlitemigration` package. ### Fixed - `sqlitemigration` will no longer disable foreign keys during operation ([#54](https://github.com/zombiezen/go-sqlite/issues/54)).
-
v0.13.0efb253c9 · ·
Version 0.13 added support for user-defined [collating sequences](https://www.sqlite.org/datatype3.html#collation) and user-defined [virtual tables](https://sqlite.org/vtab.html). ### Added - Support user-defined collating sequences ([\#\undefined\undefined21](https://github.com/zombiezen/go-sqlite/issues/21)). - Support user-defined virtual tables ([\#\undefined\undefined15](https://github.com/zombiezen/go-sqlite/issues/15)). - New package `ext/generateseries` provides an optional `generate_series` table-valued function extension. - Exported the `regexp` function example as a new `ext/refunc` package. - Add `*Conn.Serialize` and `*Conn.Deserialize` methods ([\#\undefined\undefined52](https://github.com/zombiezen/go-sqlite/issues/52)). ### Changed - The minimum supported Go version for this library is now Go 1.19. ### Fixed - The documentation for `AggregateFunction.WindowValue` incorrectly stated that it would not be called in non-window contexts. The sentence has been removed, but the behavior has not changed.
-
v0.12.051c4ea35 · ·
Version 0.12 added support for the [online backup API](https://www.sqlite.org/backup.html). ### Added - Added support for the online backup API ([#47](https://github.com/zombiezen/go-sqlite/issues/47)). - Documented the `OpenFlags`. ### Changed - `OpenNoMutex` and `OpenFullMutex` no longer have an effect on `sqlite.OpenConn`. `OpenNoMutex` (i.e. [multi-thread mode](https://www.sqlite.org/threadsafe.html)) is now the only supported mode. `*sqlite.Conn` has never been safe to use concurrently from multiple goroutines, so this is mostly to prevent unnecessary locking and to avoid confusion. ([#32](https://github.com/zombiezen/go-sqlite/issues/32)).
-
v0.11.0c0ff7570 · ·
Version 0.11 changes the aggregate function API. ### Changed - User-defined aggregate functions are now encapsulated with a new interface, `AggregateFunction`. The previous 4-callback approach has been removed and replaced with a single `MakeAggregate` callback. Not only was the previous API unwieldy, but it failed to handle concurrent aggregate function calls in a single query. - Minimum `modernc.org/sqlite` version updated to 1.20.0.
-
-
v0.10.18ade6d3e · ·
Version 0.10.1 fixes a bug in user-defined window functions. Special thanks to Jan Mercl for assistance in debugging this issue. ### Fixed - `AggregateFinal` is now called correctly at the end of window functions' usages.
-
v0.10.0a3705013 · ·
Version 0.10 adds support for user-defined window functions. ### Added - `FunctionImpl` has two new fields (`WindowValue` and `WindowInverse`) that allow creating [user-defined aggregate window functions][] ([#42](https://github.com/zombiezen/go-sqlite/issues/42)). [user-defined aggregate window functions]: https://www.sqlite.org/windowfunctions.html#user_defined_aggregate_window_functions ### Changed - The `AggregateStep` callback now returns an `error`.
-
-
v0.9.25dc700a1 · ·
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!).
-