Release Notes
Added
- Support isnull and notnull expr (meteorgan)
- Add drop index (Anton Harniakou)
- bindings/wasm: add types property for typescript setting (오병진)
- Implement transaction support in Go adapter (Jonathan Ness)
- Initial implementation of
ALTER TABLE RENAME
(Levy A.) - Add time.Time and bool data types support in Go adapter (Jonathan Ness)
- Add tests for INSERT with specified column-name list (Anton Harniakou)
- GROUP BY: refactor logic to support cases where no sorting is needed (Jussi Saurio)
- Add embedded library support to Go adapter (Jonathan Ness)
- Add time.Time support to Go driver parameter binding (Jonathan Ness)
- Show explanation for the NewRowid opcode (Anton Harniakou)
- Add notion of join ordering to plan (Jussi Saurio)
- Add static feature to Cargo.toml to support extensions written inside core (Pedro Muniz)
- implement Clone for Arc types (Pete Hayman)
- Add PRAGMA schema_version (Anton Harniakou)
- Support literal-value current_time, current_date and current_timestamp (meteorgan)
- Add state machine for op_idx_delete + DeleteState simplification (Pere Diaz Bou)
- Add the .indexes command (Anton Harniakou)
- Optimization: only initialize
Rustyline
if we are in a tty (Pedro Muniz) - Add Antithesis Tests (eric-dinh-antithesis)
- core/types: remove duplicate serialtype implementation (Jussi Saurio)
- bindings/rust: Add Statement.columns() support (Timo Kösters)
- docs: add Rust to "Getting Started" section (Timo Kösters)
- Support xBestIndex in vtab API (Preston Thorpe)
- Feat: add support for descending indexes (Jussi Saurio)
Updated
- github: Ensure rustmft is installed (Pekka Enberg)
- btree: Coalesce free blocks in
page_free_array()
(Mohamed Hossam) - Count optimization (Pedro Muniz)
- bindings/java: Remove disabled annotation for UPDATE and DELETE (Kim Seon Woo)
- Refactor numeric literal (meteorgan)
- EXPLAIN should show a comment for the Insert opcode (Anton Harniakou)
- bindings/javascript: Improve compatibility with better-sqlite (Diego Reis)
- bindings/go: Upgrade ebitengine/purego to allow for use with go 1.23.9 (Preston Thorpe)
- Adjust vtab schema creation to display the underlying columns (Preston Thorpe)
- Read only mode (Pedro Muniz)
- Test that DROP TABLE also deletes the related indices (Anton Harniakou)
- reset statement before executing in rust binding (Pedro Muniz)
- Bump assorted dependencies (Preston Thorpe)
- Eliminate a superfluous read transaction when doing PRAGMA user_version (Anton Harniakou)
- update index on updated indexed columns (Pere Diaz Bou)
- Save history on exit (Piotr Rżysko)
- btree/tablebtree_move_to: micro-optimizations (Jussi Saurio)
- refactor database open_file and open (meteorgan)
- Give name to hard-coded page_size values (Anton Harniakou)
- Performance: hoist entire expressions out of hot loops if they are constant (Jussi Saurio)
- Feature: Composite Primary key constraint (Pedro Muniz)
- types: refactor serialtype again to make it faster (Jussi Saurio)
- replace vec with array in btree balancing (Lâm Hoàng Phúc)
- Pragma page size reading (Anton Harniakou)
- perf/btree: use binary search for Index seek operations (Jussi Saurio)
- expr.is_nonnull(): return true if col.primary_key || col.notnull (Jussi Saurio)
- Numeric Types Overhaul (Levy A.)
- Python script to compare vfs performance (Preston Thorpe)
- Create an automatic ephemeral index when a nested table scan would otherwise be selected (Jussi Saurio)
- Bump julian_day_converter to 0.4.5 (meteorgan)
- btree: avoid reading entire cell when only rowid needed (Jussi Saurio)
- btree: use binary search in seek/move_to for table btrees (Jussi Saurio)
- Feat: Covering indexes (Jussi Saurio)
- allow index entry delete (Pere Diaz Bou)
Fixed
- testing/py: rename debug_print() to run_debug() (Jussi Saurio)
- Fix handling of empty strings in prepared statements (Diego Reis)
- CREATE VIRTUAL TABLE fixes (Piotr Rżysko)
- Bindings/Go: Fix symbols for FFI calls (Preston Thorpe)
- Fix bound parameters on insert statements with out of order column indexes (Preston Thorpe)
- Fix memory leak caused by unclosed virtual table cursors (Piotr Rżysko)
- Fix panic on async io due to reading locked page (Preston Thorpe)
- Fix bug: we cant remove order by terms from the head of the list (Jussi Saurio)
- Fix setting default value for primary key on UPDATE (Pere Diaz Bou)
- Fix: allow page_size=65536 (meteorgan)
- Fix
page_count
pragma (meteorgan) - Fix broken fuzz target due to old name (Levy A.)
- Emit
IdxDelete
instruction and some fixes on seek after deletion (Pere Diaz Bou) - Bugfix: Explain command should display syntax errors in CLI (Anton Harniakou)
- Fix incorrect between expression documentation (Pedro Muniz)
- Fix bug: left join null flag not being cleared (Jussi Saurio)
- Fix out of bounds access on
parse_numeric_str
(Levy A.) - Fix post balance validation (Pere Diaz Bou)
Install limbo_cli 0.0.20-pre.2
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tursodatabase/limbo/releases/download/v0.0.20-pre.2/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.20-pre.2/limbo_cli-installer.ps1 | iex"
Download limbo_cli 0.0.20-pre.2
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>