2026-06-30
- Add dynamic time-based column defaults in
CREATE TABLE, includingDEFAULT CURRENT_DATE,DEFAULT CURRENT_TIMESTAMP,DEFAULT NOW, andDEFAULT UNIX_TIMESTAMP() - Add row-independent DEFAULT expressions, including arithmetic such as
DEFAULT (60 * 60), scalar functions such asDEFAULT LOWER('ACTIVE'), and typed casts such asDEFAULT CAST('2026-01-02' AS DATE) - Add
INSERT DEFAULT VALUESandVALUES(DEFAULT, ...)support so rows can explicitly use declared column defaults - Apply defaults during
INSERTfor omitted columns and explicitDEFAULTvalues, with type-aware output for DATE, TIMESTAMP, string, integer, and floating-point columns - Persist literal, expression-folded, and dynamic default definitions in on-demand table schemas so constraints survive save/reopen cycles
- Store SQL DATE and TIMESTAMP expression values through table and incremental storage paths by mapping them to their numeric backing representation
- Reject DEFAULT expressions that reference table columns or subqueries, keeping defaults row-independent and deterministic except for the supported time functions
- Add Rust and Python regression coverage for dynamic DEFAULT functions, constant-expression folding, cast defaults,
INSERT DEFAULT VALUES,VALUES(DEFAULT, ...), and invalid column-reference defaults - Update Rust crate and Python package version metadata to 1.20.1
Changed files by module
| Module | Files changed |
|---|---|
| Project Config | 2 |
| Documentation | 1 |
| Python Package | 1 |
| Query Engine | 4 |
| Storage Engine | 2 |
| Tests | 1 |