Skip to content

fix(cypher): support connected comma fanout - #1035

Merged
lmeyerov merged 4 commits into
fix/issue-1000-prefix-scalar-reentryfrom
fix/issue-1000-reentry-comma-fanout
Apr 3, 2026
Merged

lmeyerov merged 4 commits into
fix/issue-1000-prefix-scalar-reentryfrom
fix/issue-1000-reentry-comma-fanout

Conversation

@lmeyerov

@lmeyerov lmeyerov commented Apr 2, 2026 •

Copy link
Copy Markdown
Contributor

Refs #1000

Stacked on #1034.

This Phase 6a slice turns the earlier comma-fanout blocker into a runtime fix. Connected non-linear comma MATCH shapes now lower through joined bindings rows instead of the old single-linear-path normalizer.

What's included:

  • connected non-linear comma-pattern join lowering for star-style fanout shapes
  • scalar-prefix reentry support through that joined fanout lane
  • exact IC6 compile progression now passes the earlier comma-pattern blocker locally
  • test amplification for reentry fanout execution, grouped count(post), direct non-reentry fanout execution, and cuDF parity coverage
  • CHANGELOG.md prep

What remains adjacent but separate:

  • linear connected multi-pattern grouped aggregate overlap still remains fail-fast (group by one alias, aggregate another on already-linear connected fanout shapes)
  • that should be the next stacked slice instead of being conflated with this fanout fix

Focused validation run locally on April 2, 2026:

  • python3.12 -B -m pytest -q graphistry/tests/compute/gfql/cypher/test_lowering.py -k "connected_star_comma_fanout or issue_1000_ic6_compiles_after_phase6_connected_star_fanout or connected_multi_pattern_grouped_aggregate_overlap or scalar_only_prefix_with_match_reentry" -> 12 passed, 2 skipped, 632 deselected
  • python3.12 -B -m pytest -q graphistry/tests/compute/gfql/cypher/test_lowering.py -k "connected_multi_pattern or connected_star_comma_fanout or scalar_only_prefix_with_match_reentry or multiple_post_with_where_clauses or post_with_match_collect_unwind_match or issue_1000_ic6_compiles_after_phase6_connected_star_fanout" -> 30 passed, 4 skipped, 612 deselected
  • python3.12 -B -m pytest -q graphistry/tests/compute/gfql/cypher/test_parser.py -k "reentry or unwind" -> 11 passed, 84 deselected
  • ruff check graphistry/compute/gfql/cypher/lowering.py graphistry/compute/gfql_unified.py graphistry/tests/compute/gfql/cypher/test_lowering.py graphistry/tests/compute/gfql/cypher/test_parser.py -> passed

Targeted dgx-spark note:

  • attempted a narrow RAPIDS/cuDF check for the new star-fanout lane on April 2, 2026
  • the remote container failed immediately with cudaErrorMemoryAllocation / std::bad_alloc while constructing a tiny cuDF frame, so that result was operationally inconclusive rather than a clear product failure

@lmeyerov lmeyerov changed the title test(cypher): lock #1000 comma-fanout blockers fix(cypher): support connected comma fanout Apr 2, 2026
@lmeyerov
lmeyerov force-pushed the fix/issue-1000-prefix-scalar-reentry branch from 5a5e9da to e112f8a Compare April 3, 2026 03:18
@lmeyerov
lmeyerov force-pushed the fix/issue-1000-reentry-comma-fanout branch from c79d102 to 2e08dd5 Compare April 3, 2026 03:19
@lmeyerov
lmeyerov force-pushed the fix/issue-1000-reentry-comma-fanout branch from 9a1b30e to 4c99a9a Compare April 3, 2026 04:09
@lmeyerov
lmeyerov marked this pull request as ready for review April 3, 2026 08:02
@lmeyerov
lmeyerov merged commit 12eb3ae into fix/issue-1000-prefix-scalar-reentry Apr 3, 2026
99 checks passed
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.

1 participant