Repository navigation
Releases
v0.37.0
What's Changed
Behavior changes:
The database/sql driver now uses BEGIN IMMEDIATE transactions by default. You can change the default with _txlock (as previously), and as the docs state:
LevelLinearizabletransactions are alwaysEXCLUSIVE;LevelSerializabletransactions are alwaysIMMEDIATE;ReadOnlytransactions are alwaysDEFERRED.
Fixes:
WAL mode data corruption issues for:
- the
adiantumandxtsVFSes was fixed in #446. Thanks @crux153! - the
sqlite3_dotlkbuild tag was fixed in #449.
Memory usage on illumos was improved in #444. Thanks @extrowerk!
An issue with the unicode extension was fixed in #448. Thanks @rriski!
New feature:
Approximate quantiles added to the approximate statistics package in #443.
All the approximate statistics aggregates support windowing, rollup tables, etc.
Full Changelog: v0.36.0...v0.37.0
v0.36.0
What's Changed
Breaking changes:
Removed FCNTL_NULL_IO, which was broken and impossible to use correctly.
Fixes:
Issue #436, lead to a comprehensive review of resource cleanup. Thanks @eric-hubbard.
Issue #434.
New feature:
New API for combinable aggregates, using two stack sliding window aggregation. Thanks @orlp!
Used to implement bitwise aggregates bit_and and bit_or, and a new approximate statistics package.
All the new aggregates support windowing.
Updates:
- SQLite 3.54.1, with an upstream fix.
Full Changelog: v0.35.6...v0.36.0
v0.35.6
v0.35.5
What's Changed
- new memory allocator in ncruces/wasm2go#52
- performance improvements in ncruces/wasm2go#55
Full Changelog: v0.35.4...v0.35.5
v0.35.4
What's Changed
- Go 1.27 support (JSON v2, UUID,
RowsColumnScanner) - Support
PRAGMA mmap_sizein #417 - Custom FTS5 tokenizers in #421
- Memory configuration fix in f8e486f
New Contributors
- @ChrisJr404 made their first contribution in #422
Full Changelog: v0.35.3...v0.35.4
v0.35.3
What's Changed
Fixes:
Issue #404, affects Windows, and causes data corruption when using WAL mode under heavy concurrency. Upgrading is highly advised if you use WAL mode on Windows. Thanks @franchb for reporting the issue, providing a regression test, and contributing a prototype fix. The fix requires memory placeholders, which are available from Windows 10 1803+ / Server 2019+. Shared memory WAL is disabled on older versions of Windows.
Issue #411, affects Linux, and causes performance degradation during VACUUM of large databases.
Updates:
- SQLite 3.53.4
Full Changelog: v0.35.2...v0.35.3
v0.35.2
What's Changed
Updates:
- SQLite 3.53.3
- Gorm 1.31.2
- Vec1 0.7
Added O_TMPFILE support.
Caution
There is a know issue (#404) that may cause data corruption when using WAL mode on Windows under high concurrency.
The bug has likely existed ever since WAL mode support was added to Windows in v0.20.2 2 years ago.
Since this is not a regression, I decided not to block the release waiting for a fix.
Full Changelog: v0.35.1...v0.35.2
v0.35.1
v0.35.0
What's Changed
In an effort to keep the code size small (and compile times relatively fast) while continuing to add more SQLite features, the FTS5 and R*Tree/Geopoly extensions are now compiled separately. This is a breaking change. Now, to use:
- FTS5, you need
github.com/ncruces/go-sqlite3/ext/fts5 - R*Tree/Geopoly, you need
github.com/ncruces/go-sqlite3/ext/rtree
In addition, support for the pre-update hook was added.
Also, Go 1.27 uses encoding/json/v2 for improved performance.
Full Changelog: v0.34.4...v0.35.0
v0.34.4
What's Changed
Updates:
- SQLite 3.53.2
- Vec1 0.6
Improved the dotlk VFS under Linux containers: #392
Full Changelog: v0.34.3...v0.34.4