Skip to content

Commit 56f6942

Browse files
authored
Fix panic in comparison_kernel benchmarks (#6284)
* Fix panic in comparison_kernel benchmarks * Add other special case equality kernels * Add other benchmarks
1 parent 30db5dc commit 56f6942

File tree

1 file changed

+35
-6
lines changed

1 file changed

+35
-6
lines changed

arrow/benches/comparison_kernels.rs

+35-6
Original file line numberDiff line numberDiff line change
@@ -167,9 +167,9 @@ fn add_benchmark(c: &mut Criterion) {
167167
let string_right = StringArray::from_iter(array_gen);
168168
let string_view_right = StringViewArray::from_iter(string_right.iter());
169169

170-
let scalar = StringArray::new_scalar("xxxx");
170+
let string_scalar = StringArray::new_scalar("xxxx");
171171
c.bench_function("eq scalar StringArray", |b| {
172-
b.iter(|| eq(&scalar, &string_left).unwrap())
172+
b.iter(|| eq(&string_scalar, &string_left).unwrap())
173173
});
174174

175175
c.bench_function("lt scalar StringViewArray", |b| {
@@ -192,8 +192,20 @@ fn add_benchmark(c: &mut Criterion) {
192192
})
193193
});
194194

195-
c.bench_function("eq scalar StringViewArray", |b| {
196-
b.iter(|| eq(&scalar, &string_view_left).unwrap())
195+
// StringViewArray has special handling for strings with length <= 12 and length <= 4
196+
let string_view_scalar = StringViewArray::new_scalar("xxxx");
197+
c.bench_function("eq scalar StringViewArray 4 bytes", |b| {
198+
b.iter(|| eq(&string_view_scalar, &string_view_left).unwrap())
199+
});
200+
201+
let string_view_scalar = StringViewArray::new_scalar("xxxxxx");
202+
c.bench_function("eq scalar StringViewArray 6 bytes", |b| {
203+
b.iter(|| eq(&string_view_scalar, &string_view_left).unwrap())
204+
});
205+
206+
let string_view_scalar = StringViewArray::new_scalar("xxxxxxxxxxxxx");
207+
c.bench_function("eq scalar StringViewArray 13 bytes", |b| {
208+
b.iter(|| eq(&string_view_scalar, &string_view_left).unwrap())
197209
});
198210

199211
c.bench_function("eq StringArray StringArray", |b| {
@@ -236,14 +248,31 @@ fn add_benchmark(c: &mut Criterion) {
236248
b.iter(|| bench_like_utf8view_scalar(&string_view_left, "%xxxx%"))
237249
});
238250

239-
c.bench_function("like_utf8view scalar ends with", |b| {
251+
// StringView has special handling for strings with length <= 12 and length <= 4
252+
c.bench_function("like_utf8view scalar ends with 4 bytes", |b| {
240253
b.iter(|| bench_like_utf8view_scalar(&string_view_left, "%xxxx"))
241254
});
242255

243-
c.bench_function("like_utf8view scalar starts with", |b| {
256+
c.bench_function("like_utf8view scalar ends with 6 bytes", |b| {
257+
b.iter(|| bench_like_utf8view_scalar(&string_view_left, "%xxxxxx"))
258+
});
259+
260+
c.bench_function("like_utf8view scalar ends with 13 bytes", |b| {
261+
b.iter(|| bench_like_utf8view_scalar(&string_view_left, "%xxxxxxxxxxxxx"))
262+
});
263+
264+
c.bench_function("like_utf8view scalar starts with 4 bytes", |b| {
244265
b.iter(|| bench_like_utf8view_scalar(&string_view_left, "xxxx%"))
245266
});
246267

268+
c.bench_function("like_utf8view scalar starts with 6 bytes", |b| {
269+
b.iter(|| bench_like_utf8view_scalar(&string_view_left, "xxxxxx%"))
270+
});
271+
272+
c.bench_function("like_utf8view scalar starts with 13 bytes", |b| {
273+
b.iter(|| bench_like_utf8view_scalar(&string_view_left, "xxxxxxxxxxxxx%"))
274+
});
275+
247276
c.bench_function("like_utf8view scalar complex", |b| {
248277
b.iter(|| bench_like_utf8view_scalar(&string_view_left, "%xx_xx%xxx"))
249278
});

0 commit comments

Comments
 (0)