Release Notes
Added
- Add
fuzz
to CI checks (Levy A.) - Add async header accessor functionality (Zaid Humayun)
- core/vector: Euclidean distance support for vector search (KarinaMilet)
- Fix: OP_NewRowId to generate semi random rowid when largest rowid is
i64::MAX
(Krishna Vishal) - vdbe: fix some issues with min() and max() and add ignored fuzz test (Jussi Saurio)
- github: Update to newest Nyrkiö Github action (Henrik Ingo)
- Add Nyrkiö to partners section in README (Henrik Ingo)
- Support except operator for Compound select (meteorgan)
- btree: fix incorrect comparison implementation in key_exists_in_index() (Jussi Saurio)
- bindings/java: Implement required methods to run on JetBrains Datagrip (Kim Seon Woo)
- add interactive transaction to property insert-values-select (Pere Diaz Bou)
- add pere to antithesis (Pere Diaz Bou)
- cli: Add support for
.headers
command (Pekka Enberg) - stress: add a way to run stress with indexes enabled (Jussi Saurio)
- sim: add feature flags (indexes,mvcc) to CLI args (Jussi Saurio)
- Add multi select test in JDBC4StatementTest (Kim Seon Woo)
- bindings/dart initial implementation (Andika Tanuwijaya)
- bindings/javascript: Implement Database.open (Lucas Forato)
- add
libsql_disable_wal_checkpoint
(Pedro Muniz) - Add a threshold for large page cache values (Krishna Vishal)
- Rollback schema support (Pere Diaz Bou)
- add a README for the rust bindings (Glauber Costa)
- add a basic readme for the typescript binding (Glauber Costa)
- add a benchmark for connection time versus number of tables (Glauber Costa)
- Add opening new connection from a sqlite compatible URI, read-only connections (Preston Thorpe)
- Simplify
PseudoCursor
implementation (Levy A.) - bind/js: add tests for expand (Mikaël Francoeur)
Updated
- Gopher is biologically closer to beavers than hamsters (David Shekunts)
- build: Update cargo-dist to 0.28.6 (Pekka Enberg)
- cli: Fail import command if table does not exists (Pekka Enberg)
- Assert I/O read and write sizes (Pere Diaz Bou)
- do not check rowid alias for null (Nikita Sivukhin)
- CDC functions (Nikita Sivukhin)
- Ignore double quotes around table names (Zaid Humayun)
- Efficient Record Comparison and Incremental Record Parsing (Krishna Vishal)
parse_schema_rows
optimizations (Levy A.)- Simulator - only output color on terminal (Mikaël Francoeur)
- Btree: more balance docs (Jussi Saurio)
- btree: Improve balance non root docs (Jussi Saurio)
- properly set last_checksum after recovering wal (Pere Diaz Bou)
- btree/chore: remove unnecessary parameters to .cell_get() (Jussi Saurio)
- core/btree: Make cell field names consistent (Jussi Saurio)
- Enforce TCL 8.6+ in compatibility tests (Mikaël Francoeur)
- Minor refactoring of btree (meteorgan)
- bindings/python: Start transaction implicitly in execute() (Pekka Enberg)
- sqlite3_ondisk: generalize left-child-pointer reading function to both index/table btrees (Jussi Saurio)
- sim: post summary to slack (Jussi Saurio)
- stress clippy (Jussi Saurio)
- Synchronize WAL checkpointing (Pere Diaz Bou)
- Reachable assertions in Antithesis Python Test for better logging (Pedro Muniz")
- bindings/python: close connection only when reference count is one (Pere Diaz Bou)
- parser: use YYSTACKDEPTH (Lâm Hoàng Phúc)
- CI: remove duplicate fuzz run (Jussi Saurio)
- Use binary search in find_cell() (Ihor Andrianov)
- Use
str_to_f64
on float conversion (Levy A.) - parser: replace KEYWORDS with matching (Lâm Hoàng Phúc)
- Reachable assertions in Antithesis Python Test for better logging (Pedro Muniz)
- treat ImmutableRecord as Value::Blob (Nikita Sivukhin)
- remove experimental_flag from script + remove -q flag default flag from
TestTursoShell
(Pedro Muniz) - Change data capture (Nikita Sivukhin)
- Import subset of SQLite TCL tests (Pekka Enberg)
- bindings/java: Merge JavaScript test suites (Mikaël Francoeur)
- Import JavaScript bindings test suite from libSQL (Mikaël Francoeur)
- bindings/java: Rename to Turso (Diego Reis)
- Antithesis schema rollback tests (Pekka Enberg)
- Disable adaptive colors when output_mode is list (meteorgan)
- core/storage: Switch to turso_assert in btree.rs (Pekka Enberg)
- core: Disable
ROLLBACK
statement (Pekka Enberg") - Rust binding improvements (Pedro Muniz")
from_uri
was not passing mvcc and indexes flag to database creation for memory path (Pedro Muniz)- Turso, not Limbo, in pyproject.toml (Simon Willison)
- Rename Limbo -> Turso in python tests (Preston Thorpe)
- clarify discord situation (Glauber Costa)
- automatically select terminal colors for pretty mode (Glauber Costa)
- remote query_mode from ProgramBuilderOpts and from function arguments (Nikita Sivukhin)
- limbo -> turso (Glauber Costa)
- Rust binding improvements (Pedro Muniz)
Fixed
- test/fuzz: fix rowid_seek_fuzz not being a proper fuzz test (Jussi Saurio)
- b-tree: fix bug in case when no matching rows was found in seek in the leaf page (Nikita Sivukhin)
- Fix clippy errors for Rust 1.88.0 (Nils Koch)
- sim: return LimboError::Busy when busy, instead of looping forever (Jussi Saurio)
- btree/balance/validation: fix divider cell insert validation (Jussi Saurio)
- btree/balance/validation: fix use-after-free in rightmost ptr validation (Jussi Saurio)
- core/translate: Fix "misuse of aggregate function" error message (Pekka Enberg)
- core/translate: Return error if SELECT needs tables and there are none (Mikaël Francoeur)
- antithesis: Fix transaction management (Pekka Enberg)
- core: Fix resolve_function() error messages (Pekka Enberg)
- VDBE: fix op_insert re-entrancy (Jussi Saurio)
- VDBE: fix op_idx_insert re-entrancy (Jussi Saurio)
- bindings/javascript: Improve error handling compatibility with
better-sqlite3
(Mikaël Francoeur) - uv run ruff format && uv run ruff check --fix (Jussi Saurio)
- vdbe: fix compilation (Pere Diaz Bou)
- core/translate: Fix aggregate star error handling in prepare_one_sele… (Pekka Enberg)
- Fix infinite loops, rollback problems, and other bugs found by I/O fault injection (Pedro Muniz)
- core/translate: Unify no such table error messages (Pekka Enberg)
- Fix
ScalarFunc::Glob
to handle NULL and other value types (Krishna Vishal) - fix: buffer pool is not thread safe problem (KaguraMilet)
- Fix index update when INTEGER PRIMARY KEY (rowid alias) (Adrian-Ryan Acala)
- Fix Python test import naming (Pedro Muniz)
- Fix boxed memory leaks (Ihor Andrianov)
- bindings/javascript: Formatting and typos (Mikaël Francoeur)
Install turso_cli 0.1.2
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tursodatabase/turso/releases/download/v0.1.2/turso_cli-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/tursodatabase/turso/releases/download/v0.1.2/turso_cli-installer.ps1 | iex"
Download turso_cli 0.1.2
File | Platform | Checksum |
---|---|---|
turso_cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
turso_cli-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
turso_cli-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
turso_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/turso
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>