@@ -1840,12 +1840,12 @@ impl ScalarValue {
18401840 let arr = Decimal128Array :: from ( vals)
18411841 . with_precision_and_scale ( * precision, * scale)
18421842 . unwrap ( ) ;
1843- wrap_into_list_array ( Arc :: new ( arr) )
1843+ wrap_into_list_array ( & [ & arr] ) . unwrap ( )
18441844 }
18451845
18461846 DataType :: Null => {
18471847 let arr = new_null_array ( & DataType :: Null , values. len ( ) ) ;
1848- wrap_into_list_array ( arr)
1848+ wrap_into_list_array ( & [ & arr] ) . unwrap ( )
18491849 }
18501850 _ => panic ! (
18511851 "Unsupported data type {:?} for ScalarValue::list_to_array" ,
@@ -2242,18 +2242,14 @@ impl ScalarValue {
22422242 let list_array = as_list_array ( array) ;
22432243 let nested_array = list_array. value ( index) ;
22442244 // Produces a single element `ListArray` with the value at `index`.
2245- let arr = Arc :: new ( wrap_into_list_array ( nested_array) ) ;
2246-
2247- ScalarValue :: List ( arr)
2245+ ScalarValue :: List ( Arc :: new ( wrap_into_list_array ( & [ & nested_array] ) ?) )
22482246 }
22492247 // TODO: There is no test for FixedSizeList now, add it later
22502248 DataType :: FixedSizeList ( _, _) => {
22512249 let list_array = as_fixed_size_list_array ( array) ?;
22522250 let nested_array = list_array. value ( index) ;
22532251 // Produces a single element `ListArray` with the value at `index`.
2254- let arr = Arc :: new ( wrap_into_list_array ( nested_array) ) ;
2255-
2256- ScalarValue :: List ( arr)
2252+ ScalarValue :: List ( Arc :: new ( wrap_into_list_array ( & [ & nested_array] ) ?) )
22572253 }
22582254 DataType :: Date32 => {
22592255 typed_cast ! ( array, index, Date32Array , Date32 )
@@ -3236,11 +3232,12 @@ mod tests {
32363232
32373233 let array = ScalarValue :: new_list ( scalars. as_slice ( ) , & DataType :: Utf8 ) ;
32383234
3239- let expected = wrap_into_list_array ( Arc :: new ( StringArray :: from ( vec ! [
3235+ let expected = wrap_into_list_array ( & [ & StringArray :: from ( vec ! [
32403236 "rust" ,
32413237 "arrow" ,
32423238 "data-fusion" ,
3243- ] ) ) ) ;
3239+ ] ) ] )
3240+ . unwrap ( ) ;
32443241 let result = as_list_array ( & array) ;
32453242 assert_eq ! ( result, & expected) ;
32463243 }
@@ -3274,10 +3271,10 @@ mod tests {
32743271
32753272 #[ test]
32763273 fn iter_to_array_string_test ( ) {
3277- let arr1 =
3278- wrap_into_list_array ( Arc :: new ( StringArray :: from ( vec ! [ "foo" , "bar" , "baz" ] ) ) ) ;
3274+ let arr1 = wrap_into_list_array ( & [ & StringArray :: from ( vec ! [ "foo" , "bar" , "baz" ] ) ] )
3275+ . unwrap ( ) ;
32793276 let arr2 =
3280- wrap_into_list_array ( Arc :: new ( StringArray :: from ( vec ! [ "rust" , "world" ] ) ) ) ;
3277+ wrap_into_list_array ( & [ & StringArray :: from ( vec ! [ "rust" , "world" ] ) ] ) . unwrap ( ) ;
32813278
32823279 let scalars = vec ! [
32833280 ScalarValue :: List ( Arc :: new( arr1) ) ,
@@ -4519,13 +4516,16 @@ mod tests {
45194516 // Define list-of-structs scalars
45204517
45214518 let nl0_array = ScalarValue :: iter_to_array ( vec ! [ s0. clone( ) , s1. clone( ) ] ) . unwrap ( ) ;
4522- let nl0 = ScalarValue :: List ( Arc :: new ( wrap_into_list_array ( nl0_array) ) ) ;
4519+ let nl0 =
4520+ ScalarValue :: List ( Arc :: new ( wrap_into_list_array ( & [ & nl0_array] ) . unwrap ( ) ) ) ;
45234521
45244522 let nl1_array = ScalarValue :: iter_to_array ( vec ! [ s2. clone( ) ] ) . unwrap ( ) ;
4525- let nl1 = ScalarValue :: List ( Arc :: new ( wrap_into_list_array ( nl1_array) ) ) ;
4523+ let nl1 =
4524+ ScalarValue :: List ( Arc :: new ( wrap_into_list_array ( & [ & nl1_array] ) . unwrap ( ) ) ) ;
45264525
45274526 let nl2_array = ScalarValue :: iter_to_array ( vec ! [ s1. clone( ) ] ) . unwrap ( ) ;
4528- let nl2 = ScalarValue :: List ( Arc :: new ( wrap_into_list_array ( nl2_array) ) ) ;
4527+ let nl2 =
4528+ ScalarValue :: List ( Arc :: new ( wrap_into_list_array ( & [ & nl2_array] ) . unwrap ( ) ) ) ;
45294529
45304530 // iter_to_array for list-of-struct
45314531 let array = ScalarValue :: iter_to_array ( vec ! [ nl0, nl1, nl2] ) . unwrap ( ) ;
0 commit comments