1818extern crate criterion;
1919
2020use arrow:: array:: { ArrayRef , StringArray , StringViewBuilder } ;
21+ use arrow:: datatypes:: DataType ;
2122use arrow:: util:: bench_util:: {
2223 create_string_array_with_len, create_string_view_array_with_len,
2324} ;
2425use criterion:: { black_box, criterion_group, criterion_main, Criterion } ;
25- use datafusion_expr:: ColumnarValue ;
26+ use datafusion_expr:: { ColumnarValue , ScalarFunctionArgs } ;
2627use datafusion_functions:: string;
2728use std:: sync:: Arc ;
2829
@@ -125,8 +126,12 @@ fn criterion_benchmark(c: &mut Criterion) {
125126 let args = create_args1 ( size, 32 ) ;
126127 c. bench_function ( & format ! ( "lower_all_values_are_ascii: {}" , size) , |b| {
127128 b. iter ( || {
128- // TODO use invoke_with_args
129- black_box ( lower. invoke_batch ( & args, size) )
129+ let args_cloned = args. clone ( ) ;
130+ black_box ( lower. invoke_with_args ( ScalarFunctionArgs {
131+ args : args_cloned,
132+ number_rows : size,
133+ return_type : & DataType :: Utf8 ,
134+ } ) )
130135 } )
131136 } ) ;
132137
@@ -135,8 +140,12 @@ fn criterion_benchmark(c: &mut Criterion) {
135140 & format ! ( "lower_the_first_value_is_nonascii: {}" , size) ,
136141 |b| {
137142 b. iter ( || {
138- // TODO use invoke_with_args
139- black_box ( lower. invoke_batch ( & args, size) )
143+ let args_cloned = args. clone ( ) ;
144+ black_box ( lower. invoke_with_args ( ScalarFunctionArgs {
145+ args : args_cloned,
146+ number_rows : size,
147+ return_type : & DataType :: Utf8 ,
148+ } ) )
140149 } )
141150 } ,
142151 ) ;
@@ -146,8 +155,12 @@ fn criterion_benchmark(c: &mut Criterion) {
146155 & format ! ( "lower_the_middle_value_is_nonascii: {}" , size) ,
147156 |b| {
148157 b. iter ( || {
149- // TODO use invoke_with_args
150- black_box ( lower. invoke_batch ( & args, size) )
158+ let args_cloned = args. clone ( ) ;
159+ black_box ( lower. invoke_with_args ( ScalarFunctionArgs {
160+ args : args_cloned,
161+ number_rows : size,
162+ return_type : & DataType :: Utf8 ,
163+ } ) )
151164 } )
152165 } ,
153166 ) ;
@@ -167,8 +180,12 @@ fn criterion_benchmark(c: &mut Criterion) {
167180 & format ! ( "lower_all_values_are_ascii_string_views: size: {}, str_len: {}, null_density: {}, mixed: {}" ,
168181 size, str_len, null_density, mixed) ,
169182 |b| b. iter ( || {
170- // TODO use invoke_with_args
171- black_box ( lower. invoke_batch ( & args, size) )
183+ let args_cloned = args. clone ( ) ;
184+ black_box ( lower. invoke_with_args ( ScalarFunctionArgs {
185+ args : args_cloned,
186+ number_rows : size,
187+ return_type : & DataType :: Utf8 ,
188+ } ) )
172189 } ) ,
173190 ) ;
174191
@@ -177,8 +194,12 @@ fn criterion_benchmark(c: &mut Criterion) {
177194 & format ! ( "lower_all_values_are_ascii_string_views: size: {}, str_len: {}, null_density: {}, mixed: {}" ,
178195 size, str_len, null_density, mixed) ,
179196 |b| b. iter ( || {
180- // TODO use invoke_with_args
181- black_box ( lower. invoke_batch ( & args, size) )
197+ let args_cloned = args. clone ( ) ;
198+ black_box ( lower. invoke_with_args ( ScalarFunctionArgs {
199+ args : args_cloned,
200+ number_rows : size,
201+ return_type : & DataType :: Utf8 ,
202+ } ) )
182203 } ) ,
183204 ) ;
184205
@@ -187,8 +208,12 @@ fn criterion_benchmark(c: &mut Criterion) {
187208 & format ! ( "lower_some_values_are_nonascii_string_views: size: {}, str_len: {}, non_ascii_density: {}, null_density: {}, mixed: {}" ,
188209 size, str_len, 0.1 , null_density, mixed) ,
189210 |b| b. iter ( || {
190- // TODO use invoke_with_args
191- black_box ( lower. invoke_batch ( & args, size) )
211+ let args_cloned = args. clone ( ) ;
212+ black_box ( lower. invoke_with_args ( ScalarFunctionArgs {
213+ args : args_cloned,
214+ number_rows : size,
215+ return_type : & DataType :: Utf8 ,
216+ } ) )
192217 } ) ,
193218 ) ;
194219 }
0 commit comments