feat(types)!: drop the blob column type (ADR-0005 Amendment 2)
blob was a dead-end: declarable but never fillable (no literal in either mode, seed-unsupported), so a blob column could only ever hold NULL. Remove Type::Blob + Value/CellValue::Blob + the base64 CSV path + the grammar slot + completion/render/type-change/seed handling + the binder refusal (whose message also carried a user-facing "DSL" copy-rule bug). The vocabulary is now nine types; base64 stays (clipboard OSC-52). Backward compat is the ADR-0015 migration framework's first real use: a v1->v2 format bump (CURRENT_SCHEMA_VERSION across serializer/parser/skeleton) with a migrator that rewrites `type: blob` -> `type: text`, and a forced .db rebuild from the migrated text when a blob column was actually converted (the stale .db keeps a STRICT BLOB engine column). Conversion to text is non-destructive and CSV-free. Covered by a full-stack integration test and a Tier-4 PTY test that opens a real legacy v1-blob project. Also sweeps the nine-type vocabulary through CLAUDE.md, requirements.md, the website (type reference, seed doc, highlight grammar), and the ADR-0030/0033/ 0035 cross-references; CHANGELOG Removed entry; handoff-79. BREAKING CHANGE: the `blob` column type is removed. Existing projects that declared a blob column are migrated on first open (the column becomes text; the original project.yaml is kept as a .v1.bak).
This commit is contained in:
@@ -172,7 +172,7 @@ representation; the SQL surface does not round-trip through it.
|
||||
|
||||
### 5. Type vocabulary — the playground's, not the engine's
|
||||
|
||||
Advanced-mode DDL uses the playground's own ten-type
|
||||
Advanced-mode DDL uses the playground's own nine-type
|
||||
vocabulary (ADR-0005). There is **no fallback to engine
|
||||
storage types**: a column created in advanced mode is a
|
||||
first-class `serial` / `decimal` / `date` / … exactly as a
|
||||
@@ -373,7 +373,7 @@ ADR when taken up (ADR-0026-style).
|
||||
- ADR-0002 — the engine is an implementation detail; "no
|
||||
engine name in user-facing strings" — §7 extends it.
|
||||
- ADR-0003 — the simple / advanced mode model this builds on.
|
||||
- ADR-0005 — the ten-type vocabulary advanced DDL uses (§5).
|
||||
- ADR-0005 — the nine-type vocabulary advanced DDL uses (§5).
|
||||
- ADR-0009 — the DSL conventions; the DSL stays usable in
|
||||
advanced mode.
|
||||
- ADR-0012 / ADR-0013 — the metadata tables the `Command` core
|
||||
|
||||
@@ -1649,7 +1649,7 @@ more.
|
||||
|
||||
## See also
|
||||
|
||||
- ADR-0005 — the ten-type vocabulary INSERT works with.
|
||||
- ADR-0005 — the nine-type vocabulary INSERT works with.
|
||||
- ADR-0006 — the auto-snapshot before destructive ops.
|
||||
- ADR-0014 — the DSL DML model + cascade-summary precedent.
|
||||
- ADR-0015 — the persistence write-through path.
|
||||
|
||||
@@ -58,7 +58,7 @@ Two things from the earlier phases shape this one:
|
||||
executed as-is, the engine would make the table, but the
|
||||
playground would lose what the user meant: that `id` is `serial`,
|
||||
that a `REFERENCES` clause is a *named relationship*, that `STRICT`
|
||||
applies, that the ten-type vocabulary governs. Recovering that
|
||||
applies, that the nine-type vocabulary governs. Recovering that
|
||||
needs the parsed statement either way.
|
||||
|
||||
ADR-0030 §4 said "DDL → a `Command` … run the typed executor." That
|
||||
@@ -92,7 +92,7 @@ mode. Unlike the DML `Sql*` commands they **execute structurally**:
|
||||
the handler reads the parsed structure and performs the schema change
|
||||
through the playground's metadata-maintaining machinery — writing
|
||||
`__rdbms_playground_columns` / `__rdbms_playground_relationships`,
|
||||
applying `STRICT`, using the ten-type vocabulary — so an
|
||||
applying `STRICT`, using the nine-type vocabulary — so an
|
||||
advanced-mode-created object is a first-class playground object,
|
||||
identical to a simple-mode-created one (ADR-0030 §5).
|
||||
|
||||
@@ -772,5 +772,5 @@ honouring it is not the lesson.
|
||||
- **ADR-0017** — the column type-change classification §7 shares.
|
||||
- **ADR-0029** — column constraints; **ADR-0025** — indexes;
|
||||
**ADR-0011** — FK column-type compatibility; **ADR-0005** — the
|
||||
ten-type vocabulary.
|
||||
nine-type vocabulary.
|
||||
- **ADR-0006** — undo; each DDL statement is one undo step (§10).
|
||||
|
||||
Reference in New Issue
Block a user