feat: JSON/JSONB validation, multi-column indexes, CTE execution, wire protocol column types
- Add fkJson to wire protocol with serialization/deserialization - Validate JSON/JSONB on INSERT/UPDATE via std/json - Send real column type metadata in wire protocol responses - Update all 4 clients (Nim, Python, JS, Rust) for JSON and columnTypes - Implement multi-column index parser (CREATE INDEX idx ON t(a, b)) - Add ciColumns to AST nkCreateIndex - Build composite index keys as table.col1.col2 with val1|val2 - Support multi-column exact match in SELECT for AND chains - Implement non-recursive CTE execution via ctx.cteTables materialization - Add tkRecursive token and parse WITH RECURSIVE - Fix test isolation: use temp dirs for JOIN, migration, and RLS tests - All tests passing (0 failures)
This commit is contained in:
@@ -149,7 +149,7 @@ type
|
||||
case kind*: NodeKind
|
||||
of nkSelect:
|
||||
selDistinct*: bool
|
||||
selWith*: seq[(string, Node)]
|
||||
selWith*: seq[(string, Node, bool)]
|
||||
selResult*: seq[Node]
|
||||
selFrom*: Node
|
||||
selJoins*: seq[Node]
|
||||
@@ -286,6 +286,7 @@ type
|
||||
of nkCreateIndex:
|
||||
ciTarget*: string
|
||||
ciName*: string
|
||||
ciColumns*: seq[string]
|
||||
ciExpr*: Node
|
||||
ciKind*: IndexKind
|
||||
of nkDropIndex:
|
||||
@@ -309,7 +310,7 @@ type
|
||||
of nkReturning:
|
||||
retExprs*: seq[Node]
|
||||
of nkWith:
|
||||
withBindings*: seq[(string, Node)]
|
||||
withBindings*: seq[(string, Node, bool)]
|
||||
of nkBinOp:
|
||||
binOp*: BinOpKind
|
||||
binLeft*: Node
|
||||
|
||||
Reference in New Issue
Block a user