Cast pushdown for duckdb#8620
Conversation
a3ecf3a to
2ae987d
Compare
Merging this PR will improve performance by 20.87%
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ❌ | Simulation | slice_empty_vortex |
339.4 ns | 397.8 ns | -14.66% |
| ⚡ | Simulation | chunked_bool_canonical_into[(1000, 10)] |
26.9 µs | 15.9 µs | +69.52% |
| ⚡ | Simulation | bitwise_not_vortex_buffer_mut[128] |
273.6 ns | 215.3 ns | +27.1% |
| ⚡ | Simulation | bitwise_not_vortex_buffer_mut[1024] |
333.9 ns | 275.6 ns | +21.17% |
| ⚡ | Simulation | bitwise_not_vortex_buffer_mut[2048] |
427.8 ns | 369.4 ns | +15.79% |
Tip
Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.
Comparing myrrc/duckdb-cast-pushdown (c7fd89e) with develop (00c39e8)
Footnotes
-
4 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. ↩
2ae987d to
c7fd89e
Compare
|
What about constant+bool arrays? |
| .cast(DType::Primitive(target, Nullability::NonNullable)) | ||
| .unwrap(); | ||
| let out = out.execute::<Canonical>(&mut ctx).unwrap().into_array(); | ||
| assert_eq!(out.len(), 3); |
There was a problem hiding this comment.
We only assert the length here not the type.
Depends on #8621