This is an automated email from the ASF dual-hosted git repository.
sivabalan 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 6eaf80929630 fix: correct deleted keys computation in
computeRevivedAndDeletedKeys (#18094)
6eaf80929630 is described below
commit 6eaf80929630103752e84ccd5d978c28336fe773
Author: vamsikarnika <[email protected]>
AuthorDate: Fri Feb 6 02:47:36 2026 +0530
fix: correct deleted keys computation in computeRevivedAndDeletedKeys
(#18094)
---
.../main/java/org/apache/hudi/metadata/HoodieTableMetadataUtil.java | 6 +++---
.../java/org/apache/hudi/metadata/TestHoodieTableMetadataUtil.java | 2 +-
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git
a/hudi-common/src/main/java/org/apache/hudi/metadata/HoodieTableMetadataUtil.java
b/hudi-common/src/main/java/org/apache/hudi/metadata/HoodieTableMetadataUtil.java
index a6b267d19c4c..c3c8563f3b26 100644
---
a/hudi-common/src/main/java/org/apache/hudi/metadata/HoodieTableMetadataUtil.java
+++
b/hudi-common/src/main/java/org/apache/hudi/metadata/HoodieTableMetadataUtil.java
@@ -1112,9 +1112,9 @@ public class HoodieTableMetadataUtil {
Set<String> revivedKeys = new HashSet<>(deletedKeysForPreviousLogs);
revivedKeys.retainAll(validKeysForAllLogs); // Intersection of previously
deleted and now valid
- // Compute deleted keys: previously valid but now deleted
- Set<String> deletedKeys = new HashSet<>(validKeysForPreviousLogs);
- deletedKeys.retainAll(deletedKeysForAllLogs); // Intersection of
previously valid and now deleted
+ // Compute deleted keys: newly deleted keys that weren't deleted before
+ Set<String> deletedKeys = new HashSet<>(deletedKeysForAllLogs);
+ deletedKeys.removeAll(deletedKeysForPreviousLogs); // Remove previously
deleted keys
return Pair.of(revivedKeys, deletedKeys);
}
diff --git
a/hudi-hadoop-common/src/test/java/org/apache/hudi/metadata/TestHoodieTableMetadataUtil.java
b/hudi-hadoop-common/src/test/java/org/apache/hudi/metadata/TestHoodieTableMetadataUtil.java
index a263655260ff..74589886a35a 100644
---
a/hudi-hadoop-common/src/test/java/org/apache/hudi/metadata/TestHoodieTableMetadataUtil.java
+++
b/hudi-hadoop-common/src/test/java/org/apache/hudi/metadata/TestHoodieTableMetadataUtil.java
@@ -691,7 +691,7 @@ public class TestHoodieTableMetadataUtil extends
HoodieCommonTestHarness {
// Expected Results
Set<String> expectedRevivedKeys = new
HashSet<>(Collections.singletonList("K4")); // Revived: Deleted in previous but
now valid
- Set<String> expectedDeletedKeys = new
HashSet<>(Collections.singletonList("K1")); // Deleted: Valid in previous but
now deleted
+ Set<String> expectedDeletedKeys = new HashSet<>(Arrays.asList("K1",
"K7")); // Deleted: Valid in previous but now deleted
// Compute Revived and Deleted Keys
Pair<Set<String>, Set<String>> result =
computeRevivedAndDeletedKeys(validKeysForPreviousLogs,
deletedKeysForPreviousLogs, validKeysForAllLogs, deletedKeysForAllLogs);