Add SQL null semantics to list_contains - #10057
Conversation
Merging this PR will degrade performance by 5.18%
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ❌ | Simulation | sum_i64 |
193.3 µs | 224.6 µs | -13.94% |
| ❌ | Simulation | sum_v2_i64 |
193.8 µs | 225 µs | -13.85% |
| ⚡ | WallTime | dict_canonicalize_gt_u8_neon[1000000] |
561.6 µs | 488.4 µs | +14.98% |
Tip
Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.
Comparing rk/list-contains-sql-null-semantics (de591fc) with develop (52e6407)
Footnotes
-
503 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports. ↩
70a4ae8 to
339690d
Compare
cfc73a6 to
b63d5e9
Compare
Add explicit SQL three-valued membership semantics, including nullable return types, expression helpers, option serialization, and propagation through sequence kernels. Use SQL semantics for DataFusion IN conversion. Retain the existing comparison/OR evaluation for constant sets. Set preparation and single-pass probes follow in the next change. Include null-semantics regressions for scalar and column inputs, empty and null lists, sequence fallback, serialization, and DataFusion. Signed-off-by: Robert Kruszewski <github@robertk.io>
Remove the unsupported trailing macro comma and clone the schema Arc explicitly to satisfy the repository lint configuration. Signed-off-by: Robert Kruszewski <github@robertk.io>
Signed-off-by: Robert Kruszewski <github@robertk.io>
Enable the vortex-array test harness explicitly for DataFusion tests so standalone test compilation does not depend on features enabled by other workspace packages. Signed-off-by: Robert Kruszewski <github@robertk.io>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Robert Kruszewski <github@robertk.io>
b63d5e9 to
de591fc
Compare
Add explicit SQL three-valued membership semantics to
list_contains. A nonmatch against a list containing null yields null, soNOT INdoes not admit that row. Regular semantics that flush null to false are still present