v4.20.6

parruda/swarmv4.20.6Sep 16, 2026by dudizimber

Upgrading?

AI Summary

This release addresses critical bugs in Cypher query counting and graph index population performance, ensuring accurate data aggregation and preventing system hangs.

Key Highlights

  • Fixes `count(*)` under-counting parallel edges in graph traversals
  • Resolves index population skipping rows or hanging on unsynced delta matrices
  • Reduces write stall time during index population from ~1.5s to ~5ms

Full Release Notes

🐛 Bug fixes

`count(*)` under-counted parallel edges

`MATCH (a)-[e]->(b) RETURN count(*)` returned 1 instead of 3 for three parallel edges. Because `count(*)` references no entity, the edge alias was left unreferenced, the algebraic expression dropped the edge, and the traversal emitted a single record per (src, dest) pair — collapsing parallel edges and under-counting. The reference-map builder now detects a star aggregation and keeps the pattern's named entities referenced so their multiplicity is preserved (scoped to user aliases and * projections only; plan-cache safe).
- PR: #2660

Index population could skip rows or hang on unsynced delta matrices

When a label or relation matrix held unsynced delta-plus entries, index population resumed batched scans at [last_row, MAX) while the iterators drained the main matrix before yielding delta-plus — permanently skipping delta-plus rows below the resume point (nodes), and spinning forever re-scanning the same range (edges, once a masking tautology was removed). Population now merges the main matrix and delta-plus in strict row-major order, making batch resume safe. Also releases the read lock between edge batches (~1.5s write stall on 1M edges → ~5ms).
- PR: #2812
- Fixes: #2811

**Full Changelog**: https://github.com/FalkorDB/FalkorDB/compare/v4.20.4...v4.20.5

Related Repositories