tursodatabase
turso
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Branches
Benchmarks
Runs
Performance History
Latest Results
core: preserve original-case schema names; ASCII-only identifier folding Store table/view/index names in sqlite_schema with their original case (matching SQLite) instead of the lowercased form, while keeping name resolution case-insensitive. Fold identifiers ASCII-only (to_ascii_lowercase) so non-ASCII identifiers like `cœur` and `CŒUR` (or `é`/`É`) stay distinct, as in SQLite, and so databases containing such objects can be opened. DDL matching against sqlite_schema (DROP TABLE/VIEW/INDEX, ALTER RENAME, and the post-CREATE ParseSchema) compares names with NOCASE so it works for both new (original-case) and legacy (lowercased) rows. Databases written by a pre-fix Turso version persisted non-ASCII identifiers Unicode-lowercased (e.g. `CŒur` stored as `cœur` in sqlite_schema.name while the sql column kept the original case). On load we detect that mismatch and alias the original ASCII-folded name to the persisted key, so such tables stay addressable by their original case and DROP/ALTER remove them cleanly instead of orphaning the row. Covered by a committed old-binary fixture + regression test. Fixes #5781 Fixes #5730 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
glommer:fix/ident-case
2 hours ago
bindings/rust: Add multiprocess WAL builder test Add a Rust binding test that keeps one process connected with multiprocess WAL enabled, then checks that a second process can open the same database and write to it. This proves the second-process open issue is fixed. Reviewed-by: Triston Armstrong <Tarmstrong95@proton.me> Reviewed-by: Lucas Montes <lluc23@hotmail.com>
davidabram:fix-experimental_multiprocess_wal-wal-file
2 hours ago
Merge 'do not rollback attached pagers on reprepare if the conn is inside transaction' from Pedro Muniz The problem here is that you could have the statement error with database changed after creating the temp table inside a transaction, or creating it outside of the transaction but then trying to insert into into it, but not seeing the inserted row. ``` 1. CREATE TEMP TABLE inside BEGIN, followed by INSERT/SELECT, returns "Database schema changed". 2. CREATE TEMP TABLE outside BEGIN works, but INSERT into that temp table inside BEGIN returns success while the row is not visible inside the transaction or after COMMIT. ``` This is my attempt to fix this after comparing the behaviour with sqlite. Essentially we should not rollback the attached pagers if we are in explicit transaction, and seems like we should not rollback at all for temp tables (maybe I'm wrong on this appreciate some rebuttal). Fix temp tables with reprepare AI found the potential issue. Reviewed-by: Preston Thorpe (@PThorpe92) Closes #7348
main
2 hours ago
migrate wal.rs to use fallible vec allocations
pedrocarlo:wal-alloc
3 hours ago
mvcc: propagate logical log allocation errors
pedrocarlo:mvcc-alloc
3 hours ago
Propagate JSONB allocation errors
pedrocarlo:json-alloc
3 hours ago
migrate some more pushes and propagate errors
pedrocarlo:schema-alloc
3 hours ago
Preserve non-main transactions during reprepare
pedrocarlo:temp-table-context
3 hours ago
Latest Branches
CodSpeed Performance Gauge
-35%
core: preserve original-case schema names; ASCII-only identifier folding
#7303
5 days ago
e26ddcf
glommer:fix/ident-case
CodSpeed Performance Gauge
0%
Fix experimental_multiprocess_wal failing with WAL file lock
#7350
7 hours ago
03e20b9
davidabram:fix-experimental_multiprocess_wal-wal-file
CodSpeed Performance Gauge
0%
migrate `wal.rs` and dependent callers to use Vec fallible allocations
#7307
5 days ago
96887f1
pedrocarlo:wal-alloc
© 2026 CodSpeed Technology
Home
Terms
Privacy
Docs