Skip to content

perf(gfql): seeded fast paths could admit single-alias WHERE predicates and LIMIT-only whole-row RETURNs #2048

Description

@lmeyerov

From the #2035 scenario review (private plan, reviews/pygraphistry-2035-hardening/scenarios.md). Two shapes decline to the full path today with parity, and are cheap to admit:

  1. MATCH (m {id})-[:T]->(p) WHERE m.score > 0 RETURN p.age / WHERE p.age > 0 ... — a same-path WHERE whose predicates each touch one alias. The row pipeline already peels single-alias predicates into alias_prefilters; the seeded fast path could apply the same evaluator on its seed/destination rows before projecting (≈½ day incl. pins per predicate kind; IN lists are the same row).
  2. MATCH (p {id}) RETURN p LIMIT 1 — whole-row RETURN with a suffix; the props form already serves LIMIT/ORDER BY/DISTINCT through chain_impl(out, suffix_ops).

Not needed by the SNB shapes; backlog after the 0.60 stacks land.

Activity

  1. lmeyerov commented on Sep 5, 2026

    @lmeyerov
    ContributorAuthor

    DRY follow-up from the #2035 quality review: the select-item admission loop (alias prefix → side → property-exists check) is duplicated between _execute_seeded_node_lookup_fast_path and _execute_seeded_typed_hop_fast_path; fold it into one helper that returns (out_name, side, prop) items or None when the single-alias WHERE work touches that code.

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