Skip to content

v0.6.0

Choose a tag to compare

@knoguchi knoguchi released this 07 Aug 00:18
· 132 commits to main since this release
3d0aecb

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 pest grammar — the foundation for everything else in this release.
  • marsdb-capi (C ABI) and marsdb-go (cgo binding).
  • List-valued node/edge properties, and $parameters naming a list or a map.
  • SET n = {...} / SET n += {...}; MERGE/CREATE/DELETE/SET/REMOVE can now chain directly into each other; ON MATCH/ON CREATE in either order in MERGE.
  • 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 pluggable ProcedureProvider.
  • 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 null literal now types as Kind::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 later CREATE off a concatenated node/relationship list.
  • marsdb-go's list-valued property JSON round-trip.
  • marsdb-python's PropertyValue conversion was missing a match arm for Map.

Full changelog: CHANGELOG.md