Commit 1609331
feat(gfql/polars): native toFloat, collect/collect_distinct, WHERE IN — NIE->native
Three previously-NIE cypher row surfaces now run natively on engine='polars',
parity-validated vs the pandas oracle across pandas/cudf/polars/polars-gpu:
- toFloat(x): int/uint/bool/float -> Float64 (NaN preserved; no fillna step,
unlike toInteger — float64 has no null sentinel). Non-numeric String declines
(NIE) because pandas astype(float) RAISES, not null-on-failure.
- collect(x) / collect(DISTINCT x) aggregations complete the native group_by
surface: drop nulls, preserve within-group first-occurrence order (collect
keeps dups, DISTINCT dedups keep-first), all-null group -> []. drop_nulls()
/unique(maintain_order=True), no .implode().
- where_rows / WHERE ... IN [list] membership -> is_in (null cell excluded, 3VL).
Removed the stale tofloat conformance-ledger waiver; +tofloat matrix cases,
tofloat-string-NIE test, collect parity test. Validated on dgx: 4242 gfql tests
pass, conformance matrix+ledger+row-pipeline green, 4-engine parity, mypy clean.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>1 parent e295ddf commit 1609331
4 files changed
Lines changed: 78 additions & 6 deletions
File tree
- graphistry
- compute/gfql/lazy/engine/polars
- tests/compute/gfql
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
| 19 | + | |
19 | 20 | | |
20 | 21 | | |
21 | 22 | | |
| |||
Lines changed: 39 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
190 | 190 | | |
191 | 191 | | |
192 | 192 | | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
193 | 208 | | |
194 | 209 | | |
195 | 210 | | |
| |||
663 | 678 | | |
664 | 679 | | |
665 | 680 | | |
666 | | - | |
667 | | - | |
668 | | - | |
| 681 | + | |
| 682 | + | |
| 683 | + | |
| 684 | + | |
| 685 | + | |
| 686 | + | |
| 687 | + | |
| 688 | + | |
| 689 | + | |
669 | 690 | | |
670 | 691 | | |
671 | 692 | | |
| |||
694 | 715 | | |
695 | 716 | | |
696 | 717 | | |
697 | | - | |
698 | | - | |
| 718 | + | |
| 719 | + | |
699 | 720 | | |
700 | 721 | | |
701 | 722 | | |
| |||
718 | 739 | | |
719 | 740 | | |
720 | 741 | | |
| 742 | + | |
| 743 | + | |
| 744 | + | |
| 745 | + | |
| 746 | + | |
| 747 | + | |
| 748 | + | |
| 749 | + | |
| 750 | + | |
| 751 | + | |
| 752 | + | |
| 753 | + | |
| 754 | + | |
721 | 755 | | |
722 | 756 | | |
723 | 757 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
176 | 176 | | |
177 | 177 | | |
178 | 178 | | |
179 | | - | |
180 | 179 | | |
181 | 180 | | |
182 | 181 | | |
| |||
Lines changed: 38 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
263 | 263 | | |
264 | 264 | | |
265 | 265 | | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
266 | 269 | | |
267 | 270 | | |
268 | 271 | | |
| |||
306 | 309 | | |
307 | 310 | | |
308 | 311 | | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
309 | 347 | | |
310 | 348 | | |
311 | 349 | | |
| |||
0 commit comments