@@ -28,7 +28,7 @@ impl SearchSortedFn<PrimitiveArray> for PrimitiveEncoding {
2828 let pvalue: $T = value. cast( array. dtype( ) ) ?. try_into( ) ?;
2929 Ok ( SearchSortedPrimitive :: new( array) . search_sorted( & pvalue, side) )
3030 }
31- Validity :: AllInvalid => Ok ( SearchResult :: NotFound ( 0 ) ) ,
31+ Validity :: AllInvalid => Ok ( SearchResult :: NotFound ( array . len ( ) ) ) ,
3232 Validity :: Array ( _) => {
3333 let pvalue: $T = value. cast( array. dtype( ) ) ?. try_into( ) ?;
3434 Ok ( SearchSortedNullsFirst :: new( array) . search_sorted( & pvalue, side) )
@@ -53,7 +53,7 @@ impl SearchSortedUsizeFn<PrimitiveArray> for PrimitiveEncoding {
5353 // null-free search
5454 Ok ( SearchSortedPrimitive :: new( array) . search_sorted( & pvalue, side) )
5555 }
56- Validity :: AllInvalid => Ok ( SearchResult :: NotFound ( 0 ) ) ,
56+ Validity :: AllInvalid => Ok ( SearchResult :: NotFound ( array . len ( ) ) ) ,
5757 Validity :: Array ( _) => {
5858 // null-aware search
5959 Ok ( SearchSortedNullsFirst :: new( array) . search_sorted( & pvalue, side) )
@@ -192,4 +192,14 @@ mod test {
192192 SearchResult :: NotFound ( 3 )
193193 ) ;
194194 }
195+
196+ #[ test]
197+ fn search_sorted_all_nulls ( ) {
198+ let values = PrimitiveArray :: new ( buffer ! [ 1u16 , 2 , 3 ] , Validity :: AllInvalid ) . into_array ( ) ;
199+
200+ assert_eq ! (
201+ search_sorted( & values, 0 , SearchSortedSide :: Left ) . unwrap( ) ,
202+ SearchResult :: NotFound ( 3 )
203+ ) ;
204+ }
195205}
0 commit comments