Skip to content

fix(cypher): admit IC11 person!=friend scope through reentry prefix (#1391) - #1401

Merged
lmeyerov merged 16 commits into
masterfrom
issue-1391-employment-company-row-join
May 9, 2026
Merged

lmeyerov merged 16 commits into
masterfrom
issue-1391-employment-company-row-join

Conversation

@lmeyerov

@lmeyerov lmeyerov commented May 9, 2026

Copy link
Copy Markdown
Contributor

Summary

Fixes the IC11/job-referral residual blocker tracked by #1391 by admitting the prefix-stage WHERE NOT(person=friend) scope in the reentry compilation path.

What changed

  • graphistry/compute/gfql/cypher/lowering.py
    • Preserve pre-scope binding aliases for MATCH-row WHERE validation in _lower_projection_chain.
    • Use the union of scoped aliases + pre-scope aliases when validating row WHERE expressions.
    • Keep bindings-row routing enabled when pre-scope aliases are required for WHERE.
  • graphistry/tests/compute/gfql/cypher/test_lowering.py
    • Added IC11-shaped regression test covering:
      • MATCH (person)-[:KNOWS*1..2]-(friend)
      • WHERE NOT(person=friend)
      • WITH DISTINCT friend
      • trailing employment/company/country join and ordering
    • Added cuDF parity test for the same shape.

Why

#1391 tracks an employment/company row-join residual lane (interactive-complex-11 / job-referral) that still required adapter-side join workaround logic. The row join path itself already executed; the prefix compile path rejected NOT(person=friend) after scope trimming. This patch fixes that admission gap.

Validation

  • python -m pytest -q graphistry/tests/compute/gfql/cypher/test_lowering.py -k "job_referral_employment_company_row_join_shape"
  • python -m pytest -q graphistry/tests/compute/gfql/cypher/test_lowering.py -k "seeded_multihop_then_with_match_reentry_shape or seeded_multihop_then_with_optional_match_reentry_shape"
  • uv run ruff check graphistry/compute/gfql/cypher/lowering.py graphistry/tests/compute/gfql/cypher/test_lowering.py

Issue linkage

@lmeyerov
lmeyerov force-pushed the issue-1391-employment-company-row-join branch from 623cc77 to 3722971 Compare May 9, 2026 22:12
@lmeyerov
lmeyerov merged commit 61777db into master May 9, 2026
97 checks passed
@lmeyerov
lmeyerov deleted the issue-1391-employment-company-row-join branch May 9, 2026 22:30
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.

[FEA] GFQL residual row-bindings: employment company row join

1 participant