fix+refactor: soft keywords as identifiers, full test wiring, ORC crash docs

- parser: clause keywords (header, format, status, user, csv, ...) now work
  as identifiers everywhere; IMPORT/EXPORT accept FORMAT csv/HEADER true
- nimble test + CI run all 13 test suites (650 checks green)
- ExecutionContext.registry is now {.cursor.} (breaks registry<->ctx cycle)
- ORC crash reproduced and bisected (tests/orc_repro.py); ARC stays the MM
This commit is contained in:
2026-07-30 13:11:28 +03:00
parent ed5a71913c
commit 2d09edd9f7
9 changed files with 952 additions and 94 deletions
+6 -1
View File
@@ -113,7 +113,12 @@ type
outerRow*: Table[string, string] # outer query row for correlated subqueries
subqueryPlan*: IRPlan # current subquery plan being evaluated
currentDatabase*: string # name of the currently selected database
registry*: DatabaseRegistry # nil for single-DB mode
# The registry owns this context (registry -> DatabaseInfo -> ctx), so this
# back-reference is a non-owning cursor: it breaks the registry <-> ctx
# reference cycle. The registry always outlives its contexts (closeAll at
# shutdown). Note: breaking this cycle alone does NOT make ORC usable —
# the ORC crash under wire INSERT load persists (see tests/orc_repro.py).
registry* {.cursor.}: DatabaseRegistry # nil for single-DB mode
MigrationRecord* = object
name*: string