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);

Reply via email to