releases.shpreview
Turso/Turso/v0.5.0

v0.5.0

0.5.0 -- 2026-03-04

$npx -y @buildinternet/releases show rel_GDxvAYJscsO1Crx9iXURJ

Release Notes

Added

  • github/release: Add retry logic to network-dependent install steps (Pekka Enberg")
  • github/release: Add retry logic to network-dependent install steps (Pekka Enberg)
  • Add JS and Python concurrent write examples (Avinash Sajjanshetty)
  • perf/react-native: add c++ getAllRows() helper (Jussi Saurio)
  • perf: add compiler branching hints (Preston Thorpe)
  • Add concurrent writes example in Rust (Avinash Sajjanshetty)
  • Add SQLAlchemy dialect for Python bindings (Orthel Toralen)
  • mvcc: add test that asserts no ghost commits after Busy errors happen (Jussi Saurio)
  • core: Support views in MVCC mode (RJ Barman)
  • add return type checking for Function calls for CHECK constraints (Pedro Muniz)
  • Add mobibench to gitignore (Preston Thorpe)
  • Add native TCL extension for in-process SQLite test harness (Ahmad Alhour)
  • bindings/rust: Add statement and row column inspection APIs (Pekka Enberg)
  • cli/sync: add read timeout to prevent deadlock on Windows (Orthel Toralen)
  • add SQL language reference documentation (Glauber Costa)
  • add stable PRAGMA capture_data_changes_conn name and keep old one around for compatibility (Nikita Sivukhin)
  • Improve Elle, add rw-register model and chaotic workloads (Avinash Sajjanshetty)
  • Add Mobibench evaluation: SQLite vs Turso (Pekka Enberg)
  • core/io: Add POSIX fallback for io_uring ftruncate (Pekka Enberg)
  • temporarily remove new windows simulation runs (Preston Thorpe)
  • feat: support encryption keys for attached databases via URI params (Glauber Costa)
  • Finish implementing RAISE (Preston Thorpe)
  • autofix: implement FkCheck opcode to prevent RETURNING rows after FK violations (Jussi Saurio)
  • Support custom types (Glauber Costa)
  • tests/fuzz: add fuzz_iterations helper and cut CI fuzz iters to 50% (Jussi Saurio)
  • Add STRICT table support to differential fuzzer (Glauber Costa)
  • Add support for RAISE() function (Glauber Costa)
  • Add ATTACH support to simulator (Glauber Costa)
  • partially implement FULL OUTER + LEFT and RIGHT hash joins (Preston Thorpe)
  • EXPLAIN QUERY PLAN: fix incorrect join order, add missing annotations, convert some snapshot tests to EQP-only (Jussi Saurio)
  • bindings/rust: add old multithreaded bug reproducers as mvcc regression tests (Jussi Saurio)
  • core/mvcc: Implement Hekaton commit dependency tracking (Pere Diaz Bou)
  • tests: add CTE regression tests for issue #4637 (Jussi Saurio)
  • add serial test crate to make fuzz_pending_byte_database serial for mvcc and wal (Pedro Muniz)
  • Add more tests to foreign_keys.sqltest (Jussi Saurio)
  • tests: add regression tests for expression index UPDATE correctness (Pedro Muniz)
  • Implement named savepoints (Preston Thorpe)
  • feat: Add materialized views support to Rust bindings and test runner (Martin Mauch)
  • Fix STRICT ADD COLUMN default type validation (Kumar Ujjawal)
  • Fix freelist_count dirty leak and add regression test (Kumar Ujjawal)
  • core: reimplement PRAGMA integrity_check as VDBE and add sqlite parity corpus (Jussi Saurio)
  • Restore new antithesis assertions (Mikaël Francoeur)
  • Use new Antithesis assertions (Mikaël Francoeur")
  • fix: NEW.rowid_alias in UPDATE Trigger WHEN Clause Evaluates to NULL (Jussi Saurio)
  • Add MVCC Antithesis stress test configurations (Pekka Enberg)
  • add tests verifying check constraints are evaluated before ON CONFLICT clauses (Jussi Saurio)
  • Improve support for attach databases (Glauber Costa)
  • translate: support row-valued comparison expressions (Jussi Saurio)
  • fix: add changes support to MVCC and adjust code to always emit it in one place only (Pedro Muniz)
  • Add regression tests for correlated subqueries using MULTI-INDEX AND plans (Jussi Saurio)
  • add tests verifying INSERT RETURNING does not skip index updates (Jussi Saurio)
  • btree: add property tests & make a few functions not panic on corruption (Jussi Saurio)
  • Use new Antithesis assertions (Mikaël Francoeur")
  • add regression tests for correlated subqueries registers fix (Pedro Muniz)
  • Use new Antithesis assertions (Mikaël Francoeur)
  • Add regression tests for concurrent commit deadlock in VDBE yield-spin loop (Avinash Sajjanshetty)
  • Add TPC-H benchmark README and plotting scripts (Pekka Enberg)
  • fix: Panic on ALTER TABLE ADD COLUMN With Invalid Collation Name #5305 (Jussi Saurio)
  • ci: add license checker to disallow GPL dependencies (Srinivas A)
  • Add some makefile commands for test runner in repo root (Preston Thorpe)
  • add exp-index-method to rust backend and for testing (Pavan Nambi)
  • Add support for FROM-clause subquery materialization and CTE materialization (Jussi Saurio)
  • Add new antithesis assertions (Mikaël Francoeur)
  • concurrent-simulator: Add UPDATE and DELETE workloads (Pekka Enberg)
  • Implement PRAGMA function_list with enum-derived function probing (Glauber Costa)
  • Add hermitage tests (Avinash Sajjanshetty)
  • Fix corruption errors caused by stale cursor positioning + add upsert support to simulator (Pavan Nambi)
  • make transactions supported in compat.md (Glauber Costa)
  • Add REGEXP operator support (Glauber Costa)
  • Add test case for MVCC dual cursor transaction isolation (Jussi Saurio)
  • Implement CHECK constraints (Glauber Costa)
  • Replace panic/todo/unimplemented with proper errors (Mikaël Francoeur)
  • testing/runner: Add @skip-if sqlite directive (Preston Thorpe)
  • Implement multi-index scan access method (Preston Thorpe)
  • add tests for ORDER BY aggregate not in SELECT with GROUP BY (Mikaël Francoeur)
  • github: Add workflow to publish crates to crates.io on tags (Pekka Enberg)
  • javascript: Add support for Statement.reader property (Pekka Enberg)
  • javascript: Fix implicit connect support (Pekka Enberg)
  • Add busy timeout and Connector pattern for go bindings (Preston Thorpe)
  • core/mvcc: add to destroyed_tables when insert+delete in same checkpoint (Pere Diaz Bou)
  • core/vdbe: fix newrowid Start state change on IO (Pere Diaz Bou)
  • add duration and fix notebook name (Mikaël Francoeur)
  • Add support for PRAGMA synchronous=NORMAL (Jussi Saurio)
  • Use new Antithesis trigger action (Mikaël Francoeur)
  • core/mvcc: update schema root pages with new allocated btree pages (Pere Diaz Bou)
  • add --experimental-attach flag to test runner backends (Mikaël Francoeur)
  • add index knowledge skill (Pedro Muniz)
  • Implement vacuum_into op (Avinash Sajjanshetty)
  • fix: only initialize result registers for subqueries that have not been evaluated yet (Pedro Muniz)
  • fix: add bounds checking to cell_interior_read_left_child_page (Avinash Sajjanshetty)
  • Add Namespace field for go-sync package (Preston Thorpe)
  • Add "release-official" compilation profile (Jussi Saurio)
  • Add support for local encryption in SDKs (Avinash Sajjanshetty)
  • fix build.rs rebuilding every time due to always getting new timestamp (Jussi Saurio)
  • add turso test runner to workspace member (Pedro Muniz)
  • fix dockerfile to add dbhash tool (Pedro Muniz)
  • add ReadableName strategy for differential fuzzer so that we mostly generate readable identifiers (Pedro Muniz)
  • implement PRAGMA temp_store optimization (Preston Thorpe)
  • Add dbhash tool calculate hash of logical db content (Avinash Sajjanshetty)
  • Add local encryption support for Go (Avinash Sajjanshetty)
  • mac: introduce PRAGMA fullfsync (Jussi Saurio)
  • Reintroduce record header caching (Jussi Saurio")
  • Add new insert/write performance benchmarks (Preston Thorpe)
  • compat.md: add generated + md reformat (Pere Diaz Bou)
  • Add support for remote encryption in sync operations (Avinash Sajjanshetty)
  • core/mvcc: add savepoints to mvcc with begin/end_statment (Pere Diaz Bou)
  • Add benchmark for hash table/spilling performance (Preston Thorpe)
  • Reintroduce record header caching (Jussi Saurio"' from Jussi Saurio)
  • Reintroduce record header caching (Jussi Saurio")
  • Reintroduce record header caching (Jussi Saurio)
  • Implement remaining ON CONFLICT ResolveTypes for INSERT and UPDATE statements (Preston Thorpe)
  • feat(cli): add .read command to execute SQL from a file (i cook code)
  • add bench feature to run benchmarks in nyrkio (Pedro Muniz)
  • Implement partial ON CONFLICT support for UPDATE statements (Preston Thorpe)
  • Support CTE visibility in VALUES+RETURNING subqueries and allow explicit col names (Preston Thorpe)
  • Add ECS task to run sqlancer nightly along with simulator (Preston Thorpe)
  • implement simple strategy to restart WAL log if possible (Nikita Sivukhin)
  • Add VSCode syntax highlighter for .sqltest files (Jussi Saurio)
  • DEFAULT value handling of NON-NULL columns in ADD COLUMN (Preston Thorpe)
  • Implement Full Text Search feature (Preston Thorpe)
  • add codspeed (Pedro Muniz)
  • core/mvcc: Add support for synchronous off mode (Pekka Enberg)
  • Add support for subqueries in the WHERE position for DML statements (Preston Thorpe)
  • Add vibecoded stress-go testing tool (Jussi Saurio)
  • fix: implement IS TRUE/IS FALSE with correct SQLite semantics (Jussi Saurio)
  • Add shuttle tests for IO trait (Pedro Muniz)
  • bindings/rust: support prepare_cached (Pere Diaz Bou)
  • Add more comprehensive PRAGMA integrity_check, and add PRAGMA quick_check (Jussi Saurio)
  • tests: add some shuttle tests (Pedro Muniz)
  • benchmarks: add micro benchmarks with divan (Pedro Muniz)
  • AGENTS.MD: add some magic words about max-turns (Jussi Saurio)
  • Add more instructions to AGENTS.MD and use Opus model instead of Claude for github bot (Jussi Saurio)
  • bindings/dotnet: implement IsDBNull check (Alex)
  • Implement json_object(*) to create JSON object from all columns (Martin Mauch)
  • Add some more guidelines to AGENTS.MD (Jussi Saurio)
  • Add id-token: write permission to claude action for OIDC (Jussi Saurio)
  • Add claude code github action and CLAUDE.MD file (Jussi Saurio)
  • antithesis: Add test case for WAL checkpointing (Pekka Enberg)
  • implement .dbtotxt and dbpage vtab (Pavan Nambi)
  • bindings/java: Add transaction support (Kim Seon Woo)

Updated

  • core/mvcc: disable autoincrement for MVCC (Pere Diaz Bou)
  • testing/stress: Allow --seed parameter for non-deterministic runs (Pekka Enberg)
  • Update authors in Cargo.toml (Preston Thorpe)
  • refactor: reorganize emitter.rs into its own module (Preston Thorpe)
  • core/vector: Avoid simsimd on Windows AArch64 (Marc-André Moreau)
  • core/storage: Reject non-UTF-8 encoded databases on open (Mikaël Francoeur)
  • core/mvcc: Atomic timestamps when preparing commit (Avinash Sajjanshetty)
  • Differential fuzzer: detect more false positive with limit and order by (Pedro Muniz)
  • core/mvcc: move payload_size to frame header (Avinash Sajjanshetty)
  • Fast path no-op update in vdbe (Preston Thorpe)
  • Rename experimental_mvcc to mvcc (Eren Türkoğlu)
  • Update or replace ordering (Preston Thorpe)
  • Hash joins: partition spilling improvements (Preston Thorpe)
  • core/translate: Apply explicit view column aliases (Karthik Koralla)
  • core/translate: cache GROUP BY compound expressions properly (Jussi Saurio)
  • core: per-database MVCC transactions for attached databases (Glauber Costa)
  • Logical log tweaks (Jussi Saurio)
  • Assert that no two transaction timestamps are ever same (Avinash Sajjanshetty)
  • Update sqlite_sequence on ALTER TABLE ... RENAME TO (Kumar Ujjawal)
  • core/mvcc: Increase op count and tx payload size in logical log tx record format (Jussi Saurio)
  • core/translate: Use usable constraint even if preceded by unusable constraint on same column (Jussi Saurio)
  • Preserve BLOB-vs-no-affinity semantics in comparison coercion (Kumar Ujjawal)
  • compat: defer CTE column count check until its used (Pedro Muniz)
  • Improve SQLite3 tests (Pekka Enberg)
  • Accept trailing named column constraints in column defs (Kumar Ujjawal)
  • Enable index method table access for DML stmts (Preston Thorpe)
  • update unique_sets when renaming a column to prevent schema corruption (Glauber Costa)
  • Pretty print elle status progress (Avinash Sajjanshetty)
  • Decorrelate simple EXISTS / NOT EXISTS subqueries as semi/antijoins (Jussi Saurio)
  • Disable index-method access for DML (Kumar Ujjawal)
  • Avoid panic in DecrJumpZero on non-integer register (Kumar Ujjawal)
  • core/io: Track write buffer in completion (Jussi Saurio)
  • core/schema: Emit table-level UNIQUE constraints in BTreeTable::to_sql() (Jussi Saurio)
  • Avoid modulo-by-zero in WAL frame API fuzz rollback (Kumar Ujjawal)
  • enable async io in rust bindings (Pedro Muniz)
  • Make strict mode non-experimental (Glauber Costa)
  • Update misleading comment in MVCC (Avinash Sajjanshetty)
  • core/mvcc: Monotonic lockfree rowid allocation (Jussi Saurio)
  • core/mvcc: Use hash set to track commit dependencies (Avinash Sajjanshetty)
  • core/mvcc: check conflict delete btree resident tombstone (Pere Diaz Bou)
  • Adjust React Native example app instructions (Jussi Saurio)
  • Update example for VFS extensions in extensions/core/README.md (Preston Thorpe)
  • Enable partial indexes in MVCC mode (Preston Thorpe)
  • Enable Expression indexes in MVCC mode (Preston Thorpe)
  • Gate sqlite_dbpage writes behind --unsafe-testing (Kumar Ujjawal)
  • Enable FTS for JavaScript SDK (Nikita Sivukhin)
  • Sqltest cross check integrity (Jussi Saurio)
  • properly split sql statements for JS runner backend + enable triggers (Pedro Muniz)
  • Differential fuzzer improvements (Pedro Muniz)
  • core/translate: Remove spurious Affinity instruction from integrity_check (Pekka Enberg)
  • Remove some clones from MVCC code (Preston Thorpe)
  • remove Arc<RwLock<Statement>> from Insn::Program (Pedro Muniz)
  • ci: split bench into multiple jobs (Jussi Saurio)
  • Refactor core_tester fuzz module (Preston Thorpe)
  • Replace panic! and assert! with turso_macros assertions (Mikaël Francoeur)
  • SQLite compat: restrict ANY affinity special-casing to STRICT tables (Hossam Khero)
  • Enable MVCC for a bunch of fuzz tests (Preston Thorpe)
  • JS SDK: remote writes experimental (Nikita Sivukhin)
  • Reject triggers on virtual tables (Kumar Ujjawal)
  • serverless: Export Session and SessionConfig types (Nikita Sivukhin)
  • prevent scalar blob into JSONB (김선우)
  • install-sqlite: dont fail at get_download_url if sqlite3 already installed (Jussi Saurio)
  • refactor: stop using connection.with_schema inside translate module (Pedro Muniz)
  • Reject duplicate CTE names in WITH clause (Kumar Ujjawal)
  • Comment out flaky vector jaccard test (Preston Thorpe)
  • mvcc: disable cross-incompatible features (Jussi Saurio)
  • Random code cleanups to lib.rs (Pekka Enberg)
  • Reject column-level multi-column FK refs in ALTER TABLE (Kumar Ujjawal)
  • core: Make version functions non-deterministic (ratnesh mishra)
  • Experimental SQLRight setup (Mikaël Francoeur)
  • Reject FILTER clauses in view definitions (Kumar Ujjawal)
  • test/mvcc: re-enable database reopen logic in MVCC transaction fuzzer (Jussi Saurio)
  • perf: optimizations for FTS (Preston Thorpe)
  • CDC v2: transaction IDs and per-statement COMMIT records (Nikita Sivukhin)
  • Enable using Search for WHERE rowid= predicate instead of full scan (Preston Thorpe)
  • Reject reserved JSONB element types (Kumar Ujjawal)
  • core/mvcc: reparse schema on get_index_info (Pere Diaz Bou)
  • refactor: change translate functions to accept &mut ProgramBuilder (Pedro Muniz)
  • testing/stress: Remove multi-threading warning (Pekka Enberg)
  • github: Improve license check (Pekka Enberg)
  • core/mvcc: check for unique conflicts (Pere Diaz Bou)
  • Btree dump vtab (Nikita Sivukhin)
  • Cdc version table (Nikita Sivukhin)
  • vector8 + vector1bit (Nikita Sivukhin)
  • stress: Use single Database object (Pekka Enberg)
  • continue execution if IO was completed immediately (Nikita Sivukhin)
  • Lower Windows CI test timeout from 60 to 20 minutes (Pekka Enberg)
  • Multi index operator constraint (Pedro Muniz)
  • bench: gate nanosecond-level tests behind nanosecond-bench feature (Jussi Saurio)
  • use full link in JS SDK README so that links will be correct at npm (Nikita Sivukhin)
  • adjust is_constant check for IN and emit_no_constant_insn to avoid panic in VDBE cursor (Pedro Muniz)
  • concurrent-simulator: Explore in fast mode (Pekka Enberg)
  • Rewrite printf for full SQLite compatibility (Glauber Costa)
  • Pragmas (Glauber Costa)
  • testing/stress: Re-enable reopen and reconnect in stress tester (Pekka Enberg)
  • make Numeric the source of truth for number comparisons (Pedro Muniz)
  • Mvcc garbage collection (Jussi Saurio)
  • Remove unmaintained dart bindings (Avinash Sajjanshetty)
  • Convert antithesis from feature to cfg flag (Mikaël Francoeur)
  • core/storage: Remove unused FxHashSet import in btree.rs (Pekka Enberg)
  • core/mvcc: check integer primary key conflicts (Pere Diaz Bou)
  • use blocking IO for local databases for now (Nikita Sivukhin)
  • Make Github actions even more robust (Pekka Enberg)
  • bindings/wasm: Switch to notification-based I/O completion (Pekka Enberg)
  • Clippy more rules (Nikita Sivukhin)
  • properly handle url callback in react native bindings (Nikita Sivukhin)
  • Reduce antithesis stdout logging and log sql/tracing to files (Mikaël Francoeur)
  • Make Github workflows more robust (Pekka Enberg)
  • Change crate types in Dockerfile to restore Antithesis instrumentation (Mikaël Francoeur)
  • Whopper elle (Pedro Muniz)
  • allow url as function in react native bindings (Nikita Sivukhin)
  • JavaScript serverless driver improvements (Pekka Enberg)
  • MVCC: enable autocheckpoint at 1000 * 4120 bytes logical log size (Jussi Saurio)
  • Validate header (Nikita Sivukhin)
  • avoid unnecessary slow worker tasks in JS (Nikita Sivukhin)
  • do not cache chunks for .tantivy-meta.lock file (Nikita Sivukhin)
  • Destroy any custom index methods while dropping parent table (Preston Thorpe)
  • Stress progress bars (Pedro Muniz)
  • More snapshot tests (Pedro Muniz)
  • pin compiler and runner versions for codspeed benchmark (Pedro Muniz)
  • Move test runner to testing/runner (Pedro Muniz)
  • remove flaky test (Preston Thorpe)
  • Updates to COMPAT.MD (Jussi Saurio)
  • mark attach as experimental (Jussi Saurio)
  • run test with llvm-cov at linux (Nikita Sivukhin)
  • sim: generate unique constraints and verify statement rolls back correctly on failure (Pavan Nambi)
  • Bump urllib3 from 2.5.0 to 2.6.3 (app/dependabot)
  • Bump crossbeam-channel from 0.5.14 to 0.5.15 (app/dependabot)
  • JIT query generation in turso_stress (Mikaël Francoeur)
  • update determinism to match SQLite (Mikaël Francoeur)
  • core: database open is now async (Nikita Sivukhin)
  • bump claude code max turns (Pedro Muniz)
  • return NULL when there is no record in op_column (Pedro Muniz)
  • strftime should accept any kind of input not only text (Pedro Muniz)
  • React native example more tests (Nikita Sivukhin)
  • Document Rust sync API (Mikaël Francoeur)
  • Tpch snapshot testing (Pedro Muniz)
  • test runner: Snapshot testing (Pedro Muniz)
  • agressively black box benchmarks (Pedro Muniz)
  • Go driver time (Nikita Sivukhin)
  • CHAR should return \0 for NULL (Pedro Muniz)
  • core/mvcc: use dual_peek in exists (Pere Diaz Bou)
  • update npm for trusting publishing features (Nikita Sivukhin)
  • Separate Connection from a prepared statement to enable proper caching (Preston Thorpe)
  • substitute HashMap for FxHashMap in core (Pedro Muniz)
  • adjust agents.md to call tursodb cli correctly (Pedro Muniz)
  • remove NODE_AUTH_TOKEN (Nikita Sivukhin)
  • React native (Nikita Sivukhin)
  • sql_generation: reduce likelihood of index name collisions (Jussi Saurio)
  • retry on reader contention for TursoRwLock::read (Pedro Muniz)
  • differential fuzzer + general purpose sql generation (Pedro Muniz)
  • cleanup: centralize optimizer params and make them loadable from json (Jussi Saurio)
  • remove accesses_db flag (Nikita Sivukhin)
  • Migrate more tcl tests (Pedro Muniz)
  • testing/system: allow specifying rowcounts for gen-bigass-database.py (Jussi Saurio)
  • tests/fuzz/cte_fuzz: try to prevent pathological queries (Jussi Saurio)
  • improvements of the whopper (Nikita Sivukhin)
  • Some Insert performance improvements (Preston Thorpe)
  • Performance improvements for hash joins (Preston Thorpe)
  • WAL auto truncation: increase epoch to prevent stale pages reuse (Nikita Sivukhin)
  • core/mvcc: reparse schema after stream of schema changes (Pere Diaz Bou)
  • Reduce CLI release build time by ~60% (Jussi Saurio)
  • cleanup/vdbe: remove unused IndexKeyOwned and remove unused IndexKeyUnpacked::cursor_id (Jussi Saurio)
  • Refactor: remove encryption key field from Database struct (Avinash Sajjanshetty)
  • Migrate more TCL tests (Pedro Muniz)
  • convert agent docs to skills (Pedro Muniz)
  • Some optimizations for tpc-h queries (Pavan Nambi)
  • Refactor AggContext to use flat payload representation (Jussi Saurio)
  • more testing cleanups - move simulators (Pedro Muniz)
  • more testing cleanups (Pedro Muniz)
  • react-native: prepare (Nikita Sivukhin)
  • Move stress to testing/stress (Pedro Muniz)
  • Move tcl test to testing/system (Pedro Muniz)
  • ci/bench: increase timeout to 45mins as workaround (Jussi Saurio)
  • Remove fts/tantivy as default dependency in turso-core (Preston Thorpe)
  • Move antithesis test to testing/antithesis (Pedro Muniz)
  • feat/perf: use HashTable machinery for DISTINCT instead of ephemeral btree (Jussi Saurio)
  • ci: split simulator into separate jobs (Jussi Saurio)
  • CI: Reduce iterations in cte fuzzer (Preston Thorpe)
  • ci: longer timeout for cargo nextest on windows (Jussi Saurio)
  • fuzz/cte: reduce iterations (Jussi Saurio)
  • docs: split AGENTS.MD into separate agent-guides files (Jussi Saurio)
  • Js test runner (Jussi Saurio)
  • refactor/pager: small cleanups (Jussi Saurio)
  • sim: only run turso integrity check 10% of the time (Jussi Saurio)
  • Rewrite BETWEEN statements for partial indexes in DML paths (Preston Thorpe)
  • Create global directive for skipping mvcc in test runner (Preston Thorpe)
  • stress: run stress with shuttle (Pedro Muniz)
  • Validate Send + Sync for ProgramState + change registers to hold a Box<[Register]> (Pedro Muniz)
  • test-runner: rust backend (Pedro Muniz)
  • test-runner: start migrating TCL tests (Pedro Muniz)
  • Give Antithesis tests better names (Mikaël Francoeur)
  • core/vdbe: Allow leading + sign in numeric string parsing (Pere Diaz Bou)
  • core/vdbe: trim return text with integer and float (Pere Diaz Bou)
  • Reset ProgramState::once on statement reset (Mikaël Francoeur)
  • return blob if we concat blobs (Nikita Sivukhin)
  • Replace GPL-2.0 bloom crate with MIT-licensed fastbloom (Jussi Saurio)
  • Refactor core/lib.rs Connection impl out to its own file (Preston Thorpe)
  • Disallow WITHOUT ROWID tables (Jussi Saurio)
  • core: Use fast monotonic time when possible (Pekka Enberg)
  • core/vdbe: move mutable fields from Program to ProgramState (Pere Diaz Bou)
  • replace custom SmallVec with smallvec crate (Ankush)
  • Open autovacuum databases in readonly mode when experimental flag not set (app/copilot-swe-agent)
  • remove unused lints, variables and functions (Pedro Muniz)
  • separate Sync module (Pedro Muniz)
  • Btree: optimize defragment_page (Khashayar Fereidani)
  • avoid recursive read locks (Nikita Sivukhin)
  • Track WAL state in savepoints for proper rollback (Pavan Nambi)
  • vdbe: Resize deferred_seeks on program state reset (Pekka Enberg)
  • Reset checkpoint state when PRAGMA wal_checkpoint fails (Jussi Saurio)
  • Increase test_eval_param_only_once timeout threshold for CI reliability (app/copilot-swe-agent)
  • stress: switch to WAL mode before SQLite integrity check (Pekka Enberg)
  • planner: hash-join planning with safe build-side materialization (Preston Thorpe)
  • core/mvcc: rollback index rows (Pere Diaz Bou)
  • core/vdbe: check negative root pages with integrity_check (Pere Diaz Bou)
  • antithesis/stress: run in verbose mode (Jussi Saurio)
  • docs: change test build instructions (Mason Hall)
  • btree: get_prev_record and get_next_record automatically invalidate_record (Pedro Muniz)
  • bindings/dotnet: allow setting TursoParameter.Direction (Alex)
  • VDBE micro-optimizations for read path (Jussi Saurio)

Fixed

  • concurrent-simulator: Fix DDL inside BEGIN CONCURRENT transactions (Pekka Enberg)
  • core/json: Fix stale cursor crash in json_tree correlated subqueries (Pekka Enberg)
  • Avoid panic on unresolved qualified column in DO UPDATE (Kumar Ujjawal)
  • Fix unsound schema access when loading extensions (Preston Thorpe)
  • Fix unresolved IfNot label in scalar count(*) subqueries (Kumar Ujjawal)
  • core/translate: Fix non-literal defaults in Column instruction (Jussi Saurio)
  • core/mvcc: Fix header-only write durability (Jussi Saurio)
  • fix: IN(subquery) data corruption in ungrouped aggregates with NOT NULL columns (Vimal Prakash)
  • temporarily remove big sqltest to fix all the CI errors (Preston Thorpe)
  • Fix regression improperly consuming hash join WHERE terms (Preston Thorpe)
  • fix: UPDATE OR REPLACE does not fire FK CASCADE on implicitly-deleted row (Pedro Muniz)
  • Fix wal truncate on shutdown even after restart (Kumar Ujjawal)
  • fix: UPDATE RETURNING correlated subquery uses pre-UPDATE values (Pedro Muniz)
  • Make MVCC Elle check errors fail CI build (Pekka Enberg)
  • Overflow fix (Nikita Sivukhin)
  • fix: Window function with GROUP BY and ORDER BY causes optimizer assertion failure #5552 (Pedro Muniz)
  • Fix sync replay generator (Nikita Sivukhin)
  • fix: always reset pager state for attached databases (Pedro Muniz)
  • Fix three FULL OUTER JOIN bugs (Jussi Saurio)
  • fix snapshot isolation in MVCC (Preston Thorpe)
  • fix: clean up db-log and fix WAL extension for attached DBs in simulator (Glauber Costa)
  • fix: Expression index with correlated EXISTS subquery causes panic #5551 (Pedro Muniz)
  • Fix --experimental-strict incorrectly enabling custom types (Glauber Costa)
  • autofix: Aggregate COLLATE leaks to subsequent aggregates in same query (Jussi Saurio)
  • fix/mvcc: prevent persistent "Database is busy" after failed IO during checkpoint (Jussi Saurio)
  • autofix: CTE with UNION ALL corrupts first-column literals when any branch has aggregates (Jussi Saurio)
  • autofix: Triggers during FK CASCADE see pre-delete state of parent table (Jussi Saurio)
  • autofix: Correlated subquery with explicit JOIN returns wrong results after first row (Jussi Saurio)
  • autofix: LEFT JOIN incorrectly converted to INNER JOIN when WHERE uses CASE/IIF (Jussi Saurio)
  • autofix: Row value IN expression crashes with register allocation error (Jussi Saurio)
  • fix: BEFORE UPDATE trigger corrupts outer cursor position for correlated subqueries (Jussi Saurio)
  • autofix: DELETE with LIMIT ignores OFFSET clause (Preston Thorpe)
  • fix: UPSERT ON CONFLICT fails to match expression indexes #5550 (Preston Thorpe)
  • fix/optimizer: enable multi-index OR scans more widely and fix bad CTE query plans (Jussi Saurio)
  • Fix REAL affinity to preserve non-numeric text (Kumar Ujjawal)
  • Fix rowid resolution for views/WITHOUT ROWID (Kumar Ujjawal)
  • fix: Use pure-rust for macos for aegis to prevent macos compilation issues (Amodh Dhakal)
  • fix RETURNING, Statement::reset() and Program::abort() (Jussi Saurio)
  • Fix DEFAULT affinity handling (Jussi Saurio)
  • Improve I/O error message (Pekka Enberg)
  • fix: Handle IVM old record capture when REQUIRE_SEEK is set (Martin Mauch)
  • fix: MVCC cursor ignored left join null flag (Jussi Saurio)
  • fix: adjust jump_if_null branch offset as incorrectly failed NULL in check constraints in integrity checks (Pedro Muniz)
  • fix: emit RealAffinity when reading subquery columns from ephemeral indexes (Jussi Saurio)
  • fix: default generate_series STOP to SQLite Default (4294967295) when omitted (Damian Melia)
  • fix: mvcc: DDL statement inside BEGIN CONCURRENT returns a confusing error #3380 (Pedro Muniz)
  • fix: do not do unchecked indexing to non-static page offsets #4736 (Pedro Muniz)
  • fix: use consistent M_PI constant in degrees/radians for test parity with SQLite (Pedro Muniz)
  • fix: Register DBSP state index in schema for integrity_check (Martin Mauch)
  • fix: Panic on correlated subquery in IN clause referencing outer table alias #5213 (Pedro Muniz)
  • fix(wal): release WAL read lock on rollback to prevent checkpoint busy (Ahmad Alhour)
  • sqlite3: Fix segfault in sqlite3_free_table() (Pekka Enberg)
  • fix: OR in Partial Index WHERE Clause Causes Unresolved Label Panic (Jussi Saurio)
  • fix: No-op UPDATE causes datatype mismatch #5410 (Jussi Saurio)
  • fix: Expression Index Key Computed From Pre-Affinity Value During UPDATE (Jussi Saurio)
  • fix: ALTER TABLE RENAME COLUMN Does Not Update Partial Index WHERE Clauses (Jussi Saurio)
  • fix: Create materialized view in same transaction as source (Martin Mauch)
  • fix: "Cursor not found" when delete has a correlated subquery #5434 (Jussi Saurio)
  • fix: INSERT INTO With CTE + Compound SELECT Produces Garbled Data #5425 (Jussi Saurio)
  • fix: DELETE with correlated subquery sees in-flight deletions #5426 (Jussi Saurio)
  • fix: Panic When CTE Is Used in UPDATE SET Clause on Keyed Table (Jussi Saurio)
  • Fix FTS LIMIT 0/-1 handling to avoid Tantivy overflow (Kumar Ujjawal)
  • fix/correctness: use ephemeral table for UPDATE when expression index refers to updated columns (Mikaël Francoeur)
  • fix: update changes() and total_changes() inside explicit transactions (Damian Melia)
  • Fix: Fully enable foreign keys for MVCC (Preston Thorpe)
  • fix(cli): prevent extra space in multiline readline input (Karthik Koralla)
  • Fix materialized view re-entrancy bug (Martin Mauch)
  • fix affinity handling in check constraint evaluation (Jussi Saurio)
  • fix affinity calculation for index seeks, subqueries and ctes (Jussi Saurio)
  • fix: COLLATE Specification Lost in Concatenation with CHECK #5171 (Jussi Saurio)
  • fix: INSERT OR IGNORE + CHECK Failure Does Not Update sqlite_sequence (Jussi Saurio)
  • fix: Subquery in Trigger Body UPDATE SET Creates Poison Trigger (Jussi Saurio)
  • fix: WHERE clause returns wrong result for INT64_MAX compared against overflowed float (Jussi Saurio)
  • Fix prepare panic on comment/whitespace-only SQL (Kumar Ujjawal)
  • fix: Panic on Scalar Subquery Referencing CTE by Original Name After Alias (Jussi Saurio)
  • Fix SUM() type for BLOB inputs to return REAL (Kumar Ujjawal)
  • Unify error codes in LibsqlError for serverless package (Pekka Enberg)
  • Fix panic with duplicate expressions in window PARTITION BY (Mikaël Francoeur)
  • Fix panic and wrong results for window function in EXISTS subquery (Mikaël Francoeur)
  • fix: handle NULL properly in composite index seek/termination (Jussi Saurio)
  • fix: panic in PRAGMA integrity_check with expression indexes #5117 (Sanjeev)
  • fix: avoid cursor panic in SUM(TRUE IS TRUE) (Jussi Saurio)
  • Fix CLI exit code on query failure (Ahmad Alhour)
  • Fix MVCC trigger recovery rootpage handling (Jussi Saurio)
  • Fix collation with reordered hash joins (Preston Thorpe)
  • fix/btree: return error instead of panic if parent is unexpectedly a leaf (Jussi Saurio)
  • Fix panic on duplicate ORDER BY expressions with GROUP BY (Jussi Saurio)
  • fix: Align REAL→INTEGER cast with SQLite clamp semantics (Kumar Ujjawal)
  • fix: INSERT with auto-assigned rowid skips explicit index on IPK column (Jussi Saurio)
  • Fix affinity conversion of nan/inf text in numeric columns (Kumar Ujjawal)
  • fix: Correlated Subquery + Window Function in WHERE Hoisted Before Scan Loop (Jussi Saurio)
  • fix: more recursive read locks detected by shuttle with mvcc (Pedro Muniz)
  • fix/mvcc: dropped_root_pages tracking must survive restart (Jussi Saurio)
  • core/mvcc: Fix MVCC checkpoint panic when deleting index keys in inte… (Pekka Enberg)
  • fix: backward table scan skips rows on deep B-trees (ORDER BY DESC) (Pedro Muniz)
  • Phantom row fix (Pedro Muniz)
  • Insert or fix (Pedro Muniz)
  • fix: Panic on SELECT with 32767+ Columns (No SQLITE_MAX_COLUMN Limit) (Jussi Saurio)
  • fix: GROUP BY With Constant Expression Causes Infinite Loop #5300 (Jussi Saurio)
  • fix: propagate affinity for IN Subquery (Pedro Muniz)
  • fix(optimizer): fix correctness bugs in LEFT->INNER join optimization (Jussi Saurio)
  • fix/mvcc: fix test_logical_log_header_reserved_bytes_rejected test (Jussi Saurio)
  • Fix livelock in MVCC commit when pager_commit_lock is contended (Jussi Saurio)
  • Fix: handle multiplication overflow in time_date (Zohaib)
  • Fix panic on ROLLBACK TO by replacing assert! with bail_parse_error (codingbot24-s)
  • fix: Panic on CREATE TABLE with UNIQUE ... ON CONFLICT IGNORE #5221 (Jussi Saurio)
  • mvcc: define crash recovery / correctness semantics, rewrite logical log (Jussi Saurio)
  • Fix UPDATE incorrectly changing last_insert_rowid() (Kumar Ujjawal)
  • Fix panic in sum() with large floating-point values (Jussi Saurio)
  • fix(core): Handle PRAGMA cache_size overflow (fixes #5250) (ratnesh mishra)
  • fix: allow CTEs to shadow schema objects (Jussi Saurio)
  • fix: Panic on INSERT INTO t(nonexistent) SELECT ... FROM t #5226 (Jussi Saurio)
  • fix: Panic on Unresolved Table Reference in UPSERT DO UPDATE SET #5281 (Jussi Saurio)
  • core/storage: Fix pager commit completion (Pekka Enberg)
  • Fix throughput plot colors and hatching to match TPC-H plot (Pekka Enberg)
  • fix: Panic on 3+ Way MULTI-INDEX AND Query (RowSet State Violation) #… (Jussi Saurio)
  • fix: u16 Overflow in page_free_array Panics on 65536-Byte Pages #5276 (Jussi Saurio)
  • fix: handle PRAGMA database_list with argument without panicking (creativcoder)
  • fix: INSERT ... RETURNING panics with multi-column scalar subquery #5243 (Jussi Saurio)
  • fix: Panic When IN Subquery Used in LIMIT Expression #5247 (Jussi Saurio)
  • fix: ALTER TABLE RENAME COLUMN Fails on Case Mismatch #5246 (Jussi Saurio)
  • fix: read non-aggregate columns during AggStep for mixed expressions (Glauber Costa)
  • fix: null coroutine registers in ungrouped aggregate empty-result path (Glauber Costa)
  • fix: json_valid() With Zero Arguments Panics Instead of Returning Error (Jussi Saurio)
  • fix: LIMIT With i64::MIN Panics Due to Subtract Overflow in DecrJumpZ… (Jussi Saurio)
  • Fix missing dot in NOT NULL constraint error (Eren Türkoğlu)
  • fix: Materialized View Panics on Arithmetic With Text Column Values #… (Jussi Saurio)
  • fix: Panic on Scalar Subquery Referencing Rowid of Derived Table #5249 (Jussi Saurio)
  • Fix MVCC savepoint rollback leaving stale write set entries (Pekka Enberg)
  • fix: varint_len returned 10 for values with 58-64 significant bits (Jussi Saurio)
  • fix: do not apply numeric affinity of converted float is a NaN (Pedro Muniz)
  • try to fix js ci (Nikita Sivukhin)
  • fix: QUOTE should emit float in scientific notation (Pedro Muniz)
  • fix: GROUP BY sort order for extra columns (Pedro Muniz)
  • fix(core): fix ColumnUsedMask::is_only for overflow indices beyond vector length (Pedro Muniz)
  • Clear bloomfilters on rewind + hash table fix (Preston Thorpe)
  • fix: correctly jump to second OR expression if first expression is NULL (Pedro Muniz)
  • bindings/go: Fix spurious test failures from port conflicts (Pekka Enberg)
  • Fix changes() value for DELETE (Preston Thorpe)
  • core/mvcc: Fix transaction end version visibility check (Pere Diaz Bou)
  • Rn locking fix (Nikita Sivukhin)
  • fix prevent AUTOINCREMENT on non-INTEGER PKs with mixed-case names (김선우)
  • fix: cannot use index seek if the constraining expression references the same table being scanned (Pedro Muniz)
  • fix: evaluate result rows on exists subquery with DISTINCT clause (Pedro Muniz)
  • Fix multiple index corruption bugs involving INSERT OR <conflict_resolution_mode> (Jussi Saurio)
  • scripts/release-status.py: Classify issues as bugs by default (Pekka Enberg)
  • Fix broken build (Pavan Nambi)
  • Fix segfault in uuid_str/uuid_ts with no arguments (Preston Thorpe)
  • fix build (Mikaël Francoeur)
  • Strict fixes (Glauber Costa)
  • fix: prevent overflow panic in JsonArrayLength with malformed JSONB (Jussi Saurio)
  • Fix LEFT JOIN with virtual tables producing wrong results (Glauber Costa)
  • Fix user-defined columns named oid/rowid/rowid resolving to internal rowid (Glauber Costa)
  • Rn fixes 2 (Nikita Sivukhin)
  • fix: emit offset after Distinct deduplication (Pedro Muniz)
  • fix: increase tolerance in vector L2 distance test to match simsimd vs rust precision (Pedro Muniz)
  • fix/encryption: do not panic if accessing db with missing or incorrect keys (Avinash Sajjanshetty)
  • fix: overflow handling in cast_real_to_integer (Pedro Muniz)
  • fix: convert text and blobs into bytes for correct parsing of strings into numbers (Pedro Muniz)
  • fix: handle_text_sum treat certain text values as approximate (Pedro Muniz)
  • Fix ruff check errors (Avinash Sajjanshetty)
  • Fix panic when CTE with indexed subquery is referenced twice (Mikaël Francoeur)
  • Fix STRICT tables incorrectly rejecting NULL values (Glauber Costa)
  • fix: allow qualified column references in partial index WHERE clause functions (Jussi Saurio)
  • Fix deadlock in MVCC mode when loading extensions on file databases (Jussi Saurio)
  • fix: WHERE clause treats string literals with numeric prefixes correctly (Jussi Saurio)
  • fix(update): apply affinity before MakeRecord to prevent index corruption (Pedro Muniz)
  • fix: JSON path UTF-8 char boundary panic (Jussi Saurio)
  • MVCC: fix checkpoint consistency and durability bugs (Jussi Saurio)
  • Fix CLI ".open" command to preserve experimental flags (Jussi Saurio)
  • fix/pager: properly reuse last empty trunk page for page allocation (Jussi Saurio)
  • Fix Antithesis CI config (Mikaël Francoeur)
  • Fix missing STRICT keyword in BTreeTable::to_sql() (Glauber Costa)
  • fix/connection: release wal locks on connection drop to prevent DB from being permalocked (Jussi Saurio)
  • Fix JavaScript driver error message to match libSQL (Pekka Enberg)
  • MVCC fixes found using whopper (Jussi Saurio)
  • Fix bug when empty namespace is provided in go sync driver (Preston Thorpe)
  • Fix passing namespace in to config in Go sync driver (Preston Thorpe)
  • fix: -0.0 and 0.0 should have the same hash (Pedro Muniz)
  • core/mvcc: fix btree row verification (Pere Diaz Bou)
  • fix: group concat did not convert values to text on output (Pedro Muniz)
  • Fix datetime modifier UTF-8 slicing panic (Mikaël Francoeur)
  • fix is_nonnull check for primary key columns (Pedro Muniz)
  • page cache: fix aggressive spilling logic (Preston Thorpe)
  • Fix bug in hash join table mask calculations (Jussi Saurio)
  • Fix broken encryption SDK tests (Avinash Sajjanshetty)
  • Fix correlated subquery issues (Jussi Saurio)
  • fix: avoid exponential CTE re-planning during query compilation (Jussi Saurio)
  • ivm: Fix comparison of Integer <-> Float (Martin Mauch)
  • Fix cross-link in Claude skills (Ofek Lev)
  • mvcc: fix for schema conflict on COMMIT (Nikita Sivukhin)
  • Fix bugs in hash-join materialization subplans (Jussi Saurio)
  • fix: prevent integer overflow panic in JSONB serialization (Jussi Saurio)
  • sqlancer dockerfile fix (Jussi Saurio)
  • fix: infer subquery result list column types (Jussi Saurio)
  • fix/vdbe: fix QUOTE() - should convert ints&floats to text (Jussi Saurio)
  • fix/optimizer: fix output cardinality estimation for index seeks (Jussi Saurio)
  • fix: truncate ORDER BY after rowid when rowid is first (Jussi Saurio)
  • fix: PRINTF converts non-text format argument to string (Jussi Saurio)
  • fix: substr returns NULL when provided NULL length (Jussi Saurio)
  • fix docker builds (Pedro Muniz)
  • fix: handle EXISTS in expr_vector_size instead of panicing with todo!() (Jussi Saurio)
  • fix: move subqueries to ephemeral plan when WHERE clause is moved (Jussi Saurio)
  • fix: eagerly remove ORDER BY if single aggregate, no groups/windows (Jussi Saurio)
  • fix: IN/NOT IN subqueries return NULL when value not found and subquery contains NULLs (Jussi Saurio)
  • fix/optimizer/stats: fix incorrectly named distinct_per_prefix field (Jussi Saurio)
  • fix antithesis dockerfile: download libvoidstar.so in Dockerfile instead of COPY (Jussi Saurio)
  • Optimizer: fix bugs, improve cost model (Jussi Saurio)
  • Fix wal checkpoint (Nikita Sivukhin)
  • Busy snapshot bugfix (Nikita Sivukhin)
  • fix/translate: revert change that allowed index cursor with stale position to be read (Jussi Saurio)
  • try_for_float: use Dekker algorithm to avoid precision error (Jussi Saurio)
  • fix: type affinity comparison for TEXT columns with numeric literals (#4745) (Srinivas A)
  • fix sync-wasm package to properly handle case when no url is provided (Nikita Sivukhin)
  • Fix JSON panics and incompatibility issues (Jussi Saurio)
  • Fix misuse of encryption key in the database manager cache (Avinash Sajjanshetty)
  • Run cargo clippy --fix --all in turso-test-runner (Preston Thorpe)
  • Fix ON CONFLICT resolution propagation to trigger statements (Preston Thorpe)
  • Fix sqlancer-runner image name in GH action build (Preston Thorpe)
  • Fix misleading turso-test-runner comments regarding mvcc&readonly (Jussi Saurio)
  • turso-test-runner: fix flakiness with Rust bindings + MVCC combo (Jussi Saurio)
  • Fix datetime parse_modifier() panicing on multibyte utf-8 (Jussi Saurio)
  • Ci fixes (Jussi Saurio)
  • Scalarfunc fuzzer + fixes (Jussi Saurio)
  • bugfix: fix corruption by setting reserved_bytes if requested (Avinash Sajjanshetty)
  • fix(vdbe): CHAR() function should handle full Unicode range (Mikaël Francoeur)
  • do not call unlock_after_restart in case of error during wal truncation - because we already released these locks earlier (Nikita Sivukhin)
  • WAL: ignore error from auto-checkpoint and fix bug (Nikita Sivukhin)
  • fix: dont create nested aggregates in cte_fuzz (Jussi Saurio)
  • properly unlock WriteLock if restart failed and ignore Busy errors when attempt to restart WAL file failed (Nikita Sivukhin)
  • fix(parser): reject duplicate PRIMARY KEY clauses on a single column (Mikaël Francoeur)
  • Cte fixes (Jussi Saurio)
  • fix/connect: read page1 in transaction to prevent illegal WAL read (Jussi Saurio)
  • fix: dont panic if decryption or checksum verification fails (Jussi Saurio)
  • fix: fsync DB file before truncating WAL after checkpoint (Jussi Saurio)
  • Return error instead of panicing when 1. short read occurs 2. page type is invalid (Jussi Saurio)
  • Checkpoint restart fix (Nikita Sivukhin)
  • fix: nullif/instr/concat should alloc regs for both args upfront (Jussi Saurio)
  • core/vdbe/sorter: Propagate write errors instead of corrupting data (Preston Thorpe)
  • fix(parser): BETWEEN and LIKE operator precedence with IS NOT NULL (Jussi Saurio)
  • fix: allow CTEs to be referenced multiple times (Jussi Saurio)
  • fix(parser): reject ?0 parameter with proper error instead of panicking (Jussi Saurio)
  • more recursive read lock fixes (Pedro Muniz)
  • fix: allow float literals in ORDER BY clause (Jussi Saurio)
  • fix: correct operator precedence in replace() argument check (Jussi Saurio)
  • fix: reject literal-only index expressions and fix JNI panic (Jussi Saurio)
  • fix: handle CAST without type name for SQLite compatibility (Jussi Saurio)
  • fix/vdbe: convert BusySnapshot to Busy if conn rolled back (Jussi Saurio)
  • sdk-kit: Export busy snapshot error to callers (Pekka Enberg)
  • fix: return NULL instead of panicking in uuid7_timestamp_ms for invalid blobs (Jussi Saurio)
  • fix: handle parse errors gracefully in LIMIT clause (Jussi Saurio)
  • fix: prevent panic on multi-byte UTF-8 in datetime functions (Jussi Saurio)
  • fix: INSERT INTO ... SELECT ... UNION ... inserts all rows (Jussi Saurio)
  • Fix DEFAULT value handling in integrity check (Jussi Saurio)
  • Fix stale overflow page read bug and improper re-entrancy handling in integrity_check (Jussi Saurio)
  • Fix integrity_check NOT NULL validation false positive (Jussi Saurio)
  • Fix compilation after cross-pollution with unused vars PR and integrity check PR (Jussi Saurio)
  • fix: use checked_cast_text_to_numeric for Numeric cast in exec_cast (Pedro Muniz)
  • fix: resolve label in ungrouped aggregation with SELECT DISTINCT (Jussi Saurio)
  • fix/checkpoint: always read page1 from db file when truncating (Jussi Saurio)
  • whopper: Handle BusySnapshot error gracefully (Pekka Enberg)
  • Fix WAL truncate checkpoint discarding uncheckpointed frames (Jussi Saurio)
  • btree.rs: make #[instrument] conditional on debug_assertions (Jussi Saurio)
  • Fix path not fsyncing the DB file after truncate checkpoint (Preston Thorpe)
  • core: make datetime functions faster and fix bugs (Jussi Saurio)
  • Valueiterator with fixes (Jussi Saurio)
  • stress: handle I/O error gracefully instead of panicking (Pekka Enberg)
  • stress: dont panic if get BusySnapshot error (Jussi Saurio)
  • bindings/rust: return error on out of bounds Row::get access (Jussi Saurio)
  • vector: increase fuzz error tolerance on windows (Jussi Saurio)
  • sim: fix yet another apply_snapshot() edge case (Jussi Saurio)

Install turso_cli 0.5.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tursodatabase/turso/releases/download/v0.5.0/turso_cli-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/tursodatabase/turso/releases/download/v0.5.0/turso_cli-installer.ps1 | iex"

Download turso_cli 0.5.0

FilePlatformChecksum
turso_cli-aarch64-apple-darwin.tar.xzApple Silicon macOSchecksum
turso_cli-x86_64-apple-darwin.tar.xzIntel macOSchecksum
turso_cli-x86_64-pc-windows-msvc.zipx64 Windowschecksum
turso_cli-aarch64-unknown-linux-gnu.tar.xzARM64 Linuxchecksum
turso_cli-x86_64-unknown-linux-gnu.tar.xzx64 Linuxchecksum

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>

Fetched April 3, 2026