@@ -81,9 +81,12 @@ impl logical_expr::Accumulator for BytesModeAccumulator {
8181 . map ( |& count| scalar:: ScalarValue :: Int64 ( Some ( count) ) )
8282 . collect ( ) ;
8383
84- let values_scalar = scalar:: ScalarValue :: new_list_nullable ( & values, & arrow:: datatypes:: DataType :: Utf8 ) ;
85- let frequencies_scalar =
86- scalar:: ScalarValue :: new_list_nullable ( & frequencies, & arrow:: datatypes:: DataType :: Int64 ) ;
84+ let values_scalar =
85+ scalar:: ScalarValue :: new_list_nullable ( & values, & arrow:: datatypes:: DataType :: Utf8 ) ;
86+ let frequencies_scalar = scalar:: ScalarValue :: new_list_nullable (
87+ & frequencies,
88+ & arrow:: datatypes:: DataType :: Int64 ,
89+ ) ;
8790
8891 Ok ( vec ! [
8992 scalar:: ScalarValue :: List ( values_scalar) ,
@@ -97,7 +100,8 @@ impl logical_expr::Accumulator for BytesModeAccumulator {
97100 }
98101
99102 let values_array = arrow:: array:: as_string_array ( & states[ 0 ] ) ;
100- let counts_array = common:: cast:: as_primitive_array :: < arrow:: datatypes:: Int64Type > ( & states[ 1 ] ) ?;
103+ let counts_array =
104+ common:: cast:: as_primitive_array :: < arrow:: datatypes:: Int64Type > ( & states[ 1 ] ) ?;
101105
102106 for ( i, value_option) in values_array. iter ( ) . enumerate ( ) {
103107 if let Some ( value) = value_option {
@@ -131,7 +135,9 @@ impl logical_expr::Accumulator for BytesModeAccumulator {
131135
132136 match mode {
133137 Some ( result) => match & self . data_type {
134- arrow:: datatypes:: DataType :: Utf8View => Ok ( scalar:: ScalarValue :: Utf8View ( Some ( result) ) ) ,
138+ arrow:: datatypes:: DataType :: Utf8View => {
139+ Ok ( scalar:: ScalarValue :: Utf8View ( Some ( result) ) )
140+ }
135141 _ => Ok ( scalar:: ScalarValue :: Utf8 ( Some ( result) ) ) ,
136142 } ,
137143 None => match & self . data_type {
@@ -142,7 +148,8 @@ impl logical_expr::Accumulator for BytesModeAccumulator {
142148 }
143149
144150 fn size ( & self ) -> usize {
145- self . value_counts . capacity ( ) * mem:: size_of :: < ( String , i64 ) > ( ) + mem:: size_of_val ( & self . data_type )
151+ self . value_counts . capacity ( ) * mem:: size_of :: < ( String , i64 ) > ( )
152+ + mem:: size_of_val ( & self . data_type )
146153 }
147154}
148155
@@ -194,8 +201,11 @@ mod tests {
194201 #[ test]
195202 fn test_mode_accumulator_all_nulls_utf8 ( ) -> error:: Result < ( ) > {
196203 let mut acc = BytesModeAccumulator :: new ( & arrow:: datatypes:: DataType :: Utf8 ) ;
197- let values: arrow:: array:: ArrayRef =
198- sync:: Arc :: new ( arrow:: array:: StringArray :: from ( vec ! [ None as Option <& str >, None , None ] ) ) ;
204+ let values: arrow:: array:: ArrayRef = sync:: Arc :: new ( arrow:: array:: StringArray :: from ( vec ! [
205+ None as Option <& str >,
206+ None ,
207+ None ,
208+ ] ) ) ;
199209
200210 acc. update_batch ( & [ values] ) ?;
201211 let result = acc. evaluate ( ) ?;
@@ -228,48 +238,57 @@ mod tests {
228238 #[ test]
229239 fn test_mode_accumulator_single_mode_utf8view ( ) -> error:: Result < ( ) > {
230240 let mut acc = BytesModeAccumulator :: new ( & arrow:: datatypes:: DataType :: Utf8View ) ;
231- let values: arrow:: array:: ArrayRef = sync:: Arc :: new ( arrow:: array:: GenericByteViewArray :: from ( vec ! [
232- Some ( "apple" ) ,
233- Some ( "banana" ) ,
234- Some ( "apple" ) ,
235- Some ( "orange" ) ,
236- Some ( "banana" ) ,
237- Some ( "apple" ) ,
238- ] ) ) ;
241+ let values: arrow:: array:: ArrayRef =
242+ sync:: Arc :: new ( arrow:: array:: GenericByteViewArray :: from ( vec ! [
243+ Some ( "apple" ) ,
244+ Some ( "banana" ) ,
245+ Some ( "apple" ) ,
246+ Some ( "orange" ) ,
247+ Some ( "banana" ) ,
248+ Some ( "apple" ) ,
249+ ] ) ) ;
239250
240251 acc. update_batch ( & [ values] ) ?;
241252 let result = acc. evaluate ( ) ?;
242253
243- assert_eq ! ( result, scalar:: ScalarValue :: Utf8View ( Some ( "apple" . to_string( ) ) ) ) ;
254+ assert_eq ! (
255+ result,
256+ scalar:: ScalarValue :: Utf8View ( Some ( "apple" . to_string( ) ) )
257+ ) ;
244258 Ok ( ( ) )
245259 }
246260
247261 #[ test]
248262 fn test_mode_accumulator_tie_utf8view ( ) -> error:: Result < ( ) > {
249263 let mut acc = BytesModeAccumulator :: new ( & arrow:: datatypes:: DataType :: Utf8View ) ;
250- let values: arrow:: array:: ArrayRef = sync:: Arc :: new ( arrow:: array:: GenericByteViewArray :: from ( vec ! [
251- Some ( "apple" ) ,
252- Some ( "banana" ) ,
253- Some ( "apple" ) ,
254- Some ( "orange" ) ,
255- Some ( "banana" ) ,
256- ] ) ) ;
264+ let values: arrow:: array:: ArrayRef =
265+ sync:: Arc :: new ( arrow:: array:: GenericByteViewArray :: from ( vec ! [
266+ Some ( "apple" ) ,
267+ Some ( "banana" ) ,
268+ Some ( "apple" ) ,
269+ Some ( "orange" ) ,
270+ Some ( "banana" ) ,
271+ ] ) ) ;
257272
258273 acc. update_batch ( & [ values] ) ?;
259274 let result = acc. evaluate ( ) ?;
260275
261- assert_eq ! ( result, scalar:: ScalarValue :: Utf8View ( Some ( "apple" . to_string( ) ) ) ) ;
276+ assert_eq ! (
277+ result,
278+ scalar:: ScalarValue :: Utf8View ( Some ( "apple" . to_string( ) ) )
279+ ) ;
262280 Ok ( ( ) )
263281 }
264282
265283 #[ test]
266284 fn test_mode_accumulator_all_nulls_utf8view ( ) -> error:: Result < ( ) > {
267285 let mut acc = BytesModeAccumulator :: new ( & arrow:: datatypes:: DataType :: Utf8View ) ;
268- let values: arrow:: array:: ArrayRef = sync:: Arc :: new ( arrow:: array:: GenericByteViewArray :: from ( vec ! [
269- None as Option <& str >,
270- None ,
271- None ,
272- ] ) ) ;
286+ let values: arrow:: array:: ArrayRef =
287+ sync:: Arc :: new ( arrow:: array:: GenericByteViewArray :: from ( vec ! [
288+ None as Option <& str >,
289+ None ,
290+ None ,
291+ ] ) ) ;
273292
274293 acc. update_batch ( & [ values] ) ?;
275294 let result = acc. evaluate ( ) ?;
@@ -281,21 +300,25 @@ mod tests {
281300 #[ test]
282301 fn test_mode_accumulator_with_nulls_utf8view ( ) -> error:: Result < ( ) > {
283302 let mut acc = BytesModeAccumulator :: new ( & arrow:: datatypes:: DataType :: Utf8View ) ;
284- let values: arrow:: array:: ArrayRef = sync:: Arc :: new ( arrow:: array:: GenericByteViewArray :: from ( vec ! [
285- Some ( "apple" ) ,
286- None ,
287- Some ( "banana" ) ,
288- Some ( "apple" ) ,
289- None ,
290- None ,
291- None ,
292- Some ( "banana" ) ,
293- ] ) ) ;
303+ let values: arrow:: array:: ArrayRef =
304+ sync:: Arc :: new ( arrow:: array:: GenericByteViewArray :: from ( vec ! [
305+ Some ( "apple" ) ,
306+ None ,
307+ Some ( "banana" ) ,
308+ Some ( "apple" ) ,
309+ None ,
310+ None ,
311+ None ,
312+ Some ( "banana" ) ,
313+ ] ) ) ;
294314
295315 acc. update_batch ( & [ values] ) ?;
296316 let result = acc. evaluate ( ) ?;
297317
298- assert_eq ! ( result, scalar:: ScalarValue :: Utf8View ( Some ( "apple" . to_string( ) ) ) ) ;
318+ assert_eq ! (
319+ result,
320+ scalar:: ScalarValue :: Utf8View ( Some ( "apple" . to_string( ) ) )
321+ ) ;
299322 Ok ( ( ) )
300323 }
301324}
0 commit comments