zombiezen.com/go/sqlite ChangelogAll notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Version 0.13.1 fixed a bug with the sqlitemigration package.
sqlitemigration will no longer disable foreign keys during operation
(#54).Version 0.13 added support for user-defined collating sequences and user-defined virtual tables.
ext/generateseries provides
an optional generate_series table-valued function extension.regexp function example as a new ext/refunc package.*Conn.Serialize and *Conn.Deserialize methods
(#52).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.Version 0.12 added support for the online backup API.
OpenFlags.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).Version 0.11 changes the aggregate function API.
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.modernc.org/sqlite version updated to 1.20.0.Version 0.10.1 fixes a bug in user-defined window functions. Special thanks to Jan Mercl for assistance in debugging this issue.
AggregateFinal is now called correctly at the end of window functions' usages.Version 0.10 adds support for user-defined window functions.
FunctionImpl has two new fields (WindowValue and WindowInverse)
that allow creating user-defined aggregate window functions
(#42).AggregateStep callback now returns an error.Version 0.9.3 updates the version of modernc.org/sqlite used.
modernc.org/sqlite version updated to v1.17.3.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.
SetBlockOnBusy method to set an indefinite timeout on acquiring a lock.windows/amd64.sqlitex has three new functions —
Execute, ExecuteTransient, and ExecuteScript —
that take in an ExecOptions struct.
(#5)sqlite.ResultCode.ToError to create error values.ColumnBool and GetBool on *sqlite.Stmt
(#37).OpenConn calls SetBlockOnBusy on new connections
instead of SetBusyTimeout(10 * time.Second).sqlitex.Execute* family of functions now verify that
the arguments passed match the SQL parameters.
(#31)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.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!).Versions 0.9.0 was accidentally released before CI ran.
A change in the underlying modernc.org/libc library
caused the memory leak detection to identify a false positive.
In an abundance of caution, 0.9.1 was released
to mark both 0.9.1 and 0.9.0 as retracted.
Version 0.9.2 is the first official release of 0.9.
Version 0.8 adds new transaction functions to sqlitex.
sqlitex.Transaction, sqlitex.ImmediateTransaction, and
sqlitex.ExclusiveTransaction.modernc.org/sqlite dependency to a released version instead of a
prereleasesqlitemigration.Schemasqlitemigration.Schema has a new option for disabling foreign keys for
individual migrations. This makes it easier to perform migrations that require
reconstructing a table. (#20)sqlitemigration.Migrate and *sqlitemigration.Pool no longer use a
transaction to apply the entire set of migrations: they now only use
transactions during each individual migration. This was never documented, so
in theory no one should be depending on this behavior. However, this does mean
that two processes trying to open and migrate a database concurrently may race
to apply migrations, whereas before only one process would acquire the write
lock and migrate.*sqlitex.Pool.Put now accepts nil instead of panicing.
(#17)Session, ChangesetIterator, Changegroup, and
various functions. There are some slight naming changes from the
crawshaw.io/sqlite API, but they can all be migrated automatically with the
migration tool. (#16)nil *sqlite.Conn will return an error rather than panic.
(#17)OpenFlags that are only used for VFS.sqlitex.Pool
(#14)shell package with basic REPLSetAuthorizer, Limit, and SetDefensive methods to *Conn for use
in (#12)Version and VersionNumber constantsio.StringWriter, io.ReaderFrom, and io.WriterTo on Blob
(#2)Blob, sqlitemigration, and SetInterruptmodernc.org/sqlite to 1.10.4 to use mutex initializationBindZeroBlob*Conn.CreateFunction has changed entirely. See the
reference
for details.sqlitex.File and sqlitex.Buffer have been moved to the sqlitefile packagesqlitefile.Exec* functions have been moved to the sqlitex package
as Exec*FS.Initial release