Commit 23e9fce
fix(gfql): stop the indexed bypass and the named-middle rewrite from discarding rows() params
Amplification of the rows(table=...) named-middle fix: the same CLASS of defect --
an interception that answers a different question than the one asked -- appears twice
more around the same two functions.
1. The indexed bindings bypass ignored `table`. Serving it SKIPS the canonical
traversal, so the suffix runs against the pre-traversal graph; that is sound for a
bindings table but not for rows(table='edges'), which then read the FULL edge frame
(12 rows instead of 3 on the fixture, pandas/cuDF/native polars, and the wrong
values survive a following select). Both gates now decline a non-default table.
Only reachable once the rewrite stopped firing for a non-default table -- before
that, the rewrite converted the call on the indexed AND the scan path, so the two
agreed on the wrong table.
2. Both rewrites built a FRESH rows(binding_ops=...) rather than adding binding_ops to
the call the caller wrote, throwing away every other param. attach_prop_aliases (the
projection pushdown) and alias_prefilters are now carried through, so naming a middle
no longer widens the output schema relative to the hand-spelled binding_ops form.
Pinned on pandas, cuDF and native polars; mutation-checked per surface (removing the
generic table guard fails 6 with polars green, the polars one fails 3 with pandas green;
removing the generic param carry fails 2, the polars one 1). A strict-xfail records the
one instance NOT fixed here: the native polars bindings builder never receives
alias_prefilters at all.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015YsqAZQLbqjSDrYSFz2GoB1 parent f89e637 commit 23e9fce
4 files changed
Lines changed: 302 additions & 2 deletions
File tree
- graphistry
- compute
- gfql/lazy/engine/polars
- tests/compute/gfql
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
| 31 | + | |
| 32 | + | |
31 | 33 | | |
32 | 34 | | |
33 | 35 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
586 | 586 | | |
587 | 587 | | |
588 | 588 | | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
| 597 | + | |
589 | 598 | | |
590 | 599 | | |
591 | 600 | | |
| |||
747 | 756 | | |
748 | 757 | | |
749 | 758 | | |
750 | | - | |
| 759 | + | |
| 760 | + | |
| 761 | + | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
| 766 | + | |
| 767 | + | |
| 768 | + | |
| 769 | + | |
| 770 | + | |
| 771 | + | |
751 | 772 | | |
752 | 773 | | |
753 | 774 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
502 | 502 | | |
503 | 503 | | |
504 | 504 | | |
505 | | - | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
506 | 514 | | |
507 | 515 | | |
508 | 516 | | |
| |||
775 | 783 | | |
776 | 784 | | |
777 | 785 | | |
| 786 | + | |
| 787 | + | |
| 788 | + | |
| 789 | + | |
| 790 | + | |
778 | 791 | | |
779 | 792 | | |
780 | 793 | | |
| |||
0 commit comments