v0.6.0
openCypher TCK conformance 94.4% → 99.9% (3878/3880 scenarios, 0 wrong-result). Full details in CYPHER_COVERAGE.md.
Added
- Parser replaced: ANTLR4-generated grammar instead of the hand-rolled
pestgrammar — the foundation for everything else in this release. marsdb-capi(C ABI) andmarsdb-go(cgo binding).- List-valued node/edge properties, and
$parametersnaming a list or a map. SET n = {...}/SET n += {...};MERGE/CREATE/DELETE/SET/REMOVEcan now chain directly into each other;ON MATCH/ON CREATEin either order inMERGE.- Variable-length relationship patterns: binding
[r*1..3]to a real list variable, matching against an already-bound list, and inline properties on the hop itself. - Named-path capture over patterns mixing a variable-length hop with other hops.
exists { MATCH ... RETURN ... }, the full nested-subquery form of existential subqueries.CALL proc(args) [YIELD ...]against a pluggableProcedureProvider.- A real manual: knoguchi.github.io/marsdb, README badges, and measured test coverage in CI.
Fixed
- Integer arithmetic overflow now returns a query error instead of panicking.
duration.between()/duration.inSeconds()component-accessor math, and combined ISO-8601 date-time duration string parsing.- The
nullliteral now types asKind::Unknown, fixing several wrongly-rejected compile-time cases. - A variable-length hop's own traversed edges weren't excluded from later hops of the same pattern, causing a silent double-count in some named-path-capture patterns.
- List-concat (
+) type inference wrongly rejected a laterCREATEoff a concatenated node/relationship list. marsdb-go's list-valued property JSON round-trip.marsdb-python'sPropertyValueconversion was missing a match arm forMap.
Full changelog: CHANGELOG.md