docs: handoff 23 — ADR-0029 complete; tick C3

ADR-0029 (column constraints — NOT NULL / UNIQUE / CHECK /
DEFAULT) is fully implemented across the handoff-22 and
handoff-23 sessions. Ticks requirement C3, and corrects
ADR §10's CHECK-error wording to the compiled-SQL form per
the §7 storage deviation.
This commit is contained in:
claude@clouddev1
2026-05-19 18:56:50 +00:00
parent 5e97f6ac6a
commit a049ff9aa0
3 changed files with 184 additions and 7 deletions
+7 -4
View File
@@ -365,10 +365,13 @@ The friendly-error layer (ADR-0019) already enriches `NOT
NULL` and `UNIQUE` violations from `insert` / `update`. Two
additions:
- **`CHECK` violation** — SQLite reports `CHECK constraint
failed`; a new catalog entry renders it as "the value for
`<col>` breaks the rule `<check-expr>`", with the offending
value and the DSL-form expression.
- **`CHECK` violation** — the engine reports `CHECK constraint
failed: <col>`. The runtime enrichment resolves the column,
the offending value, and the column's `CHECK` expression; the
catalog entry renders "the value `<v>` breaks the rule
`<check-expr>`". The rule is shown in its **compiled-SQL
form** (§7) — the same form stored and displayed everywhere,
since deviation §7 removed the DSL-text representation.
- **The §5 / §6 refusals** — populated-column dry-run
failures, the `not null` / `unique` / `serial+default`
rejections — are all friendly catalog strings, with the