From 0b6250bb3b150058703d9ef47370b9e80a022493 Mon Sep 17 00:00:00 2001 From: Alfonso Subiotto Marques Date: Wed, 29 Apr 2026 17:11:13 +0200 Subject: [PATCH] chore[benches]: add REE interleave benchmarks In preparation for a specialized interleave kernel. Signed-off-by: Alfonso Subiotto Marques --- arrow/benches/interleave_kernels.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/arrow/benches/interleave_kernels.rs b/arrow/benches/interleave_kernels.rs index 0688bb79adb1..4c4f5364ffe6 100644 --- a/arrow/benches/interleave_kernels.rs +++ b/arrow/benches/interleave_kernels.rs @@ -150,6 +150,14 @@ fn add_benchmark(c: &mut Criterion) { ) }; + let ree_run_ends = Int32Array::from_iter_values((1..=64).map(|i| i * 16)); + let ree_i64_values = create_primitive_array::(64, 0.0); + let ree_i64 = RunArray::::try_new(&ree_run_ends, &ree_i64_values).unwrap(); + + let dict_str_values = create_string_array_with_len::(20, 0.0, 12); + let dict_for_ree = create_dict_from_values::(64, 0.0, &dict_str_values); + let ree_dict = RunArray::::try_new(&ree_run_ends, &dict_for_ree).unwrap(); + let cases: &[(&str, &dyn Array)] = &[ ("i32(0.0)", &i32), ("i32(0.5)", &i32_opt), @@ -175,6 +183,8 @@ fn add_benchmark(c: &mut Criterion) { ("list_view(0.1,0.1,20)", &list_view_i64), ("list_view(0.0,0.0,20)", &list_view_i64_no_nulls), ("list_view_overlapping(80x,20)", &list_view_overlapping), + ("ree_i32(64 runs)", &ree_i64), + ("ree_i32>(64 runs)", &ree_dict), ]; for (prefix, base) in cases {