This is an automated email from the ASF dual-hosted git repository.
codope pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hudi.git
The following commit(s) were added to refs/heads/master by this push:
new b5b14f7d4fa [HUDI-7637] Make StoragePathInfo Comparable (#11050)
b5b14f7d4fa is described below
commit b5b14f7d4fa6224a6674b021664b510c6ae8afb9
Author: Y Ethan Guo <[email protected]>
AuthorDate: Thu Apr 18 05:51:23 2024 -0700
[HUDI-7637] Make StoragePathInfo Comparable (#11050)
---
.../main/java/org/apache/hudi/storage/StoragePathInfo.java | 7 ++++++-
.../org/apache/hudi/io/storage/TestStoragePathInfo.java | 13 +++++++++++++
2 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/hudi-io/src/main/java/org/apache/hudi/storage/StoragePathInfo.java
b/hudi-io/src/main/java/org/apache/hudi/storage/StoragePathInfo.java
index e4711bf72dd..1c1ebc32a2f 100644
--- a/hudi-io/src/main/java/org/apache/hudi/storage/StoragePathInfo.java
+++ b/hudi-io/src/main/java/org/apache/hudi/storage/StoragePathInfo.java
@@ -31,7 +31,7 @@ import java.io.Serializable;
* with simplification based on what Hudi needs.
*/
@PublicAPIClass(maturity = ApiMaturityLevel.EVOLVING)
-public class StoragePathInfo implements Serializable {
+public class StoragePathInfo implements Serializable,
Comparable<StoragePathInfo> {
private final StoragePath path;
private final long length;
private final boolean isDirectory;
@@ -109,6 +109,11 @@ public class StoragePathInfo implements Serializable {
return modificationTime;
}
+ @Override
+ public int compareTo(StoragePathInfo o) {
+ return this.getPath().compareTo(o.getPath());
+ }
+
@Override
public boolean equals(Object o) {
if (this == o) {
diff --git
a/hudi-io/src/test/java/org/apache/hudi/io/storage/TestStoragePathInfo.java
b/hudi-io/src/test/java/org/apache/hudi/io/storage/TestStoragePathInfo.java
index 72640c5e3df..95cf4d798a4 100644
--- a/hudi-io/src/test/java/org/apache/hudi/io/storage/TestStoragePathInfo.java
+++ b/hudi-io/src/test/java/org/apache/hudi/io/storage/TestStoragePathInfo.java
@@ -71,6 +71,19 @@ public class TestStoragePathInfo {
}
}
+ @Test
+ public void testCompareTo() {
+ StoragePathInfo pathInfo1 = new StoragePathInfo(
+ new StoragePath(PATH1), LENGTH, false, BLOCK_REPLICATION, BLOCK_SIZE,
MODIFICATION_TIME);
+ StoragePathInfo pathInfo2 = new StoragePathInfo(
+ new StoragePath(PATH1), LENGTH + 2, false, BLOCK_REPLICATION,
BLOCK_SIZE, MODIFICATION_TIME + 2L);
+ StoragePathInfo pathInfo3 = new StoragePathInfo(
+ new StoragePath(PATH2), LENGTH, false, BLOCK_REPLICATION, BLOCK_SIZE,
MODIFICATION_TIME);
+
+ assertEquals(0, pathInfo1.compareTo(pathInfo2));
+ assertEquals(-1, pathInfo1.compareTo(pathInfo3));
+ }
+
@Test
public void testEquals() {
StoragePathInfo pathInfo1 = new StoragePathInfo(