Skip to content

Commit 2d76005

Browse files
authored
Fix PrimitiveArray search_sorted for AllInvalid arrays (#2117)
1 parent a9c75d2 commit 2d76005

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

vortex-array/src/array/primitive/compute/search_sorted.rs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)