diff --git a/arrow/benches/row_format.rs b/arrow/benches/row_format.rs index 4dd7a6ae303b..b5cc124a4772 100644 --- a/arrow/benches/row_format.rs +++ b/arrow/benches/row_format.rs @@ -23,7 +23,8 @@ use arrow::array::ArrayRef; use arrow::datatypes::{Int64Type, UInt64Type}; use arrow::row::{RowConverter, SortField}; use arrow::util::bench_util::{ - create_primitive_array, create_string_array_with_len, create_string_dict_array, + create_dict_from_values, create_primitive_array, create_string_array, + create_string_array_with_len, create_string_dict_array, }; use arrow_array::types::Int32Type; use arrow_array::Array; @@ -94,6 +95,21 @@ fn row_bench(c: &mut Criterion) { vec![Arc::new(create_string_dict_array::(4096, 0.5, 100)) as ArrayRef]; do_bench(c, "4096 string_dictionary(100, 0.5)", cols.clone()); + let values = create_string_array::(10, 0.); + let dict = create_dict_from_values::(4096, 0., &values); + let cols = vec![Arc::new(dict) as ArrayRef]; + do_bench(c, "4096 string_dictionary_low_cardinality(10, 0)", cols); + + let values = create_string_array::(30, 0.); + let dict = create_dict_from_values::(4096, 0., &values); + let cols = vec![Arc::new(dict) as ArrayRef]; + do_bench(c, "4096 string_dictionary_low_cardinality(30, 0)", cols); + + let values = create_string_array::(100, 0.); + let dict = create_dict_from_values::(4096, 0., &values); + let cols = vec![Arc::new(dict) as ArrayRef]; + do_bench(c, "4096 string_dictionary_low_cardinality(100, 0)", cols); + let cols = vec![ Arc::new(create_string_array_with_len::(4096, 0.5, 20)) as ArrayRef, Arc::new(create_string_array_with_len::(4096, 0., 30)) as ArrayRef,