Skip to content

Plan path-alias carry matches natively - #1503

Merged
lmeyerov merged 1 commit into
masterfrom
fix/path-alias-carry-1495
May 17, 2026
Merged

lmeyerov merged 1 commit into
masterfrom
fix/path-alias-carry-1495

Conversation

@lmeyerov

@lmeyerov lmeyerov commented May 17, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Fixes #1495. Blocks/unblocks #1486 residual fallback deletion work.

  • Native-plans the final unused path-alias carry multiple_match_stages residual:
    MATCH path = shortestPath((a)-[*]-(b)) MATCH (b)-->(c) RETURN c
  • Narrows the logical planner path-alias guard so carried scope baggage does not block the follow-on MATCH route.
  • Adds fail-fast classification for unsupported shortestPath path-value references after a follow-on MATCH, such as length(path) / path IS NULL.
  • Fixes a DGX-discovered cuDF/pandas interop failure in connected OPTIONAL MATCH start-node seeding by converting seed inputs to the concrete dataframe engine before isin().
  • Updates the changelog.

Validation

  • python3 -m pytest -q graphistry/tests/compute/gfql/test_logical_planner.py -k "path_alias or multiple_match" -> 3 passed, 23 deselected
  • python3 -m pytest -q graphistry/tests/compute/gfql/test_runtime_physical_cutover.py -k "shortest_path or unplanned_chain or deferred_logical_plan" -> 9 passed, 20 deselected
  • python3 -m pytest -q graphistry/tests/compute/gfql/test_logical_planner.py graphistry/tests/compute/gfql/test_runtime_physical_cutover.py -k "path_alias or multiple_match or shortest_path or unplanned_chain or deferred_logical_plan" -> 14 passed, 41 deselected
  • python3 -m pytest -q graphistry/tests/compute/gfql graphistry/tests/compute/test_gfql.py -k "not cudf" -> 2231 passed, 29 skipped, 160 deselected, 15 xfailed
  • python3 -m pytest -q graphistry/tests/compute/gfql/cypher/test_lowering.py -k "connected_optional_structured_matrix and not cudf" -> 3 passed, 1068 deselected
  • ./bin/ruff.sh graphistry/compute/gfql/logical_planner.py graphistry/compute/gfql/cypher/lowering.py graphistry/compute/gfql/cypher/shortest_path_guards.py graphistry/compute/gfql_unified.py graphistry/tests/compute/gfql/test_logical_planner.py graphistry/tests/compute/gfql/test_runtime_physical_cutover.py -> pass
  • ./bin/typecheck.sh -> pass
  • python3 bin/ci_cypher_surface_guard.py -> pass
  • git diff --check -> pass
  • DGX RAPIDS 25.02 GFQL: 2398 passed, 22 skipped, 15 xfailed, 101 warnings in 95.52s; log /tmp/pygraphistry-1495-dgx/rapids-25.02-gfql.log
  • DGX RAPIDS 26.02 GFQL: 2398 passed, 22 skipped, 15 xfailed, 100 warnings in 81.58s; log /tmp/pygraphistry-1495-dgx/rapids-26.02-gfql.log
  • git fetch origin master; git merge-base --is-ancestor origin/master HEAD -> current origin/master still included, no rebase needed

Review

  • Review skill artifacts: plans/path-alias-carry-1495/review/
  • Credentials scan clean.
  • Wave 1: no findings.
  • Wave 2: no findings.
  • Wave 3: no findings after post-amend helper/cuDF/surface-baseline changes.
  • Wave 4: no findings.
  • Review converged.

Pending

  • None. PR is validated and intentionally left unmerged.

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: resolve final path-alias carry multiple MATCH residual

1 participant