Repository navigation
Remove pre-strict Cypher binder guards - #1432
Merged
Merged
Conversation
lmeyerov
force-pushed
the
issue-1420-deletion-d2-binder-guards
branch
3 times, most recently
from
May 14, 2026 22:23
6eb2370 to
23a7a55
Compare
lmeyerov
marked this pull request as ready for review
May 14, 2026 22:32
lmeyerov
force-pushed
the
issue-1420-deletion-d2-binder-guards
branch
3 times, most recently
from
May 14, 2026 23:47
6f0f128 to
2d4cdf3
Compare
lmeyerov
force-pushed
the
issue-1420-deletion-d2-binder-guards
branch
from
May 15, 2026 00:00
2d4cdf3 to
bc50381
Compare
This was referenced May 15, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #1420.
Summary
FrontendBinder.bind(strict_name_resolution=False)remains source-compatible but no longer restores loose binder semantics.collect(...), single-alias list literal, or missing-schema inputs, while preserving source-orderWITH -> UNWIND -> MATCHbinding.WITH ... WHEREvalidation aligned with Cypher semantics by checking both projected aliases and source-scope aliases; this covers the CI/TCKWITH a.name2 AS name WHERE name = ... OR a.name2 = ...shape.Validation
python3 -m pytest -q graphistry/tests/compute/gfql/cypher/test_binder.py::test_binder_strict_schema_rejects_missing_match_label_with_context graphistry/tests/compute/gfql/cypher/test_binder.py::test_binder_strict_schema_rejects_missing_property_in_return_with_context graphistry/tests/compute/gfql/cypher/test_binder.py::test_binder_strict_schema_rejects_missing_relationship_property_in_match_pattern(3 passed)python3 -m pytest -q graphistry/tests/compute/gfql/cypher/test_binder.py graphistry/tests/compute/gfql/cypher/test_binder_strict_compile_baseline.py graphistry/tests/compute/gfql/cypher/test_validator_runtime_strict_parity.py graphistry/tests/compute/gfql/cypher/test_m1_differential_scaffold.py graphistry/tests/compute/gfql/test_rollout_binder_integration.py graphistry/tests/compute/gfql/test_rollout.py(151 passed, 29 warnings)python3 -m pytest -q graphistry/tests/compute/gfql/cypher/test_lowering.py -k "(strict or binder or unresolved or collect or unwind) and not cudf"(41 passed, 958 deselected, 6 warnings)python3 -m pytest -q graphistry/tests/compute/gfql/cypher/test_binder.py::test_binder_with_where_validates_against_projected_alias_scope graphistry/tests/compute/gfql/cypher/test_binder.py::test_binder_with_where_validates_against_source_alias_scope graphistry/tests/compute/gfql/cypher/test_binder.py::test_binder_with_where_rejects_unknown_source_or_projected_alias graphistry/tests/compute/gfql/cypher/test_lowering.py::test_string_cypher_supports_with_where_using_projected_source_properties(5 passed, 4 warnings)python3 -m pytest -q graphistry/tests/compute/gfql/test_logical_planner.py graphistry/tests/compute/gfql/cypher/test_binder.py graphistry/tests/compute/gfql/cypher/test_binder_strict_compile_baseline.py graphistry/tests/compute/gfql/cypher/test_validator_runtime_strict_parity.py graphistry/tests/compute/gfql/test_rollout_binder_integration.py(129 passed, 28 warnings)python3 -m pytest -q graphistry/tests/compute/gfql/cypher/test_lowering.py graphistry/tests/compute/gfql/cypher/test_parser.py graphistry/tests/compute/gfql/test_row_pipeline_ops.py graphistry/tests/compute/gfql/test_schema_changers.py graphistry/tests/compute/gfql/test_let_schema_changers.py graphistry/tests/compute/gfql/test_rollout.py graphistry/tests/compute/gfql/test_rollout_binder_integration.py graphistry/tests/compute/test_hop.py graphistry/tests/compute/test_chain.py graphistry/tests/compute/test_chain_let.py graphistry/tests/compute/test_chain_concat.py graphistry/tests/compute/test_dataframe_primitives.py tests/gfql/ref/ -k "not cudf"(1897 passed, 1 unrelated local UMAP/cuDF no-GPU failure)python3 -m py_compile graphistry/compute/gfql/frontends/cypher/binder.py graphistry/compute/gfql/cypher/lowering.py graphistry/compute/gfql/rollout.py graphistry/tests/compute/gfql/cypher/test_binder.py graphistry/tests/compute/gfql/cypher/test_m1_differential_scaffold.py graphistry/tests/compute/gfql/test_rollout_binder_integration.py graphistry/tests/compute/gfql/cypher/test_binder_cross_kind_rebind.pypython3 -m py_compile graphistry/compute/gfql/frontends/cypher/binder.py graphistry/tests/compute/gfql/cypher/test_binder.py./bin/ruff.sh graphistry/compute/gfql/frontends/cypher/binder.py graphistry/compute/gfql/cypher/lowering.py graphistry/compute/gfql/rollout.py graphistry/tests/compute/gfql/cypher/test_binder.py graphistry/tests/compute/gfql/cypher/test_m1_differential_scaffold.py graphistry/tests/compute/gfql/test_rollout_binder_integration.py graphistry/tests/compute/gfql/cypher/test_binder_cross_kind_rebind.py./bin/ruff.sh graphistry/compute/gfql/frontends/cypher/binder.py graphistry/tests/compute/gfql/cypher/test_binder.pyssh dgx-spark, RAPIDS 25.02 harness, focused binder + rollout + selected cuDF lowering nodes:92 passed, 17 warningsssh dgx-spark, RAPIDS 26.02 harness, same focused selection:92 passed, 16 warningsssh dgx-spark, direct 26.02 Docker rerun of the four cuDF nodes that had OOM'd under shared GPU pressure:4 passed, 4 warningsssh dgx-spark, commit23a7a559, RAPIDS 25.02 harness, focused binder + rollout + logical-planner repro +WITH WHEREsource/projection + selected cuDF lowering nodes:98 passed, 17 warningsssh dgx-spark, commit23a7a559, RAPIDS 26.02 harness, same focused selection:98 passed, 16 warningsNote: a direct 26.02 no-harness run over the 92-test focused selection reached
88 passedbefore four cuDF tests hitstd::bad_allocon tiny allocations.nvidia-smishowed a concurrentVLLM::EngineCoreusing81870MiB; the same four nodes passed when rerun directly after the failed container exited.