Skip to content

Compare primitive values through the shared RowFn executor - #10676

Draft
connortsui20 wants to merge 2 commits into
ct/row-fn-cleanup/fused-executionfrom
ct/row-fn-cleanup/primitive-compare
Draft

connortsui20 wants to merge 2 commits into
ct/row-fn-cleanup/fused-executionfrom
ct/row-fn-cleanup/primitive-compare

Correct the NaN ordering in the primitive comparison docs

0bd1d53
Select commit
Loading
Failed to load commit list.
CodSpeed / CodSpeed Performance Analysis failed Oct 27, 2026 in 39s

Performance Regression: -3.85%

4 warnings

⚠️ Walltime results may be unreliable

Some benchmarks used the Walltime instrument outside CodSpeed Macro Runners, which can make the results inconsistent.

Learn more about Macro Runners

See affected benchmarks

⚠️ Unable to measure the execution of 1 benchmark

This benchmark measured no execution time, so its result is not comparable and counts as unchanged. This usually happens when the compiler removes the code under test.

Prevent compiler optimizations

See affected benchmarks

⚠️ 2 benchmarks are dominated by system calls

System calls cannot be simulated consistently and are left out of the measure. The reported value understates the real cost. Switch to the Walltime instrument to measure them.

Learn more about system calls

See affected benchmarks

⚠️ Base and head ran on different runner types

Some benchmarks with significant performance changes were compared across different runner types, so the changes might not come from the code. Run base and head on the same runner type, or use CodSpeed Macro Runners for more stable results.

Learn more about Macro Runners

Open the report in CodSpeed to investigate

⚡ 17 improved benchmarks
❌ 18 regressed benchmarks
✅ 2169 untouched benchmarks
⏩ 370 skipped benchmarks1
🗄️ 30 archived benchmarks run2

Warning

Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Mode Benchmark BASE HEAD Efficiency
❌ Walltime threshold_neon[64] 2.5 µs 4 µs -36.86%
❌ Walltime filter_neon[64] 1.7 µs 2.4 µs -29.53%
❌ Walltime threshold_neon[80] 3.4 µs 4.7 µs -26.61%
❌ CPU Simulation decode_bool_nullable[10000_2_alternating_mostly_valid] 354.1 µs 469.7 µs -24.61%
❌ CPU Simulation decode_bool_nullable[10000_10_mostly_true_mostly_valid] 86.7 µs 110.3 µs -21.42%
❌ CPU Simulation decode_bool_nullable[10000_10_alternating_mostly_null] 87.2 µs 110.6 µs -21.16%
❌ CPU Simulation bench_compare_varbin[(50000, 2)] 134.6 µs 164.6 µs -18.25%
❌ CPU Simulation bench_compare_varbin[(50000, 64)] 136.2 µs 166.2 µs -18.05%
❌ CPU Simulation decode_bool_nullable[10000_10_alternating_half_valid] 103.8 µs 126.6 µs -18.02%
❌ CPU Simulation decode_bool_nullable[10000_10_mostly_true_half_valid] 106 µs 129 µs -17.82%
❌ CPU Simulation decode_bool_nullable[10000_10_mostly_true_mostly_null] 105.9 µs 128.7 µs -17.67%
❌ CPU Simulation decode_bool_nullable[10000_10_alternating_mostly_valid] 115.6 µs 138.9 µs -16.76%
❌ CPU Simulation bench_compare_sliced_dict_varbinview[(7500, 10000)] 195.8 µs 230 µs -14.87%
❌ Walltime scalar_subtract_neon 10.7 µs 12.4 µs -13.75%
❌ Walltime filter_neon[80] 2.5 µs 2.9 µs -12.72%
❌ CPU Simulation bench_compare_sliced_dict_varbinview[(10000, 10000)] 207.8 µs 236.1 µs -11.99%
❌ CPU Simulation bench_compare_sliced_dict_varbinview[(1000, 10000)] 81 µs 91.7 µs -11.62%
❌ Walltime threshold_avx512[80] 2.5 µs 2.8 µs -10.04%
⚡ Walltime compare_u64_avx2 3.7 µs 2.8 µs +29.29%
⚡ Walltime compare_float_avx2 4.8 µs 3.8 µs +27.12%
... ... ... ... ... ...

ℹ️ Only the first 20 benchmarks are displayed. Go to the app to view all benchmarks.

Tip

Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.


Comparing ct/row-fn-cleanup/primitive-compare (0bd1d53) with ct/row-fn-cleanup/fused-execution (712ed09)

Open in CodSpeed

Footnotes

  1. 370 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. ↩

  2. 30 benchmarks were run, but are now archived. If they were deleted in another branch, consider rebasing to remove them from the report. Instead if they were added back, click here to restore them. ↩