Skip to content

Tags

Tags give the ability to mark specific points in history as being important
  • upstream/1.4.2
    Upstream version 1.4.2
  • v1.4.2
    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.1
    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.0
    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.0
    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.0
    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.2
    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.1
    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.0
    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.0
    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.1
    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.0
    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.0
    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.0
    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.11.0-beta1
  • v0.10.1
    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.0
    a3705013 · Add 0.10.0 release notes ·
    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.3
  • v0.9.2
    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!).
  • v0.9.1
    91ba482a · Retract v0.9.0 ·