Skip to content

fix(gfql/cypher): sequential MATCH reply-author row-shaping join support (#1395)#1402

Merged
lmeyerov merged 6 commits intomasterfrom
issue-1395-reply-author-row-shaping-join
May 9, 2026
Merged

fix(gfql/cypher): sequential MATCH reply-author row-shaping join support (#1395)#1402
lmeyerov merged 6 commits intomasterfrom
issue-1395-reply-author-row-shaping-join

Conversation

@lmeyerov
Copy link
Copy Markdown
Contributor

@lmeyerov lmeyerov commented May 9, 2026

Summary

  • fix Cypher lowering for sequential non-optional MATCH clauses with relationship patterns by adding a safe merge fallback when node-only seed binding does not apply
  • add targeted regression tests for reply-author row-shaping join lanes:
    • IC8-style recent-replies sequential MATCH shape
    • IS7-style message-replies sequential MATCH shape
  • add changelog entry under Development/Fixed

Why

Issue #1395 tracks residual adapter-based row shaping for reply-author lanes. A direct repro showed sequential two-MATCH query forms failing compile-time with:
Only node-only pre-binding MATCH clauses are supported before the final connected MATCH in this phase.
Equivalent single-MATCH comma patterns already worked; this patch closes that compiler gap.

Validation

  • python -m pytest -q graphistry/tests/compute/gfql/cypher/test_lowering.py -k "issue_1395 or issue_996"
  • python -m pytest -q graphistry/tests/compute/gfql/cypher/test_lowering.py -k "connected_multi_pattern or issue_1395 or issue_996 or recent_message_reentry"
  • uv run ruff check graphistry/compute/gfql/cypher/lowering.py graphistry/tests/compute/gfql/cypher/test_lowering.py

Issue

Closes #1395

@lmeyerov lmeyerov force-pushed the issue-1395-reply-author-row-shaping-join branch from a528150 to 7456341 Compare May 9, 2026 20:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEA] GFQL residual row-bindings: reply author row shaping join

1 participant