@@ -321,16 +321,16 @@ fn hash_fixed_list_array(
321321 hashes_buffer : & mut [ u64 ] ,
322322) -> Result < ( ) > {
323323 let values = Arc :: clone ( array. values ( ) ) ;
324- let value_len = array. value_length ( ) ;
325- let offset_size = value_len as usize / array. len ( ) ;
324+ let value_length = array. value_length ( ) as usize ;
326325 let nulls = array. nulls ( ) ;
327326 let mut values_hashes = vec ! [ 0u64 ; values. len( ) ] ;
328327 create_hashes ( & [ values] , random_state, & mut values_hashes) ?;
329328 if let Some ( nulls) = nulls {
330329 for i in 0 ..array. len ( ) {
331330 if nulls. is_valid ( i) {
332331 let hash = & mut hashes_buffer[ i] ;
333- for values_hash in & values_hashes[ i * offset_size..( i + 1 ) * offset_size]
332+ for values_hash in
333+ & values_hashes[ i * value_length..( i + 1 ) * value_length]
334334 {
335335 * hash = combine_hashes ( * hash, * values_hash) ;
336336 }
@@ -339,7 +339,7 @@ fn hash_fixed_list_array(
339339 } else {
340340 for i in 0 ..array. len ( ) {
341341 let hash = & mut hashes_buffer[ i] ;
342- for values_hash in & values_hashes[ i * offset_size ..( i + 1 ) * offset_size ] {
342+ for values_hash in & values_hashes[ i * value_length ..( i + 1 ) * value_length ] {
343343 * hash = combine_hashes ( * hash, * values_hash) ;
344344 }
345345 }
@@ -454,6 +454,16 @@ mod tests {
454454 Ok ( ( ) )
455455 }
456456
457+ #[ test]
458+ fn create_hashes_for_empty_fixed_size_lit ( ) -> Result < ( ) > {
459+ let empty_array = FixedSizeListBuilder :: new ( StringBuilder :: new ( ) , 1 ) . finish ( ) ;
460+ let random_state = RandomState :: with_seeds ( 0 , 0 , 0 , 0 ) ;
461+ let hashes_buff = & mut vec ! [ 0 ; 0 ] ;
462+ let hashes = create_hashes ( & [ Arc :: new ( empty_array) ] , & random_state, hashes_buff) ?;
463+ assert_eq ! ( hashes, & Vec :: <u64 >:: new( ) ) ;
464+ Ok ( ( ) )
465+ }
466+
457467 #[ test]
458468 fn create_hashes_for_float_arrays ( ) -> Result < ( ) > {
459469 let f32_arr = Arc :: new ( Float32Array :: from ( vec ! [ 0.12 , 0.5 , 1f32 , 444.7 ] ) ) ;
0 commit comments