Skip to content

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 28 Mar 03:17
· 137 commits to main since this release

What's New in v0.4.0

Bug Fixes (8)

  • Integer storage widened to 64-bit (#43) — Integer properties were silently truncated to 32-bit, affecting timestamp(), large IDs, and any value > 2.1 billion. Now uses int64_t throughout the pipeline.
  • size(labels(n)) returns label count (#42) — Was returning the string length of the JSON representation instead of the number of labels.
  • DELETE + RETURN COUNT(n) reports actual count (#39) — Was always returning 0 because the RETURN re-queried the already-empty graph.
  • OPTIONAL MATCH respects label filters (#34) — OPTIONAL MATCH (a)-->(r:Label) was ignoring the label constraint and returning unrelated nodes.
  • UNWIND $param accepts parameters (#37) — Parameter references and map property access (item.id) now work in UNWIND expressions, enabling batch ingestion patterns.
  • startNode(r).name resolves properties (#41) — startNode() and endNode() now support property access and function composition.
  • MERGE variables persist through WITH (#36) — MERGE ... SET ... WITH i MATCH ... MERGE ... now works via a new clause pipeline handler.
  • SET n.prop = function() evaluates correctly (#35, #38) — Function calls and parameterized bulk SET (SET n += $param) now work in SET clauses.

Documentation

  • Comprehensive Diátaxis documentation rewrite covering tutorials, how-to guides, reference, and explanation sections.

Testing

  • 13 new reproduction tests covering all fixed bugs (Python + functional SQL)
  • Rust test parallelism fix across CI and release workflows

Upgrading

This release changes integer storage from 32-bit to 64-bit. Existing databases are unaffected (SQLite INTEGER columns already support 64-bit). New integer values will now be stored at full precision.

Full Changelog: v0.3.10...v0.4.0