Repository navigation
Commit ca6de5e
fix(io): keep nulls when pushing NotEqualTo down to Arrow
An Arrow comparison yields null for a null input, so `field != value` dropped
every row where the column is null. All the other evaluators treat a null as
satisfying NotEqualTo: `_ExpressionEvaluationVisitor.visit_not_equal` returns
`None != value`, `_StrictMetricsEvaluationVisitor` reports ROWS_MUST_MATCH for
a column proven to hold only nulls, and the Arrow NOT IN path already keeps
them because `~isin(...)` is false for a null.
The reference implementation agrees: `Evaluator.notEq` is `!eq`, and `eq`
compares with a nulls-first comparator, so a null never equals the literal.
Keep the null explicitly. NOT IN needs no change.
Co-Authored-By: Claude Code <noreply@anthropic.com>1 parent 75b74cf commit ca6de5e
2 files changed
Lines changed: 19 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
919 | 919 | | |
920 | 920 | | |
921 | 921 | | |
922 | | - | |
| 922 | + | |
| 923 | + | |
| 924 | + | |
| 925 | + | |
923 | 926 | | |
924 | 927 | | |
925 | 928 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
60 | 60 | | |
61 | 61 | | |
62 | 62 | | |
| 63 | + | |
63 | 64 | | |
64 | 65 | | |
65 | 66 | | |
| |||
785 | 786 | | |
786 | 787 | | |
787 | 788 | | |
788 | | - | |
| 789 | + | |
789 | 790 | | |
790 | 791 | | |
791 | 792 | | |
| 793 | + | |
| 794 | + | |
| 795 | + | |
| 796 | + | |
| 797 | + | |
| 798 | + | |
| 799 | + | |
| 800 | + | |
| 801 | + | |
| 802 | + | |
| 803 | + | |
| 804 | + | |
| 805 | + | |
792 | 806 | | |
793 | 807 | | |
794 | 808 | | |
| |||
0 commit comments