Indexes: add index / drop index, persistence, display (ADR-0025)
Implement ADR-0025 — indexes as a DSL DDL feature. - Grammar: `add index [as <name>] on <T> (<cols>)`, `drop index <name>` / `drop index on <T> (<cols>)`, plus a `--cascade` flag on `drop column`. - db.rs: index operations over the engine's native index catalog (no metadata table). The rebuild-table primitive now captures and recreates indexes, so `change column` and the relationship operations no longer silently drop them. - `drop column` refuses an indexed column unless `--cascade`, which drops the covering indexes and reports each. - Persistence: additive `indexes:` list in `project.yaml` (version unchanged); round-trips through rebuild/export/import. - Display: an `Indexes:` section in the structure view and a nested tables/indexes items panel (S2). Reconciles requirements.md (C3 index portion, S2 satisfied) and CLAUDE.md. 1038 tests passing (+31), clippy clean.
This commit is contained in:
@@ -186,8 +186,9 @@ not yet implemented:
|
||||
- **Column drops/renames/type changes** (B2 / C2 partial): the
|
||||
rebuild-table primitive (ADR-0013) is in place; the grammar
|
||||
and dispatch are pending.
|
||||
- **Indexes** (C3 partial): `add index`, `drop index`, then
|
||||
`EXPLAIN QUERY PLAN` rendering for QA1.
|
||||
- **Indexes**: `add index` / `drop index` done (ADR-0025).
|
||||
`EXPLAIN QUERY PLAN` rendering for QA1 still pending (needs
|
||||
its own QA2 rendering ADR).
|
||||
- **Modify relationship** (C3a): drop+add covers the use case
|
||||
today.
|
||||
- **m:n convenience** (C4): auto-generates a junction table
|
||||
|
||||
Reference in New Issue
Block a user