diff --git a/CHANGELOG.md b/CHANGELOG.md index 2ea1eccc0..46d7049d5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,97 @@ # Changelog +## 0.0.22 -- 2025-06-19 + +### 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-8 `String` (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) + ## 0.0.21 - 2025-05-28 ### Added