Repository navigation
Cypher multihop: expand direct variable-length support beyond endpoint-only patterns #973
Description
Activity
While testing official SNB Interactive query shapes from
pyg-bench, I hit the zero-hop open-range case*0..used by IS2. Since this issue explicitly leaves zero-hop forms out of scope, I opened #983 to track that gap separately.- added 11 commits that reference this issue
on Mar 31, 2026 Benchmark clarification from current-master
dgx-sparkrerun on14dafaf6b951954d8de840f9236f3e874249ebac:\n\n-interactive-short-6/message-forumno longer reproduces as a direct-Cypher blocker on current master\n - artifact:results/runs/dgx-spark-snb-interactive-is6-origin-master-14dafaf6b9-fresh-r1/\n - direct Cypher status:ok\n -direct_query_latency_ms = 28984.047\n- GFQL in the same run remainspartialunder#880, but the old benchmark-side claim thatmessage-forumdirect Cypher was still blocked by#973is now stale.\n\nSo#973may still matter for other shapes, butinteractive-short-6should be removed from the active benchmark blocker examples on current master.Benchmark update from pyg-bench (2026-04-04, origin/master
14dafaf6b9):message-forum/interactive-short-6direct Cypher is no longer an active benchmark blocker on current master.Measured artifact:
results/runs/dgx-spark-snb-interactive-is6-origin-master-14dafaf6b9-fresh-r1/- GFQL:
partial(residual under [FEA] GFQL bindings_table (row bindings) from chain using Yannakakis prune #880) - direct Cypher:
ok direct_query_latency_ms = 28984.047setup_latency_ms = 16714.946
This lane is no longer in the active direct-Cypher benchmark blocker queue. The remaining open item on IS6 is the GFQL joined-row materialization workaround under #880.
- GFQL:
Meta update: child issue #1001 is now closed via merged PR #1329.
Update details:
- Added exact-result + split-vs-connected parity regressions for the two-MATCH reentry varlen shapes (
match5-25/26family) - This hardens the already-supported behavior and prevents wrong-row regressions
Remaining #973 scope is still the broader expansion items (notably bounded/exact variable-length
WHEREpattern predicates and other boundary work listed in this meta issue).- Added exact-result + split-vs-connected parity regressions for the two-MATCH reentry varlen shapes (
- added a commit that references this issue
on May 7, 2026 - added a commit that references this issue
on May 7, 2026 Land receipt: merged via #1328 on 2026-05-07.\n\nFollow-through completed before merge:\n- review-skill convergence artifacts under plans/issue-973/\n- targeted blackbox + whitebox amplification around bounded/exact varlen WHERE predicates\n- CI green, including tck-gfql on the merge head.
Current state
Direct Cypher now supports the narrow endpoint-only single variable-length relationship subset, for example
MATCH (a)-[*2]->(b) RETURN band typed/reverse/undirected variants.Latest tests also make the remaining boundaries explicit:
WHEREpattern predicates still fail fastRelevant coverage today:
graphistry/tests/compute/gfql/cypher/test_lowering.py::test_string_cypher_failfast_rejects_bounded_variable_length_where_pattern_predicatesgraphistry/tests/compute/gfql/cypher/test_lowering.py::test_string_cypher_failfast_rejects_nonterminal_variable_length_relationship_patternsWhy track this separately
This is narrower than the broader GFQL path-semantics issue and is the next direct-Cypher parity step after the landed endpoint-only multihop subset.
Related but intentionally separate:
#722covers broader path naming / path tracking / path-sensitive predicate semantics#950covers non-stringparams=research and is unrelated hereDesired scope
Expand direct Cypher variable-length support for the next user-visible families:
WHEREpattern predicates, for example:MATCH (n) WHERE (n)-[:R*2]-() RETURN nMATCH (n) WHERE (n)<-[:R*1..2]-() RETURN nMATCH (a)-[:LIKES*2]->()-[:LIKES]->(c) RETURN c.nameMATCH (a)-[:LIKES]->()-[:LIKES*3]->(c) RETURN c.nameNon-goals for this issue
Keep these out of scope unless they fall out cleanly:
RETURN plength(p)/relationships(p)RETURN rorcount(r)*0/*0..nforms unless explicitly designedSuccess criteria
WHEREpredicates and mixed connected patterns