This is an automated email from the ASF dual-hosted git repository.
alamb pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/datafusion.git
The following commit(s) were added to refs/heads/main by this push:
new b46e281275 Revert `is_sorted` removal, deprecate instead (#14388)
b46e281275 is described below
commit b46e2812751d7b17c9450ed89f968253f0e5e7b0
Author: Andrew Lamb <[email protected]>
AuthorDate: Fri Jan 31 17:26:58 2025 -0500
Revert `is_sorted` removal, deprecate instead (#14388)
* Revert "removed (#14370)"
This reverts commit 29e9a1c2703d9a43a4f3be4462d6e9ed4ad538ee.
* Restore/Deprecate is_sorted
* Update datafusion/common/src/utils/mod.rs
---
datafusion/common/src/utils/mod.rs | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/datafusion/common/src/utils/mod.rs
b/datafusion/common/src/utils/mod.rs
index c748f93239..068bfe9610 100644
--- a/datafusion/common/src/utils/mod.rs
+++ b/datafusion/common/src/utils/mod.rs
@@ -769,6 +769,21 @@ pub fn set_difference<T: Borrow<usize>, S: Borrow<usize>>(
.collect()
}
+/// Checks whether the given index sequence is monotonically non-decreasing.
+#[deprecated(since = "45.0.0", note = "Use std::Iterator::is_sorted instead")]
+pub fn is_sorted<T: Borrow<usize>>(sequence: impl IntoIterator<Item = T>) ->
bool {
+ // TODO: Remove this function when `is_sorted` graduates from Rust nightly.
+ let mut previous = 0;
+ for item in sequence.into_iter() {
+ let current = *item.borrow();
+ if current < previous {
+ return false;
+ }
+ previous = current;
+ }
+ true
+}
+
/// Find indices of each element in `targets` inside `items`. If one of the
/// elements is absent in `items`, returns an error.
pub fn find_indices<T: PartialEq, S: Borrow<T>>(
@@ -1157,6 +1172,19 @@ mod tests {
assert_eq!(set_difference([3, 4, 0], [4, 1, 2]), vec![3, 0]);
}
+ #[test]
+ #[expect(deprecated)]
+ fn test_is_sorted() {
+ assert!(is_sorted::<usize>([]));
+ assert!(is_sorted([0]));
+ assert!(is_sorted([0, 3, 4]));
+ assert!(is_sorted([0, 1, 2]));
+ assert!(is_sorted([0, 1, 4]));
+ assert!(is_sorted([0usize; 0]));
+ assert!(is_sorted([1, 2]));
+ assert!(!is_sorted([3, 2]));
+ }
+
#[test]
fn test_find_indices() -> Result<()> {
assert_eq!(find_indices(&[0, 3, 4], [0, 3, 4])?, vec![0, 1, 2]);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]