This is an automated email from the ASF dual-hosted git repository.

vinoyang 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 971f028  [HUDI-1393] Add compaction action in archive command (#2246)
971f028 is described below

commit 971f028aaf3e90ddee571e9862509d34a637782d
Author: hongdd <[email protected]>
AuthorDate: Mon Nov 23 16:53:01 2020 +0800

    [HUDI-1393] Add compaction action in archive command (#2246)
---
 .../hudi/cli/commands/ArchivedCommitsCommand.java  | 60 +++++++++-------------
 1 file changed, 25 insertions(+), 35 deletions(-)

diff --git 
a/hudi-cli/src/main/java/org/apache/hudi/cli/commands/ArchivedCommitsCommand.java
 
b/hudi-cli/src/main/java/org/apache/hudi/cli/commands/ArchivedCommitsCommand.java
index 1dc925b..102fcc2 100644
--- 
a/hudi-cli/src/main/java/org/apache/hudi/cli/commands/ArchivedCommitsCommand.java
+++ 
b/hudi-cli/src/main/java/org/apache/hudi/cli/commands/ArchivedCommitsCommand.java
@@ -30,6 +30,7 @@ import org.apache.hudi.common.table.log.HoodieLogFormat;
 import org.apache.hudi.common.table.log.HoodieLogFormat.Reader;
 import org.apache.hudi.common.table.log.block.HoodieAvroDataBlock;
 import org.apache.hudi.common.table.timeline.HoodieTimeline;
+import org.apache.hudi.common.util.Option;
 
 import org.apache.avro.generic.GenericRecord;
 import org.apache.avro.generic.IndexedRecord;
@@ -172,49 +173,38 @@ public class ArchivedCommitsCommand implements 
CommandMarker {
     return HoodiePrintHelper.print(header, new HashMap<>(), sortByField, 
descending, limit, headerOnly, allCommits);
   }
 
-  private Comparable[] readCommit(GenericRecord record, boolean skipMetadata) {
+  private Comparable[] commitDetail(GenericRecord record, String metadataName,
+                                    boolean skipMetadata) {
     List<Object> commitDetails = new ArrayList<>();
+    commitDetails.add(record.get("commitTime"));
+    commitDetails.add(record.get("actionType").toString());
+    if (!skipMetadata) {
+      
commitDetails.add(Option.ofNullable(record.get(metadataName)).orElse("{}").toString());
+    }
+    return commitDetails.toArray(new Comparable[commitDetails.size()]);
+  }
+
+  private Comparable[] readCommit(GenericRecord record, boolean skipMetadata) {
     try {
       switch (record.get("actionType").toString()) {
-        case HoodieTimeline.CLEAN_ACTION: {
-          commitDetails.add(record.get("commitTime"));
-          commitDetails.add(record.get("actionType").toString());
-          if (!skipMetadata) {
-            commitDetails.add(record.get("hoodieCleanMetadata").toString());
-          }
-          break;
-        }
+        case HoodieTimeline.CLEAN_ACTION:
+          return commitDetail(record, "hoodieCleanMetadata", skipMetadata);
         case HoodieTimeline.COMMIT_ACTION:
-        case HoodieTimeline.DELTA_COMMIT_ACTION: {
-          commitDetails.add(record.get("commitTime"));
-          commitDetails.add(record.get("actionType").toString());
-          if (!skipMetadata) {
-            commitDetails.add(record.get("hoodieCommitMetadata").toString());
-          }
-          break;
-        }
-        case HoodieTimeline.ROLLBACK_ACTION: {
-          commitDetails.add(record.get("commitTime"));
-          commitDetails.add(record.get("actionType").toString());
-          if (!skipMetadata) {
-            commitDetails.add(record.get("hoodieRollbackMetadata").toString());
-          }
-          break;
+        case HoodieTimeline.DELTA_COMMIT_ACTION:
+          return commitDetail(record, "hoodieCommitMetadata", skipMetadata);
+        case HoodieTimeline.ROLLBACK_ACTION:
+          return commitDetail(record, "hoodieRollbackMetadata", skipMetadata);
+        case HoodieTimeline.SAVEPOINT_ACTION:
+          return commitDetail(record, "hoodieSavePointMetadata", skipMetadata);
+        case HoodieTimeline.COMPACTION_ACTION:
+          return commitDetail(record, "hoodieCompactionMetadata", 
skipMetadata);
+        default: {
+          return new Comparable[]{};
         }
-        case HoodieTimeline.SAVEPOINT_ACTION: {
-          commitDetails.add(record.get("commitTime"));
-          commitDetails.add(record.get("actionType").toString());
-          if (!skipMetadata) {
-            
commitDetails.add(record.get("hoodieSavePointMetadata").toString());
-          }
-          break;
-        }
-        default:
-          return commitDetails.toArray(new Comparable[commitDetails.size()]);
       }
     } catch (Exception e) {
       e.printStackTrace();
+      return new Comparable[]{};
     }
-    return commitDetails.toArray(new Comparable[commitDetails.size()]);
   }
 }

Reply via email to