Skip to content

fix(gfql): preserve scalar reentry across continuation matches - #2253

Merged
lmeyerov merged 9 commits into
masterfrom
fix/gfql-2252-scalar-carry
Nov 1, 2026
Merged

lmeyerov merged 9 commits into
masterfrom
fix/gfql-2252-scalar-carry

Conversation

@lmeyerov

@lmeyerov lmeyerov commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Preserve engine-aware row-prefix slicing so pandas does not scalarize whole-node reentry prefixes.
  • Correlate hidden WITH scalar carries through surviving Polars edge steps, including multi-edge and forward/reverse/undirected traversal.
  • Keep valid hidden reentry property access out of destination-alias masking and handle empty Polars prefixes.
  • Cover pandas/Polars positive, partial, empty, multi-edge, convergence, multiplicity, no-reentry, and typed-scalar cases. Add a direct cuDF convergent positive/partial-rejection test.

Validation

  • Focused CPU issue_2252 or issue_1413 or reentry selection: 141 passed, 1,591 deselected.
  • Ruff passed. Type-hygiene guard: 4,439 grandfathered findings, no growth. Local mypy 1.18.2 reports the same 15 baseline diagnostics on d53 and this head; hosted CI typing lanes pass.
  • Exact-head CI run 40901849902 completed SUCCESS: all 90 jobs are terminal, with no failed conclusions. CodeQL run 40901850068 and RTD build 35501473 are SUCCESS.
  • Paired F9 TCK on exact e131: all three direct-Cypher cases pass on pandas and Polars in normal mode and with all six routes off. The same three pass under hosted-like pandas 3.1/NumPy 2.5. Exact product master a649 is red on the two nonempty cases as expected; the empty case passes.
  • TCK [BUG] memoization fails on df's with lists #212's full hosted CI currently fails earlier on the independent pandas 3.1 nullable-ID routes-off issue tracked by #2254. This does not fail the paired scalar-carry cases on e131. TCK [BUG] memoization fails on df's with lists #212 remains a draft.
  • F10: candidate-only pandas/Polars boundary runs pass positive, partial, and empty row oracles with traced same_path reentry and carry dispatch. The same-output control used 3 warmups/7 samples; pooled medians were 127.983/127.978 ms for positive and 90.988/95.610 ms for empty (base/candidate). This is bounded context, not a speed or statistical-equivalence claim.
  • cuDF remains unverified: the focused local test skips without CUDA. DGX 26.02 admitted the exact-source test under an 8 GiB RMM guard, then skipped after a 24-byte std::bad_alloc while foreign VLLM::EngineCore held 60,103 MiB. No cuDF parity claim.

Identity and review state

  • Base: a649e05f20a2457a024722b78b6f99d3ab0aeb46
  • Head: e131383a34cda7985db223440c25a32203d05081
  • Tree: 6cefa818e73d92700242d3ed1fa1d75d520b047b
  • Planner wave6 review: F9 paired TCK and F10 evidence accepted for product review. Actual cuDF execution and final planner review remain open gates; this PR stays open and unmerged.

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.

1 participant