Skip to content

Plan ordinary multiple MATCH routes natively#1484

Closed
lmeyerov wants to merge 1 commit into
masterfrom
codex/issue-1477-multiple-match
Closed

Plan ordinary multiple MATCH routes natively#1484
lmeyerov wants to merge 1 commit into
masterfrom
codex/issue-1477-multiple-match

Conversation

@lmeyerov
Copy link
Copy Markdown
Contributor

@lmeyerov lmeyerov commented May 17, 2026

Closes #1477.

Summary

  • Route ordinary connected sequential MATCH ... MATCH ... Cypher queries through the existing connected-match join logical payload.
  • Keep shortestPath/exotic, optional, variable-length, disconnected/cartesian-prefix, WHERE-bearing, and whole-row passthrough shapes on the existing deferred/general paths.
  • Add compile/runtime cutover coverage proving ordinary sequential multi-MATCH bypasses _execute_compiled_query_chain_non_union().
  • Update the existing cuDF sequential MATCH fixture to use the repo helper based on cudf.from_pandas, which is compatible with RAPIDS 26.02.

Validation

  • python3 -m pytest -q graphistry/tests/compute/gfql/test_runtime_physical_cutover.py::test_anonymous_match_count_projection_uses_planned_route graphistry/tests/compute/gfql/test_runtime_physical_cutover.py::test_sequential_multiple_match_uses_connected_join_without_residual_chain graphistry/tests/compute/gfql/test_runtime_physical_cutover.py::test_classified_unplanned_chain_fallback_uses_chain_route graphistry/tests/compute/gfql/test_runtime_physical_cutover.py::test_unplanned_chain_fallback_requires_compile_defer_reason -> 6 passed
  • python3 -m pytest -q graphistry/tests/compute/gfql/test_runtime_physical_cutover.py graphistry/tests/compute/gfql/test_logical_planner.py graphistry/tests/compute/gfql/cypher/test_lowering.py -k "not cudf" -> 989 passed, 12 skipped, 113 deselected
  • ./bin/ruff.sh graphistry/compute/gfql/cypher/lowering.py graphistry/tests/compute/gfql/test_runtime_physical_cutover.py graphistry/tests/compute/gfql/cypher/test_lowering.py
  • ./bin/typecheck.sh graphistry/compute/gfql/cypher/lowering.py
  • DGX RAPIDS 25.02 targeted GFQL/cuDF selector -> 7 passed
  • DGX RAPIDS 26.02 targeted GFQL/cuDF selector -> 7 passed
  • python3 bin/ci_cypher_surface_guard.py after intentional baseline update for the new compiler route -> pass
  • Review skill converged after 2 waves; no blocker/important findings.

Residual Scope

  • Local literal-query scanner reduced multiple_match_stages from 37 to 35 on the original Harden residual Cypher unplanned-chain fallback #1476 audit baseline.
  • Remaining cases are intentionally left deferred/split candidates, dominated by shortestPath/exotic and non-ordinary sequential shapes.

@lmeyerov
Copy link
Copy Markdown
Contributor Author

Closing as redundant with merged PR #1483, which handled #1477 from ~/Work/pygraphistry/ with broader validation. This PR's lane is superseded.

@lmeyerov lmeyerov closed this May 17, 2026
@lmeyerov lmeyerov deleted the codex/issue-1477-multiple-match branch May 17, 2026 07:36
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.

GFQL deletion: native-plan ordinary multiple MATCH stages

1 participant