Skip to content

GFQL cleanup: retire lowering.py projection-planning compatibility delegates #1514

Closed

Description

@lmeyerov

Refs #1509. Refs #1058.\n\nFollow-up from the #1509 post-reentry lowering.py DRY audit.\n\n## Problem\nA broader projection-planning compatibility delegate family still lives in graphistry.compute.gfql.cypher.lowering even though the implementation owner is graphistry.compute.gfql.cypher.projection_planning. Examples include _split_qualified_name, _projection_ref_from_expr, _reject_duplicate_alias_row_refs, _empty_optional_projection_row, _optional_null_fill_plan, _optional_projection_row_guard_plan, _plan_with_visible_projected_columns, and _projection_output_names.\n\n#1509 intentionally did not remove this family because graphistry/tests/compute/gfql/cypher/test_lowering_s3_split_guard.py currently pins some lowering.* delegates for split compatibility, so retiring the family is broader than a narrow dead-code deletion.\n\n## Scope\n- Decide whether the S3 split compatibility delegates are still required.\n- If not required, update/remove the split-guard expectations and call sites deliberately.\n- Keep behavior unchanged; this should be ownership cleanup only.\n- Avoid typed-schema work and new Cypher semantics.\n\n## Acceptance\n- Either retire the delegate family with focused tests updated, or document why the compatibility surface remains required.\n- Focused Cypher lowering tests, ruff, typecheck, and cypher surface guard pass.\n

Activity

  1. lmeyerov commented on May 18, 2026

    @lmeyerov
    ContributorAuthor

    Closed by merged PR #1519: #1519

    Merge commit: ca5397a970dcf7ee16879cca0ef6bf90bf126adf

    What landed:

    • Retired the private projection-planning compatibility delegate family from graphistry.compute.gfql.cypher.lowering.
    • Kept projection helper and validation ownership in graphistry.compute.gfql.cypher.projection_planning.
    • Rewired internal lowering callers to call the canonical projection_planning helpers directly.
    • Updated split-guard coverage to assert canonical helper behavior and that the retired private lowering.* delegates remain absent.
    • Updated CHANGELOG.md.

    Validation:

    • Focused local split-guard test: 17 passed.
    • Focused local non-cuDF lowering slice: 967 passed, 12 skipped, 115 deselected.
    • Local ruff, typecheck, cypher surface guard, compileall, and diff check passed.
    • Review skill converged after 2 clean waves with no findings.
    • DGX RAPIDS GFQL targeted runs passed on both supported images:
      • RAPIDS 26.02: 362 passed
      • RAPIDS 25.02: 362 passed
    • GitHub CI green, including tck-gfql, cypher gates, lint/types, GFQL core, pandas compat GFQL, docs, CodeQL, and ReadTheDocs.

    No intentional runtime semantic changes; this was the planned ownership/deletion cleanup for the projection-planning delegate surface.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions