v5.2.0-beta.1
Pre-release
Pre-release
Pre-release (5.2.0-beta.1) for testing — not a stable release. First 5.2 beta.
SQL engine (Resource API) — default flipped legacy → auto (#1285)
The new SQL engine on the Resource API is now the default (phases 0-5 cutover); unsupported query shapes fall back to the legacy engine automatically. Highlights:
- Two-sided primary-key range fused into one bounded seek (#1822).
- No-
WHEREORDER BY <indexed>served via index order; restricted to the primary key to avoid a full ordered scan (D-219). UPDATE col = col ± Napplied as an atomic Addition (F-146).- Null-valued conditions served only on
indexNullsindexes; runtime search rejections convert to fallback. - Unindexed
WHEREconjuncts residualized instead of pushed; correct 3VL forNOT IN. - Unsupported cases (DISTINCT aggregates,
UPDATE SETon the primary key) fall back to legacy.
Data-safety fixes
- Reject null/undefined id in a Resource-API delete — previously could wipe the whole table — plus a field-aware validator message.
- Reject null hash values on delete instead of wiping the table (#1837).
- Reject changing a table's primary key when it has records.
- SQL
UPDATE/DELETErow-finder no longer drops not-yet-swept expired rows.
Also
search()'sincludeExpiredopt-out documented in the DESIGN cheat sheet.
Full Changelog: v5.2.0-alpha.6...v5.2.0-beta.1