Skip to content

GFQL implementation shrink: pass manager and pushdown residue #1565

Description

@lmeyerov

Goal

Shrink GFQL pass manager / pushdown implementation code without changing behavior.

Target 300-600 LOC of production GFQL implementation deletion/DRY if safely available. Tests/fixtures/changelog do not count toward the headline target; report them separately.

Context

Refs:

The pass manager and pushdown modules were added around planner evolution. This lane should audit whether there is remaining duplicated or stale implementation code now that native planning/fallback deletion has settled.

Candidate Surface

Start from latest master and audit this ownership area:

  • graphistry/compute/gfql/passes/*.py
  • graphistry/compute/gfql/ir/pushdown_safety.py
  • graphistry/compute/gfql/passes/predicate_pushdown.py
  • graphistry/compute/gfql/passes/unnest_apply.py
  • pass manager / pushdown tests only as validation/support

Avoid overlapping with physical executor cleanup and typed-schema work.

Required Protocol

  1. Build an inventory before editing: production symbol/file, callers, coverage signal, and expected implementation LOC deletion.
  2. Prioritize production GFQL implementation shrink. Test/comment deletion is secondary and must be reported separately.
  3. If implementation deletion opportunity is <300 LOC after a full audit, stop with an audit receipt rather than shipping a mostly-test cleanup PR.
  4. Preserve current planner/pass behavior and public APIs.
  5. Use GFQL cleanup: add CPU/GPU coverage audit for dead-code candidates #1517 coverage as triage only; require static caller proof and focused validation.

Validation Expectations

  • Focused pass manager / predicate pushdown / unnest apply tests.
  • Planner/runtime tests if pass behavior is touched.
  • Broad non-cuDF GFQL selection if production paths are touched.
  • Ruff, typecheck, py_compile, surface guard if applicable, diff check.
  • Review protocol before marking ready.

Merge Policy

Open a PR when ready, but do not auto-merge. Coordinator must approve after reviewing production-code deletion, test/support delta, and validation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions