Repository navigation
Expose list membership with SQL null semantics in Java and Python - #10053
robert3005 wants to merge 2 commits into
Conversation
Merging this PR will degrade performance by 11.19%
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ❌ | WallTime | compare_int_constant_neon |
3.8 µs | 4.4 µs | -12.09% |
| ❌ | WallTime | bitpack_blocked_compress_avx2 |
6.7 µs | 7.6 µs | -11.39% |
| ❌ | WallTime | compare_u8_neon |
1.9 µs | 2.1 µs | -11.27% |
| ❌ | WallTime | deferred_bool_neon[i32, PerRowPerRow] |
4.2 µs | 4.7 µs | -10.02% |
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-bindings (446956a) with rk/list-contains-dict-runend (520e97b)
Footnotes
-
359 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. ↩
2aaa1b6 to
1b63fd8
Compare
1b63fd8 to
3151b45
Compare
3151b45 to
b6ffdda
Compare
b6ffdda to
ed99a18
Compare
ed99a18 to
0e3443a
Compare
0e3443a to
2242462
Compare
2242462 to
828a8f7
Compare
828a8f7 to
3dd8f74
Compare
3dd8f74 to
2a51612
Compare
Add Java/JNI list literals, listContains and IN/NOT IN builders. Expose the SQL null-semantics option and in_list in Python, including list literal coercion, public exports, typing, documentation and regression coverage. Signed-off-by: Robert Kruszewski <github@robertk.io>
Signed-off-by: Robert Kruszewski <github@robertk.io>
2a51612 to
446956a
Compare
Summary
Expose the membership expressions from #10052 in Java/JNI and Python, so callers can construct one set-membership expression with either Vortex or SQL null semantics.
Stacked on #10052, which builds on the SQL null semantics in #10057. DuckDB integration follows in #10054.
Changes
listContains,in, andnotIn, plus nonempty, empty, and null list literals and their JNI implementations.list_contains(..., sql_null_semantics=True)andin_list(value, list); negatein_listfor SQLNOT IN.Validation:
cargo clippy -p vortex-jni -p vortex-python --all-targets --all-features -- -D warnings,uvx ty check vortex-python, and Ruff on the changed expression stub passed. Java main and test sources compiled with./gradlew :vortex-jni:compileJava :vortex-jni:compileTestJava -x buildJniLibrary -x makeTestFiles --console=plain(native compilation checked separately with Cargo). Runtime tests and benchmarks were not executed.