fix(cypher): unify repeated variable-length nodes - #1394
Conversation
Signed-off-by: King Star <mcxin.y@gmail.com>
|
Thanks for opening this — it has been seen, and it is queued. This note is automated, but it is not a brush-off: it exists so you know where your PR stands instead of having to guess from silence. Current review status: working through a backlog. What that means for this PR, concretely:
Things that will genuinely speed it up whenever review does happen:
If this fixes a bug, a reproduction we can run is worth more than a description of the symptom. Thanks for contributing, and sorry in advance for the wait. |
|
Thank you for the repeated-variable-length-node fix and its Cypher regression coverage. It is now routed as a high-priority query-correctness PR in |
What does this PR do?
Part of #797. This is the repeated-node-variable fix split from #883 as requested in maintainer review.
Variable-length expansion currently overwrites an existing terminal-node binding with each BFS result. As a result, a pattern such as
MATCH (f)-[:CALLS*1..2]->(f)can return paths ending at a different node even though bothfoccurrences must identify the same node.The change applies the same binding-unification rule already used by fixed-length relationships: when the terminal variable is bound, variable-length expansion only accepts traversal results with the same node id.
This PR intentionally does not include the trail-enumeration semantics, BFS fork, row cap, or related tests from #883.
Verification
make -f Makefile.cbm test make -f Makefile.cbm lint-ci make -f Makefile.cbm securityThe focused Cypher suite passes 171 tests. The repository lint and all eight security layers pass. The full test target reaches and passes the changed Cypher suite; unrelated subprocess and install-staging failures reproduce on the exact unmodified
mainbase in the same environment.Checklist
git commit -s) — required, CI rejects unsigned commits