Update CHANGELOG

This commit is contained in:
Pekka Enberg
2025-08-20 09:33:26 +03:00
parent d456db31db
commit dc47cd83b1

View File

@@ -1,5 +1,243 @@
# Changelog
## 0.1.4 -- 2025-08-20
### Added
* bindings/rust: Add method (Pekka Enberg)
* Add helper to convert io::clock::Instant to useable format (Preston Thorpe)
* bindings/javascript: Add TypeScript declarations to package (Pekka Enberg)
* add missing closing tag (Glauber Costa)
* add metrics and implement the .stats command (Glauber Costa)
* Add bench-sqlite script and makefile command (Preston Thorpe)
* Fix simulator docker build by adding new sync directory (Preston Thorpe)
* core/mvcc: schema_did_change support and find last valid version (Pere Diaz Bou)
* Add list databases and open database commands to the MCP server (Glauber Costa)
* Add documentation and rename functions (Mikaël Francoeur)
* Add io_yield macros to reduce boilerplate (Preston Thorpe)
* Add --keep-files flag to allow for inspection of files for successful simulator runs (Preston Thorpe)
* core/printf: support for the %i operand (Luiz Gustavo)
* Add parser to Dockerfiles for cargo chef (Jussi Saurio)
* Add framework for testing extensions in TCL (Piotr Rżysko)
* Fix WAL initialization to last committed frame (Nikita Sivukhin)
* sim: add Property::TableHasExpectedContent (Jussi Saurio)
* Properly implement CLI command (Preston Thorpe)
* docs: add Claude Code MCP integration guide (Braden Wong)
* Add assertion for expected write amount in writev callback (Preston Thorpe)
* sim: add Property::ReadYourUpdatesBack (Jussi Saurio)
* Add support for unlikely(X) (bit-aloo)
* Implement normal views (Glauber Costa)
* turso-sync: support checkpoint (Nikita Sivukhin)
* bindings/javascript: Add async connect() function (Pekka Enberg)
* Direct schema mutation add RenameColumn instruction (Levy A.)
* Implement Aggregations for DBSP views (Glauber Costa)
* stop silently ignoring unsupported features in incremental view where clauses (Jussi Saurio)
* turso-sync: support updates and schema changes (Nikita Sivukhin)
* turso-cdc: add updates column for cdc table (Nikita Sivukhin)
* docs: improve README initialization section clarity (Braden Wong)
* Add support for Full checkpoint mode in the WAL (Preston Thorpe)
* Add support for PRAGMA freelist_count (bit-aloo)
* Initial pass on incremental view maintenance with DBSP (Glauber Costa)
* SQLite C API improvements: add bind_text and bind_blob (Danawan Bimantoro)
* perf/clickbench: enable rest of queries since we support DISTINCT and REGEXP_REPLACE (Jussi Saurio)
* Add table name to the delete bytecode (Glauber Costa)
* Initial pass on incremental view maintenance with DBSP (Glauber Costa)
* docs: fix CLI command and add homebrew install instructions for MacOS (Mattia)
* Reimplement LimboRwLock in the WAL (Preston Thorpe)
* BufferPool: add arena backed pool to support fixed opcodes and coalescing (Preston Thorpe)
* translate: return parse errors for unsupported features instead of silently ignoring (Jussi Saurio)
* Add query only pragma (bit-aloo)
* Direct schema mutation add instruction (Levy A.)
* Add .clone CLI command to copy database files (Preston Thorpe)
* PageContent: make read_x/write_x methods private and add dedicated methods (Jussi Saurio)
* SQLite C API improvements: add basic bind and column functions (Danawan Bimantoro)
* javascript: Implement Statement.iterate() (Pekka Enberg)
* Fix panic on loading extension on brand new connection (Preston Thorpe)
* implement the MaxPgCount opcode (Glauber Costa)
* Direct schema mutation add instruction (Levy A.)
* Add regexp capture (bit-aloo)
* Add load_insn macro for compiler hint in vdbe::execute hot path (Preston Thorpe)
* test/fuzz: add ALTER TABLE column ops to tx isolation fuzz test (Jussi Saurio)
* core/mvcc: implement exists (Pere Diaz Bou)
* tests/fuzz_transactions: add tests for fuzzing transactions with MVCC (Pere Diaz Bou)
* perf/btree: implement fast algorithm for defragment_page (Jussi Saurio)
* bindings/rust: add with_mvcc option, open with path too! (Pere Diaz Bou)
* core/mvcc: implement seeking operations with rowid (Pere Diaz Bou)
* bindings/rust: add with_mvcc option (Pere Diaz Bou)
* Add bitmap to track pages in arenas (Preston Thorpe)
* Direct schema mutation add instruction (Levy A.)
* core/mvcc: fix new rowid on restart (Pere Diaz Bou)
* Implement JavaScript bindings with minimal Rust core (Pekka Enberg)
* test/fuzz/transactions: add "PRAGMA wal_checkpoint" to txn isolation fuzz test (Jussi Saurio)
* Support the OFFSET clause for Compound select (meteorgan)
* Introduce some state machines in preparation for IO Completions refactor (Pedro Muniz)
* Add cli Dockerfile (Pere Diaz Bou)
* Implement the Cast opcode (Glauber Costa)
* Support VALUES clauses for compound select (meteorgan)
* fix: add packages to sim/antithesis dockerfiles for cargo-chef (Jussi Saurio)
* Add vector_concat and vector_slice support (bit-aloo)
* bindings/rust: Add Connection::execute_batch() (Rohith Suresh)
* bindings/java: Throw UnsupportedOperationException for unimplemented … (Pekka Enberg)
* turso-sync package: initial commit (Nikita Sivukhin)
### Updated
* JavaScript improvements (Pekka Enberg)
* bindings/javascript: Rename to (Pekka Enberg)
* Small pager cleanups (Jussi Saurio)
* Do not begin or end transactions in nested statement (Jussi Saurio)
* make the MCP server instructions more visible on the README (Glauber Costa)
* FaultyQuery enabled by default (Pedro Muniz)
* hide our age (Glauber Costa)
* make sure our responses are compliant with MCP (Glauber Costa)
* Move sync code to own directory (Pekka Enberg)
* Refactor: use regular save/restore context mechanism for delete balancing (Jussi Saurio)
* Improve handling of inserts with column names (Wallys Ferreira)
* emit SetCookie when creating a view (Glauber Costa)
* unify halts (Glauber Costa)
* Update stale in memory wal header after restarting log (Preston Thorpe)
* sync-engine: Use SQL over HTTP instead of WAL push (Nikita Sivukhin)
* Convert SQLite parser in Rust by hand (Lâm Hoàng Phúc)
* Ensure we fsync the db file in all paths that we checkpoint (Preston Thorpe)
* Revive async io extension PR (Preston Thorpe)
* sim: reduce frequency of compound selects and complex joins (Jussi Saurio)
* Use BufferPool owned by Database instead of a static global (Jussi Saurio)
* sync-engine: avoid unnecessary WAL push (Nikita Sivukhin)
* use virtual root page for sqlite_schema (Mikaël Francoeur)
* io_uring: Gracefully handle submission queue overflow (Preston Thorpe)
* Disable unused variables in cargo clippy for CI (Pedro Muniz)
* Refactor: atomic ordering (Preston Thorpe)
* Document the I/O model (Pedro Muniz)
* disable checkpoint: adjust semantic (Nikita Sivukhin)
* SDK: enable indices everywhere (Nikita Sivukhin)
* Manual updates (Pekka Enberg)
* Wait for I/O completions (Pedro Muniz)
* IO Cleanups to use and (Pedro Muniz)
* move our dbsp-based views to materialized views (Glauber Costa)
* More State machines (Pedro Muniz)
* Rename page -> slot for arenas + buffer pool (Preston Thorpe)
* Unify JavaScript package README files (Pekka Enberg)
* simple README with warning (Nikita Sivukhin)
* core/wal: Minor checkpointing cleanups and optimizations (Preston Thorpe)
* perf/btree: optimize op_column (Jussi Saurio)
* Update PERF.md with mobibench instructions (Preston Thorpe)
* Handle single, double and unquoted strings in values clause (Mikaël Francoeur)
* Use rusqlite 0.37 with bundled SQLite everywhere (Jussi Saurio)
* Feat/pragma module list (Lucas Forato)
* remove turso-sync as now we have turso-sync-engine (Nikita Sivukhin)
* Sorter IO Completions (Pedro Muniz)
* Simulator should delete files after a successful run (Pedro Muniz)
* turso-sync: js package (Nikita Sivukhin)
* global allocator should not be set for library, only for executables (Pedro Muniz)
* Evaluate WHERE conditions after LEFT JOIN (Piotr Rżysko)
* Btree cache usable space (Jussi Saurio)
* Rename JavaScript package to (Pekka Enberg)
* perf: a few small insert optimizations (Jussi Saurio)
* javascript: Organize test cases better (Pekka Enberg)
* only allow multiples of 64 for performance in arena bitmap (Preston Thorpe)
* btree: Use correct byte offsets for page 1 in defragmentation (Jussi Saurio)
* bench/insert: use PRAGMA synchronous=full (Jussi Saurio)
* JavaScript improvements (Pekka Enberg)
* turso-sync: rewrite (Nikita Sivukhin)
* bench/insert: use locking_mode EXCLUSIVE and journal_mode=WAL for sqlite (Jussi Saurio)
* IO More State Machine (Pedro Muniz)
* refactor/btree: cleanup write/delete/balancing states (Jussi Saurio)
* cdc: emit entries for schema changes (Nikita Sivukhin)
* Coll seq (Glauber Costa)
* Remove RefCell from Buffer in IO trait methods and PageContents (Preston Thorpe)
* Remove Clone impl for Buffer and PageContent (Preston Thorpe)
* More state machine + Return IO in places where completions are created (Pedro Muniz)
* cleanup: remove unused page uptodate flag (Jussi Saurio)
* Relax I/O configuration attribute to cover all Unixes (Pedro Muniz)
* Update defragment page to defragment in-place (João Severo)
* Integrate virtual tables with optimizer (Piotr Rżysko)
* Reprepare Statements when Schema changes (Pedro Muniz)
* More State Machines in preparation for tracking IO Completions (Pedro Muniz)
* coalesce any adjacent buffers from writev calls into fewer iovecs (Preston Thorpe)
* extend raw WAL API with few more methods (Nikita Sivukhin)
* Use pwrite for single buffer pwritev call in unix IO (Preston Thorpe)
* hide dangerous methods behind conn_raw_api feature (Nikita Sivukhin)
* preserve files in IO memory backend (Nikita Sivukhin)
* Improve SQLite3 TCL test suite (Pekka Enberg)
* Make completions idempotent (Preston Thorpe)
* perf/btree: skip seek in move_to_rightmost() if we are already on rightmost page (Jussi Saurio)
* perf/pager: dont clear page cache on commit (Jussi Saurio)
* Rename liblimbo_sqlite3 to libturso_sqlite3 (Pekka Enberg)
* core: Fold HeaderRef to pager module (Pekka Enberg)
* perf/vdbe: remove eager cloning in op_comparison (Jussi Saurio)
* Update cargo-dist to the latest official version (Hiroaki Yutani)
* bindings/rust: Enhance API by removing verbosity (Diego Reis)
* use state machine for NoConflict opcode (Mikaël Francoeur)
* state_machine: remove State associated type (Pere Diaz Bou)
* Single quotes inside a string literal have to be doubled in (Diego Reis)
* core/mvcc: Move commit_txn() to generic state machinery (Pere Diaz Bou)
* bindings/javascript: Reduce VM/native crossing overhead (Pekka Enberg)
* Enable indexes by default (Jussi Saurio)
* perf/btree: improve performance of rowid() function (Jussi Saurio)
* core/mvcc: Persist changes through pager on commit (Pere Diaz Bou)
* Open a temporary on-disk file for ephemeral tables (Jussi Saurio)
* Force Sqlite to parse schema on connection benchmark (Levy A.)
* more compat police (Glauber Costa)
* Bury limbo-wasm (Diego Reis)
* IN queries (Glauber Costa)
* IN queries (Glauber Costa)
* vdbe: Disallow checkpointing in transaction (Jussi Saurio)
* Serverless JavaScript driver improvements (Pekka Enberg)
* Direct `DatabaseHeader` reads and writes `with_header` and `with_header_mut` (Levy A.)
* refactor/btree: simplify get_next_record()/get_prev_record() (Jussi Saurio)
* Accumulate/batch vectored writes when backfilling during checkpoint (Preston Thorpe)
* remove non-existent opcode (Glauber Costa)
* skip invalid inputs in cosine distance prop test (bit-aloo)
* core/mvcc: Switch to parking_lot RwLock (Pekka Enberg)
* Rewrite the WAL (Preston Thorpe)
* turso-sync: bidirectional sync for local db (Nikita Sivukhin)
* Change more function signatures to return Completions (Pedro Muniz)
* Clean up conversion between InsnFunctionStepResult and StepResult (Diego Reis)
* core/mvcc: simplify mvcc cursor types (Pere Diaz Bou)
* bindings/javascript: Run tests serially (Diego Reis)
* Javascript testing cleanups (Pekka Enberg)
* Javascript API improvements (Pekka Enberg)
* Change function signatures to return IO Completions (Pedro Muniz)
### Fixed
* Fix page locked panic (Pedro Muniz)
* Remove assertions from Completion::complete() and Completion::error() (Jussi Saurio)
* Completion Error (Pedro Muniz)
* fix/sim: prevent sim from trying to create an existing table or index (Jussi Saurio)
* Fail simulator on parse errors (Jussi Saurio)
* fix pragma table_info for views (Glauber Costa)
* Fix two issues in simulator (Jussi Saurio)
* Fix distinct order by (Jussi Saurio)
* Fix UPDATE: Do not use an index for iteration if that index is going to be updated (Jussi Saurio)
* Fix non-4096 page sizes (Jussi Saurio)
* fix: Handle fresh INSERTs in materialized view incremental maintenance (Glauber Costa)
* Fix: do computations on usable_space as usize, not as u16 (Jussi Saurio)
* Sync engine fixes (Nikita Sivukhin)
* Fix tables renaming to existing index and rename indexed columns on (Levy A.)
* Fix max_frame determination and comments in WAL checkpointing (Preston Thorpe)
* turso-sync: fix schema bug (Nikita Sivukhin)
* Fix: Rename clickbench output file limbo/turso (Henrik Ingo)
* Reprepare fix on write statement (Pedro Muniz)
* Fix view processing in the VDBE (Jussi Saurio)
* Fix performance regression in prepare (Piotr Rżysko)
* Fix JavaScript bindings packaging (Nikita Sivukhin)
* bench/insert: fix expected return value from pragma (Jussi Saurio)
* Fix segfault on schema update for virtual tables (Preston Thorpe)
* core/btree: fix re-entrancy bug in insert_into_page() (Jussi Saurio)
* Fix performance regression (Jussi Saurio)
* fix/wal: remove start_pages_in_frames_hack to prevent checkpoint data loss (Jussi Saurio)
* fix/core/translate: ALTER TABLE DROP COLUMN: ensure schema cookie is updated even when target table is empty (Jussi Saurio)
* io_uring: setup plumbing for Fixed opcodes (Preston Thorpe)
* JavaScript serverless driver fixes (Pekka Enberg)
* Fix vector deserialization alignment and blob/text empty mismatch (bit-aloo)
* fix/wal: reset ongoing checkpoint state when checkpoint fails (Jussi Saurio)
* Fix parser error for repetition in row values (Diego Reis)
* fix/wal: only rollback WAL if txn was write + fix start state for WalFile (Jussi Saurio)
* fix/bindings/rust: return errors instead of swallowing them and returning None (Jussi Saurio)
* fix/wal: make db_changed check detect cases where max frame happens to be the same (Jussi Saurio)
* fix/wal: reset page cache when another connection checkpointed in between (Jussi Saurio)
* Fix merge script to prevent incorrectly marking merged contributor PRs as closed (Preston Thorpe)
* Fix concat_ws to match sqlite behavior (bit-aloo)
* bindings/rust: return errors instead of vibecoded numbers (Jussi Saurio)
## 0.1.3 -- 2025-07-29
### Added