Release Notes
Added
- Implement pragma wal_checkpoint() (Pedro Muniz)
- Add abbreviated alias for
.quit
and.exit
(Krishna Vishal) - Add manual WAL sync before checkpoint in con.close, fix async bug in checkpoint (Preston Thorpe)
- Complete ALTER TABLE implementation (Levy A.)
- Add affinity-based type coercion for seek and comparison operation (Krishna Vishal)
- bindings/javascript: Add pragma() support (Anton Harniakou)
- Add sleep between write tests to avoid database locking issues (Pedro Muniz)
- bindings/java: Implement JDBC4DatabaseMetadata getTables (Kim Seon Woo)
- bindings/javascript: Add source property to Statement (Anton Harniakou)
- Support
sqlite_master
schema table name alias (Anton Harniakou) - js-bindings/implement .name property (Anton Harniakou)
- bindings/java: Add support for Linux build (Diego Reis)
- bindings/javascript: Add database property to Statement (Anton Harniakou)
- simulator: add CREATE INDEX to interactions (Jussi Saurio)
- Add support for pragma table-valued functions (Piotr Rżysko)
- bindings/javascript: Add proper exec() method and raw() mode (Diego Reis)
- Add simulator-docker-runner for running limbo-sim in a loop on AWS (Jussi Saurio)
- simulator: add option to disable BugBase (Jussi Saurio)
- simulator: switch to tracing, run io.run_once and add update queries (Pere Diaz Bou)
- Fix: aggregate regs must be initialized as NULL at the start (Jussi Saurio)
- add stress test with 1 thread 10k iterations to ci (Pere Diaz Bou)
Updated
- antithesis: Build Python package from sources (Pekka Enberg)
- overwrite sqlite3 in install_sqlite (Pere Diaz Bou)
- stress: Run integrity check for every iteration (Pekka Enberg)
- core: Clean up
integrity_check()
(Pekka Enberg) - Simple integrity check on btree (Pere Diaz Bou)
- Make SQLite bindings thread-safe (Pekka Enberg)
- Switch Connection to use Arc instead of Rc (Pekka Enberg)
- Drop unused code in op_column (meteorgan)
- NOT NULL constraint (Anton Harniakou)
- Simulator Ast Generation + Simulator Unary Operator + Refactor to use
limbo_core::Value
in Simulator for massive code reuse (Pedro Muniz) - Refactor compound select (meteorgan)
- Disable index usage in DELETE because it does not work safely (Jussi Saurio)
- Simulator: Better Shrinking (Pedro Muniz)
- Simulator integrity_check (Pedro Muniz)
- Remove leftover info trace (Jussi Saurio)
- Namespace functions that operate on
Value
(Pedro Muniz) - Remove plan.to_sql_string() from optimize_plan() as it panics on TODOs (Jussi Saurio)
- Minor: use use_eq_ignore_ascii_case in some places (Anton Harniakou)
- Remove the FromValue trait (Anton Harniakou)
- bindings/javascript: Refactor presentation mode and enhance test suite (Diego Reis)
- Beginnings of AUTOVACUUM (Zaid Humayun)
- Reverse Parse Limbo
ast
and Plans (Pedro Muniz) - simulator: log the interaction about to be executed with INFO (Jussi Saurio)
- stress: Use temporary file unless one explicitly specified (Jussi Saurio)
- Write database header via normal pager route (meteorgan)
- simulator: options to disable certain query types (Pedro Muniz)
- Make cursor seek reentrant (Pedro Muniz)
- Pass input string to
translate
function (Pedro Muniz) - Small tracing enhancement (Pedro Muniz)
- Adjust write cursors for delete to avoid opening more than once. (Pedro Muniz)
- Convert u64 rowid to i64 (Pere Diaz Bou)
- Use tempfile in constraint test (Jussi Saurio)
- Remove frame id from key (Pere Diaz Bou)
- clear page cache on transaction failure (Pere Diaz Bou)
Fixed
- Fix incorrect lossy conversion of
Value::Blob
to a utf-8String
(Luca Muscat) - Fix update queries to set
n_changes
(Kim Seon Woo) - bindings/rust: Fix Rows::next() I/O dispatcher handling (Pekka Enberg)
- cli: fix panic of queries with less than 7 chars (Nils Koch)
- Return parse error instead of corrupt error for
no such table
(Pedro Muniz) - simulator: disable all ansi encodings for debug print log file (Pedro Muniz)
- Fix large inserts to unique indexes hanging (Jussi Saurio)
- betters instrumentation for btree related operations + cleaner debug for
RefValue
(Pedro Muniz) - sim/aws: fix vibecoding errors in logic (Jussi Saurio)
- Fix incorrect handling of OR clauses in HAVING (Jussi Saurio)
- fix: Incorrect placeholder label in where clause translation (Pedro Muniz)
- Fix rowid to_sql_string (Pedro Muniz)
- Fix incorrect usage of indexes with non-contiguous columns (Jussi Saurio)
- BTree traversal refactor and bugfixes (Pere Diaz Bou)
LimboRwLock
write and read lock fixes (Pere Diaz Bou)- fix: make keyword_token safe by validating UTF-8 input (ankit)
- Fix UPDATE straight up not working on non-unique indexes (Jussi Saurio)
- Fix: ensure
PRAGMA cache_size
changes persist only for current session (meteorgan) - sim/aws: fix sim timeout handling (Jussi Saurio)
- Fix WAL frame checksum mismatch (Diego Reis)
- Set maximum open simulator-created issues (Jussi Saurio)
- Fix cursors not being opened for indexes in DELETE (Jussi Saurio)
- Fix: allow DeferredSeek on more than one cursor per program (Jussi Saurio)
- Fix stress test to ignore unique constraint violation (krishna sindhur)
- Fix ProgramBuilder::cursor_ref not having unique keys (Jussi Saurio)
- Fix
serialize()
unreachable panic (Krishna Vishal) - Btree: fix cursor record state not being updated in insert_into_page() (Jussi Saurio)
Install limbo_cli 0.0.22
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tursodatabase/limbo/releases/download/v0.0.22/limbo_cli-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/tursodatabase/limbo/releases/download/v0.0.22/limbo_cli-installer.ps1 | iex"
Download limbo_cli 0.0.22
File | Platform | Checksum |
---|---|---|
limbo_cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
limbo_cli-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
limbo_cli-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
limbo_cli-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo tursodatabase/limbo
You can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>