diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/utils/MetadataConversionUtils.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/utils/MetadataConversionUtils.java index bfc09df07..02d2b04ff 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/utils/MetadataConversionUtils.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/utils/MetadataConversionUtils.java @@ -60,14 +60,20 @@ public class MetadataConversionUtils { archivedMetaWrapper.setActionType(ActionType.clean.name()); break; } - case HoodieTimeline.COMMIT_ACTION: - case HoodieTimeline.DELTA_COMMIT_ACTION: { + case HoodieTimeline.COMMIT_ACTION: { HoodieCommitMetadata commitMetadata = HoodieCommitMetadata .fromBytes(metaClient.getActiveTimeline().getInstantDetails(hoodieInstant).get(), HoodieCommitMetadata.class); archivedMetaWrapper.setHoodieCommitMetadata(convertCommitMetadata(commitMetadata)); archivedMetaWrapper.setActionType(ActionType.commit.name()); break; } + case HoodieTimeline.DELTA_COMMIT_ACTION: { + HoodieCommitMetadata deltaCommitMetadata = HoodieCommitMetadata + .fromBytes(metaClient.getActiveTimeline().getInstantDetails(hoodieInstant).get(), HoodieCommitMetadata.class); + archivedMetaWrapper.setHoodieCommitMetadata(convertCommitMetadata(deltaCommitMetadata)); + archivedMetaWrapper.setActionType(ActionType.deltacommit.name()); + break; + } case HoodieTimeline.REPLACE_COMMIT_ACTION: { if (hoodieInstant.isCompleted()) { HoodieReplaceCommitMetadata replaceCommitMetadata = HoodieReplaceCommitMetadata diff --git a/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/utils/TestMetadataConversionUtils.java b/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/utils/TestMetadataConversionUtils.java index bdc8eb626..eb2ebd951 100644 --- a/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/utils/TestMetadataConversionUtils.java +++ b/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/utils/TestMetadataConversionUtils.java @@ -119,7 +119,7 @@ public class TestMetadataConversionUtils extends HoodieCommonTestHarness { } @Test - public void testCompletedCommitOrDeltaCommit() throws Exception { + public void testCompletedCommit() throws Exception { String newCommitTime = HoodieTestTable.makeNewCommitTime(); createCommitMetadata(newCommitTime); HoodieArchivedMetaEntry metaEntry = MetadataConversionUtils.createMetaWrapper( @@ -128,6 +128,16 @@ public class TestMetadataConversionUtils extends HoodieCommonTestHarness { assertEquals(metaEntry.getHoodieCommitMetadata().getOperationType(), WriteOperationType.INSERT.toString()); } + @Test + public void testCompletedDeltaCommit() throws Exception { + String newCommitTime = HoodieTestTable.makeNewCommitTime(); + createDeltaCommitMetadata(newCommitTime); + HoodieArchivedMetaEntry metaEntry = MetadataConversionUtils.createMetaWrapper( + new HoodieInstant(State.COMPLETED, HoodieTimeline.DELTA_COMMIT_ACTION, newCommitTime), metaClient); + assertEquals(metaEntry.getActionState(), State.COMPLETED.toString()); + assertEquals(metaEntry.getActionType(), HoodieTimeline.DELTA_COMMIT_ACTION); + } + @Test public void testCompletedRollback() throws Exception { String newCommitTime = HoodieTestTable.makeNewCommitTime(); @@ -200,6 +210,14 @@ public class TestMetadataConversionUtils extends HoodieCommonTestHarness { .withBaseFilesInPartition(HoodieTestDataGenerator.DEFAULT_FIRST_PARTITION_PATH, fileId1, fileId2); } + private void createDeltaCommitMetadata(String instantTime) throws Exception { + String fileId1 = "file-" + instantTime + "-1"; + String fileId2 = "file-" + instantTime + "-2"; + HoodieTestTable.of(metaClient) + .addDeltaCommit(instantTime) + .withBaseFilesInPartition(HoodieTestDataGenerator.DEFAULT_FIRST_PARTITION_PATH, fileId1, fileId2); + } + private void createReplace(String instantTime, WriteOperationType writeOperationType, Boolean isClustering) throws Exception { String fileId1 = "file-1"; diff --git a/hudi-common/src/main/java/org/apache/hudi/common/model/ActionType.java b/hudi-common/src/main/java/org/apache/hudi/common/model/ActionType.java index 6be321c98..c10c99d8d 100644 --- a/hudi-common/src/main/java/org/apache/hudi/common/model/ActionType.java +++ b/hudi-common/src/main/java/org/apache/hudi/common/model/ActionType.java @@ -22,6 +22,5 @@ package org.apache.hudi.common.model; * The supported action types. */ public enum ActionType { - //TODO HUDI-1281 make deltacommit part of this - commit, savepoint, compaction, clean, rollback, replacecommit + commit, savepoint, compaction, clean, rollback, replacecommit, deltacommit }