tursodatabase
turso
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Branches
Benchmarks
Runs
Performance History
Latest Results
always recompute virtual columns in UPDATE/UPSERT; enforce NOT NULL and STRICT TypeCheck Virtual generated columns must always be recomputed in UPDATE/UPSERT when SET clause columns they depend on change. Previously this was gated behind a growing list of conditions (indexes, triggers, returning, check constraints). Simplify to: always compute when virtual columns exist, but only recompute the affected subset using columns_affected_by_update. Additionally, enforce two missing constraint checks on virtual columns: 1. NOT NULL: virtual columns were never in the SET clause, so the regular NOT NULL path skipped them. Emit HaltIfNull after compute_virtual_columns for any virtual column with NOT NULL. 2. STRICT TypeCheck: STRICT tables were not validating types of virtual columns after computation. Add a second TypeCheck pass using virtual_type_check_table_ref in INSERT, UPDATE, and UPSERT. Fixes #6159 Fixes #6161 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
glommer:strict-gc
12 minutes ago
perf/tpc-c: Fix default Turso source directory path
main
15 minutes ago
perf/tpc-c: Remove backup source files
main
21 minutes ago
Merge 'Add TPC-C benchmark' from Preston Thorpe Lots of work to do here improving us for these OLTP benchmarks Closes #6190
main
21 minutes ago
clippy fixes
avinassh:mvcc-encr-optm
24 minutes ago
core: Switch to file ID for database registry mapping The previous approach (34db5d989) tried to detect stale DATABASE_MANAGER entries by storing the inode at open time and comparing it on lookup. This required a zero sentinel for unknown inodes, platform cfg gates everywhere, and silently assumed a match when identity couldn't be determined — all of which papered over the real problem: path strings are the wrong key for a file registry. Like SQLite's inodeList, the process-wide database registry is now keyed by (device, inode) instead of canonical path strings. This makes stale entry detection impossible by construction: a deleted-and-recreated file has a different inode, so it naturally gets a fresh registry entry.
penberg:database-registry-inode
41 minutes ago
core: resolve compound SELECT ORDER BY against all constituent SELECTs ORDER BY in compound SELECTs (UNION/INTERSECT/EXCEPT) was only resolved against the leftmost SELECT's result columns, causing queries like `SELECT f1 FROM t1 UNION SELECT f2 FROM t1 ORDER BY f2` to fail. SQLite resolves ORDER BY names against any constituent SELECT. Fixes TCL test select1-6.10 in testing/sqlite3/select1.test.
penberg:compound-select-order-by
41 minutes ago
Merge 'core: Implement PRAGMA full_column_names and short_column_names' from Pekka Enberg These deprecated SQLite pragmas control how column names appear in result sets. They are needed to pass the upstream select1.test TCL tests (select1-6.1.1 through select1-6.9.16). The column naming rules match SQLite: - full=ON: explicit column refs use REAL_TABLE.COLUMN - short=ON (default), full=OFF: explicit column refs use COLUMN - both OFF: use original expression text (preserving spacing) - SELECT * expansion sets aliases at compile time, bypassing the full/short logic (longNames = full=ON && short=OFF uses TABLE.COLUMN) - AS aliases always take priority Closes #6200
main
57 minutes ago
Latest Branches
CodSpeed Performance Gauge
0%
Add STRICT/NOT NULL checks for generated columns
#6219
30 minutes ago
289d7db
glommer:strict-gc
CodSpeed Performance Gauge
0%
core/mvcc: Optimise MVCC Encryption with Chunking
#6174
4 days ago
d1af026
avinassh:mvcc-encr-optm
CodSpeed Performance Gauge
0%
core: Switch to file ID for database registry mapping
#6211
8 hours ago
48df0b7
penberg:database-registry-inode
© 2026 CodSpeed Technology
Home
Terms
Privacy
Docs