Zombiezen Go Sqlite Versions Save

Low-level Go interface to SQLite 3

v1.3.0

1 week ago

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).
  • Documented OpenWAL behavior on sqlite.OpenConn.

Fixed

  • Address low-frequency errors with concurrent use of sqlitemigration (#99).
  • The error returned from sqlitex.NewPool when trying to open an in-memory database now gives correct advice (#92).

v1.2.0

1 month ago

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).
  • 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).

v1.1.2

3 months ago

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).
  • The minimum modernc.org/sqlite version updated to 1.29.1 (#77).

v1.1.1

3 months ago

Version 1.1.1 improves performance on write-contended workloads.

Fixed

  • Make busy-blocking more responsive (#75).

v1.1.0

4 months ago

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).
  • Added a documentation example for SetCollation (#64).

Deprecated

  • Deprecated sqlitex.Open in favor of sqlitex.NewPool.

Fixed

  • Speed up internal string conversions (#66). Thank you @ffmiruz for the profiling work!

v1.0.0

5 months ago

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).
  • 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

9 months ago

Version 0.13.1 fixed a bug with the sqlitemigration package.

Fixed

  • sqlitemigration will no longer disable foreign keys during operation (#54).

v0.13.0

1 year ago

Version 0.13 added support for user-defined collating sequences and user-defined virtual tables.

Added

  • Support user-defined collating sequences (#21).
  • Support user-defined virtual tables (#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 (#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

1 year ago

Version 0.12 added support for the online backup API.

Added

  • Added support for the online backup API (#47).
  • Documented the OpenFlags.

Changed

  • OpenNoMutex and OpenFullMutex no longer have an effect on sqlite.OpenConn. OpenNoMutex (i.e. multi-thread mode) 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).

v0.11.0

1 year ago

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.