18
18
extern crate criterion;
19
19
20
20
use arrow:: array:: { ArrayRef , StringArray , StringViewBuilder } ;
21
+ use arrow:: datatypes:: DataType ;
21
22
use arrow:: util:: bench_util:: {
22
23
create_string_array_with_len, create_string_view_array_with_len,
23
24
} ;
24
25
use criterion:: { black_box, criterion_group, criterion_main, Criterion } ;
25
- use datafusion_expr:: ColumnarValue ;
26
+ use datafusion_expr:: { ColumnarValue , ScalarFunctionArgs } ;
26
27
use datafusion_functions:: string;
27
28
use std:: sync:: Arc ;
28
29
@@ -125,8 +126,12 @@ fn criterion_benchmark(c: &mut Criterion) {
125
126
let args = create_args1 ( size, 32 ) ;
126
127
c. bench_function ( & format ! ( "lower_all_values_are_ascii: {}" , size) , |b| {
127
128
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
+ } ) )
130
135
} )
131
136
} ) ;
132
137
@@ -135,8 +140,12 @@ fn criterion_benchmark(c: &mut Criterion) {
135
140
& format ! ( "lower_the_first_value_is_nonascii: {}" , size) ,
136
141
|b| {
137
142
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
+ } ) )
140
149
} )
141
150
} ,
142
151
) ;
@@ -146,8 +155,12 @@ fn criterion_benchmark(c: &mut Criterion) {
146
155
& format ! ( "lower_the_middle_value_is_nonascii: {}" , size) ,
147
156
|b| {
148
157
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
+ } ) )
151
164
} )
152
165
} ,
153
166
) ;
@@ -167,8 +180,12 @@ fn criterion_benchmark(c: &mut Criterion) {
167
180
& format ! ( "lower_all_values_are_ascii_string_views: size: {}, str_len: {}, null_density: {}, mixed: {}" ,
168
181
size, str_len, null_density, mixed) ,
169
182
|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
+ } ) )
172
189
} ) ,
173
190
) ;
174
191
@@ -177,8 +194,12 @@ fn criterion_benchmark(c: &mut Criterion) {
177
194
& format ! ( "lower_all_values_are_ascii_string_views: size: {}, str_len: {}, null_density: {}, mixed: {}" ,
178
195
size, str_len, null_density, mixed) ,
179
196
|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
+ } ) )
182
203
} ) ,
183
204
) ;
184
205
@@ -187,8 +208,12 @@ fn criterion_benchmark(c: &mut Criterion) {
187
208
& format ! ( "lower_some_values_are_nonascii_string_views: size: {}, str_len: {}, non_ascii_density: {}, null_density: {}, mixed: {}" ,
188
209
size, str_len, 0.1 , null_density, mixed) ,
189
210
|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
+ } ) )
192
217
} ) ,
193
218
) ;
194
219
}
0 commit comments