11 KiB
Changelog
0.0.15 - 2025-02-18
Added
Core:
- Initial pass on virtual tables (Preston Thorpe)
- Import MVCC code to the source tree -- not enabled (Pekka Enberg, Piotr Sarna, Avinash Sajjanshetty)
- Implement
json_set(Marcus Nilsson) - Initial support for WITH clauses (common table expressions) (Jussi Saurio)
BEGIN IMMEDIATE+COMMITsupport (Pekka Enberg)BEGIN EXCLUSIVEsupport (Pekka Enberg)- Add Printf Support (Zaid Humayun)
- Add support for
deleterow (Krishna Vishal) - Implement json_quote (Pedro Muniz)
- Add read implementation of user_version pragma with ReadCookie opcode (Jonathan Webb)
- Json path refine (Ihor Andrianov)
- cli: Basic dump support (Glauber Costa)
- Support numeric column references in GROUP BY (Jussi Saurio)
- Implement the legacy_file_format pragma (Glauber Costa)
- Added IdxLE and IdxLT opcodes (Omolola Olamide)
*Java bindings:
- Improve JDBC support with, for example, prepared statements (Kim Seon Woo)
- Rename package name
tech.turso(Kim Seon Woo)
Extensions:
- Sqlean Crypto extension (Diego Reis)
- Sqlean Time extension (Pedro Muniz)
- Add support for
regexp_replace()(lgualtieri75)
Simulator:
- Add NoREC testing property (Alperen Keleş)
- Add
--differentialmode against SQLite (Alperen Keleş)
Fixed
Core:
- Fix 24/48 bit width serial types parsing (Nikita Sivukhin)
- Fix substr (Nikita Sivukhin)
- Fix math binary (Nikita Sivukhin)
- Fix and predicate (Nikita Sivukhin)
- Fix IdxGt, IdxGe, IdxLt, and IdxLe instructions (Jussi Saurio)
- Fix not evaling constant conditions when no tables in query (Jussi Saurio)
- Fix remainder panic on zero right-hand-side (Jussi Saurio)
- Fix invalid text columns generated by dump (Kingsley Yung)
- Fix incorrect CAST text->numeric if valid prefix is 1 char long (Jussi Saurio)
- Improve SQL statement prepare performance (Jussi Saurio)
- Fix VCC write conflict handling (Jussi Saurio)
- Fix various bugs in B-Tree handling (Nikita Sivukhin)
- Fix case and emit (Nikita Sivukhin)
- Fix coalesce (Nikita Sivukhin)
- Fix cast (Nikita Sivukhin)
- Fix string funcs (Nikita Sivukhin)
- Fix floating point truncation in JSON #877 (lgualtieri75)
- Fix bug with
SELECTreferring to a mixed-case alias (Jussi Saurio)
0.0.14 - 2025-02-04
Added
Core:
- Improve changes() and total_changes() functions and add tests (Ben Li)
- Add support for
json_objectfunction (Jorge Hermo) - Implemented json_valid function (Harin)
- Implement Not (Vrishabh)
- Initial support for wal_checkpoint pragma (Sonny)
- Implement Or and And bytecodes (Diego Reis)
- Implement strftime function (Pedro Muniz)
- implement sqlite_source_id function (Glauber Costa)
- json_patch() function implementation (Ihor Andrianov)
- json_remove() function implementation (Ihor Andrianov)
- Implement isnull / not null for filter expressions (Glauber Costa)
- Add support for offset in select queries (Ben Li)
- Support returning column names from prepared statement (Preston Thorpe)
- Implement Concat opcode (Harin)
- Table info (Glauber Costa)
- Pragma list (Glauber Costa)
- Implement Noop bytecode (Pedro Muniz)
- implement is and is not where constraints (Glauber Costa)
- Pagecount (Glauber Costa)
- Support column aliases in GROUP BY, ORDER BY and HAVING (Jussi Saurio)
- Implement json_pretty (Pedro Muniz)
Extensions:
- Initial pass on vector extension (Pekka Enberg)
- Enable static linking for 'built-in' extensions (Preston Thorpe)
Go Bindings:
- Initial support for Go database/sql driver (Preston Thorpe)
- Avoid potentially expensive operations on prepare' (Glauber Costa)
Java Bindings:
- Implement JDBC
ResultSet(Kim Seon Woo) - Implement LimboConnection
close()(Kim Seon Woo) - Implement close() for
LimboStatementandLimboResultSet(Kim Seon Woo) - Implement methods in
JDBC4ResultSet(Kim Seon Woo) - Load native library from Jar (Kim Seon Woo)
- Change logger dependency (Kim Seon Woo)
- Log driver loading error (Pekka Enberg)
Simulator:
- Implement
--loadand--watchflags (Alperen Keleş)
Build system and CI:
- Add Nyrkiö change point detection to 'cargo bench' workflow (Henrik Ingo)
Fixed
- Fix
select X'1';causes limbo to go in infinite loop (Krishna Vishal) - Fix rowid search codegen (Nikita Sivukhin)
- Fix logical codegen (Nikita Sivukhin)
- Fix parser panic when duplicate column names are given to
CREATE TABLE(Krishna Vishal) - Fix panic when double quoted strings are used for column names. (Krishna Vishal)
- Fix
SELECT -9223372036854775808result differs from SQLite (Krishna Vishal) - Fix
SELECT ABS(-9223372036854775808)causes limbo to panic. (Krishna Vishal) - Fix memory leaks, make extension types more efficient (Preston Thorpe)
- Fix table with single column PRIMARY KEY to not create extra btree (Krishna Vishal)
- Fix null cmp codegen (Nikita Sivukhin)
- Fix null expr codegen (Nikita Sivukhin)
- Fix rowid generation (Nikita Sivukhin)
- Fix shr instruction (Nikita Sivukhin)
- Fix strftime function compatibility problems (Pedro Muniz)
- Dont fsync the WAL on read queries (Jussi Saurio)
0.0.13 - 2025-01-19
Added
-
Initial support for native Limbo extensions (Preston Thorpe)
-
npm packaging for node and web (Elijah Morgan)
-
Add support for
rowidkeyword' (Kould) -
Add support for shift left, shift right, is and is not operators (Vrishabh)
-
Add regexp extension (Vrishabh)
-
Add counterexample minimization to simulator (Alperen Keleş)
-
Initial support for binding values to prepared statements (Levy A.)
Updated
-
Java binding improvements (Kim Seon Woo)
-
Reduce
liblimbo_sqlite3.asize' (Pekka Enberg)
Fixed
-
Fix panics on invalid aggregate function arguments (Krishna Vishal)
-
Fix null compare operations not giving null (Vrishabh)
-
Run all statements from SQL argument in CLI (Vrishabh)
-
Fix MustBeInt opcode semantics (Vrishabh)
-
Fix recursive binary operation logic (Jussi Saurio)
-
Fix SQL comment parsing in Limbo shell (Diego Reis and Clyde)
0.0.12 - 2025-01-14
Added
Core:
-
Improve JSON function support (Kacper Madej, Peter Sooley)
-
Support nested parenthesized conditional expressions (Preston Thorpe)
-
Add support for changes() and total_changes() functions (Lemon-Peppermint)
-
Auto-create index in CREATE TABLE when necessary (Jussi Saurio)
-
Add partial support for datetime() function (Preston Thorpe)
-
SQL parser performance improvements (Jussi Saurio)
Shell:
-
Show pretty parse errors in the shell (Samyak Sarnayak)
-
Add CSV import support to shell (Vrishabh)
-
Selectable IO backend with --io={syscall,io-uring} argument (Jorge López Tello)
Bindings:
-
Initial version of Java bindings (Kim Seon Woo)
-
Initial version of Rust bindings (Pekka Enberg)
-
Add OPFS support to Wasm bindings (Elijah Morgan)
-
Support uncorrelated FROM clause subqueries (Jussi Saurio)
-
In-memory support to
sqlite3_open()(Pekka Enberg)
Fixed
-
Make iterate() lazy in JavaScript bindings (Diego Reis)
-
Fix integer overflow output to be same as sqlite3 (Vrishabh)
-
Fix 8-bit serial type to encoding (Preston Thorpe)
-
Query plan optimizer bug fixes (Jussi Saurio)
-
B-Tree balancing fixes (Pere Diaz Bou)
-
Fix index seek wrong on
SeekOp::LT`SeekOp::GT` (Kould) -
Fix arithmetic operations for text values' from Vrishabh
-
Fix quote escape in SQL literals (Vrishabh)
0.0.11 - 2024-12-31
Added
-
Add in-memory mode to Python bindings (Jean Arhancet)
-
Add json_array_length function (Peter Sooley)
-
Add support for the UUID extension (Preston Thorpe)
Changed
-
Enable sqpoll by default in io_uring (Preston Thorpe)
-
Simulator improvements (Alperen Keleş)
Fixed
-
Fix escaping issues with like and glob functions (Vrishabh)
-
Fix
sqlite_version()out of bound panics' (Diego Reis) -
Fix on-disk file format bugs (Jussi Saurio)
0.0.10 - 2024-12-18
Added
-
In-memory mode (Preston Thorpe)
-
More CLI improvements (Preston Thorpe)
-
Add support for replace() function (Alperen Keleş)
-
Unary operator improvements (Jean Arhancet)
-
Add support for unex(x, y) function (Kacper Kołodziej)
Fixed
- Fix primary key handling when there's rowid and PK is not alias (Jussi Saurio)
0.0.9 - 2024-12-12
Added
-
Improve CLI (Preston Thorpe)
-
Add support for iif() function (Alex Miller)
-
Add support for last_insert_rowid() function (Krishna Vishal)
-
Add support JOIN USING and NATURAL JOIN (Jussi Saurio)
-
Add support for more scalar functions (Kacper Kołodziej)
-
Add support for
HAVINGclause (Jussi Saurio) -
Add
get()anditerate()to JavaScript/Wasm API (Jean Arhancet)
0.0.8 - 2024-11-20
Added
- Python package build and example usage (Pekka Enberg)
0.0.7 - 2024-11-20
Added
- Minor improvements to JavaScript API (Pekka Enberg)
CASTsupport (Jussi Saurio)
Fixed
- Fix issues found in-btree code with the DST (Pere Diaz Bou)
0.0.6 - 2024-11-18
Fixed
- Fix database truncation caused by
limbo-wasmopening file in wrong mode (Pere Diaz Bou)
0.0.5 - 2024-11-18
Added
-
CREATE TABLEsupport (Pere Diaz Bou) -
Add Add Database.prepare() and Statement.all() to Wasm bindings (Pekka Enberg)
-
WAL improvements (Pere Diaz Bou)
-
Primary key index scans and single-column secondary index scans (Jussi Saurio)
-
GROUP BYsupport (Jussi Saurio) -
Overflow page support (Pere Diaz Bou)
-
Improvements to Python bindings (Jean Arhancet and Lauri Virtanen)
-
Improve scalar function support (Lauri Virtanen)
Fixed
-
Panic in codegen with
COUNT(*)(Jussi Saurio) -
Fix
LIKEto be case insensitive (RJ Barman)
0.0.4 - 2024-08-22
-
Query planner rewrite (Jussi Saurio)
-
Initial pass on Python bindings (Jean Arhancet)
-
Improve scalar function support (Kim Seon Woo and Jean Arhancet)
Added
- Partial support for
json()function (Jean Arhancet)
0.0.3 - 2024-08-01
Added
-
Initial pass on the write path. Note that the write path is not transactional yet. (Pere Diaz Bou)
-
More scalar functions:
unicode()(Ethan Niser) -
Optimize point queries with integer keys (Jussi Saurio)
Fixed
-
ORDER BYsupport for nullable sorting columns and qualified identifiers (Jussi Saurio) -
Fix
.schemacommand crash in the CLI (#212 (Jussi Saurio)
0.0.2 - 2024-07-24
Added
-
Partial
LEFT JOINsupport. -
Partial
ORDER BYsupport. -
Partial scalar function support.
Fixed
- Lock database file with POSIX filesystem advisory lock when database is opened to prevent concurrent processes from corrupting a file. Please note that the locking scheme differs from SQLite, which uses POSIX advisory locks for every transaction. We're defaulting to locking on open because it's faster. (Issue #94)
Changed
- Install to
~/.limbo/instead ofCARGO_HOME.
0.0.1 - 2024-07-17
Added
-
Partial
SELECTstatement support, includingWHERE,LIKE,LIMIT,CROSS JOIN, andINNER JOIN. -
Aggregate function support.
-
EXPLAINstatement support. -
Partial
PRAGMAstatement support, includingcache_size. -
Asynchronous I/O support with Linux io_uring using direct I/O and Darwin kqueue.
-
Initial pass on command line shell with following commands: