v4.20.6

vadimdemedes/inkv4.20.6Sep 16, 2026by dudizimber

Upgrading?

AI Summary

This release fixes a critical bug where `count(*)` under-counted parallel edges in graph queries and resolves issues where index population could skip rows or hang when handling unsynced delta matrices.

Key Highlights

  • Fixed `count(*)` under-counting parallel edges by updating the reference-map builder to detect star aggregations.
  • Resolved index population skipping rows or hanging on unsynced delta matrices by merging matrices in strict row-major order.
  • Added plan-cache safety for the new star aggregation reference logic.
  • Reduced write stall time from ~1.5s to ~5ms for edge batch population.

New Features

  • Reference-map builder now preserves multiplicity for star aggregations.
  • Index population now merges main matrix and delta-plus for safe batch resume.

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