Skip to content

Route Cypher CALL through physical dispatch - #1458

Merged
lmeyerov merged 2 commits into
masterfrom
fix/d5-compat-fallback-inventory-1455
May 15, 2026
Merged

lmeyerov merged 2 commits into
masterfrom
fix/d5-compat-fallback-inventory-1455

Conversation

@lmeyerov

@lmeyerov lmeyerov commented May 15, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Fixes #1455.

This inventories the remaining D5 compat fallback routes and makes the CALL route decision concrete:

  • Adds a native procedure_call physical route via ProcedureCallExecutorWrapper.
  • Dispatches top-level Cypher CALL through physical planning, then execute_cypher_call() plus the existing chain continuation.
  • Removes the exception-driven CALL compat fallback and adds a fail-fast guard if a procedure call reaches _execute_compiled_query_compat_non_union().
  • Documents intentionally retained logical_plan is None fallback families for top-level OPTIONAL MATCH and optional reentry.
  • Adds route guard tests for CALL bypassing compat and deferred fallback shapes still using compat intentionally.

Route Matrix

Shape Decision
Top-level CALL graphistry.* Native procedure_call physical route
GRAPH { CALL ...write() } constructor Keep explicit constructor helper, not generic compat fallback
Top-level OPTIONAL MATCH without logical plan Keep documented compat fallback; follow-up native route needed
Optional reentry without logical plan Keep documented compat fallback; follow-up native route needed
Procedure CALL entering compat executor Invalid; fail fast

Validation

  • python3 -m pytest -q graphistry/tests/compute/gfql/test_physical_planner.py graphistry/tests/compute/gfql/test_runtime_physical_cutover.py -> 16 passed
  • python3 -m pytest -q graphistry/tests/compute/gfql/cypher/test_lowering.py -k "not cudf and (logical_plan_route or compile_cypher_call_returns_procedure_program or string_cypher_executes_graphistry_call)" -> 32 passed, 2 skipped
  • python3 -m pytest -q graphistry/tests/compute/gfql/cypher/test_lowering.py -k "not cudf" -> 936 passed, 12 skipped, 111 deselected
  • ./bin/ruff.sh ...changed files... -> green
  • git diff --check -> clean
  • ssh dgx-spark RAPIDS 25.02 GFQL package suite -> 2357 passed, 22 skipped, 15 xfailed
  • ssh dgx-spark RAPIDS 26.02 GFQL package suite -> 2357 passed, 22 skipped, 15 xfailed

Local note: direct ./bin/test-minimal-lite.sh cannot start here because the shell only has python3; reran with a temporary python PATH shim. Local broad sentinel still hits no-CUDA cuDF/CuPy/UMAP paths, so cuDF validation was completed on DGX.

Review Skill

Review protocol artifacts are local under plans/d5-compat-fallback-inventory-1455/:

  • research/context.md
  • research/policies.md
  • research/credentials.md
  • waves/wave-1/wave-report.md
  • waves/wave-2/wave-report.md
  • final-report.md

Result: two clean/no-advance waves; no BLOCKER or IMPORTANT findings remain.

Sibling TCK

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.

D5 prep: inventory remaining compat executor fallbacks and CALL route decision

1 participant