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

jinsongzhou pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/amoro.git


The following commit(s) were added to refs/heads/master by this push:
     new 706630055 [AMORO-2555] Tag dangling delete snapshot commits (#3058)
706630055 is described below

commit 70663005576d87f0c3d19903a6962477029ea1a0
Author: Xavier Bai <[email protected]>
AuthorDate: Wed Aug 7 20:08:09 2024 +0800

    [AMORO-2555] Tag dangling delete snapshot commits (#3058)
    
    * Tag dangling delete snapshot commits
    
    * make maintain commits public
    
    * Re-gen table metastore java code via thrift
---
 .../optimizing/maintainer/IcebergTableMaintainer.java      | 14 ++++++++++----
 .../org/apache/amoro/api/AlreadyExistsException.java       |  2 +-
 .../main/gen-java/org/apache/amoro/api/AmoroException.java |  2 +-
 .../gen-java/org/apache/amoro/api/AmoroTableMetastore.java |  2 +-
 .../gen-java/org/apache/amoro/api/BlockableOperation.java  |  2 +-
 .../src/main/gen-java/org/apache/amoro/api/Blocker.java    |  2 +-
 .../main/gen-java/org/apache/amoro/api/CatalogMeta.java    |  2 +-
 .../src/main/gen-java/org/apache/amoro/api/ColumnInfo.java |  2 +-
 .../gen-java/org/apache/amoro/api/CommitMetaProducer.java  |  7 +++++--
 .../src/main/gen-java/org/apache/amoro/api/DataFile.java   |  2 +-
 .../org/apache/amoro/api/InvalidObjectException.java       |  2 +-
 .../main/gen-java/org/apache/amoro/api/MetaException.java  |  2 +-
 .../org/apache/amoro/api/NoSuchObjectException.java        |  2 +-
 .../org/apache/amoro/api/NotSupportedException.java        |  2 +-
 .../org/apache/amoro/api/OperationConflictException.java   |  2 +-
 .../gen-java/org/apache/amoro/api/PartitionFieldData.java  |  2 +-
 .../main/gen-java/org/apache/amoro/api/PrimaryKeySpec.java |  2 +-
 .../src/main/gen-java/org/apache/amoro/api/Schema.java     |  2 +-
 .../gen-java/org/apache/amoro/api/SchemaUpdateMeta.java    |  2 +-
 .../main/gen-java/org/apache/amoro/api/TableChange.java    |  2 +-
 .../gen-java/org/apache/amoro/api/TableCommitMeta.java     |  2 +-
 .../gen-java/org/apache/amoro/api/TableIdentifier.java     |  2 +-
 .../src/main/gen-java/org/apache/amoro/api/TableMeta.java  |  2 +-
 .../main/gen-java/org/apache/amoro/api/UpdateColumn.java   |  2 +-
 amoro-core/src/main/thrift/amoro_table_metastore.thrift    |  3 ++-
 25 files changed, 39 insertions(+), 29 deletions(-)

diff --git 
a/amoro-ams/amoro-ams-server/src/main/java/org/apache/amoro/server/optimizing/maintainer/IcebergTableMaintainer.java
 
b/amoro-ams/amoro-ams-server/src/main/java/org/apache/amoro/server/optimizing/maintainer/IcebergTableMaintainer.java
index 364c83045..bcc52595f 100644
--- 
a/amoro-ams/amoro-ams-server/src/main/java/org/apache/amoro/server/optimizing/maintainer/IcebergTableMaintainer.java
+++ 
b/amoro-ams/amoro-ams-server/src/main/java/org/apache/amoro/server/optimizing/maintainer/IcebergTableMaintainer.java
@@ -103,6 +103,12 @@ public class IcebergTableMaintainer implements 
TableMaintainer {
   public static final String EXPIRE_TIMESTAMP_MS = "TIMESTAMP_MS";
   public static final String EXPIRE_TIMESTAMP_S = "TIMESTAMP_S";
 
+  public static final Set<String> AMORO_MAINTAIN_COMMITS =
+      Sets.newHashSet(
+          CommitMetaProducer.OPTIMIZE.name(),
+          CommitMetaProducer.DATA_EXPIRATION.name(),
+          CommitMetaProducer.CLEAN_DANGLING_DELETE.name());
+
   protected Table table;
 
   public IcebergTableMaintainer(Table table) {
@@ -435,6 +441,9 @@ public class IcebergTableMaintainer implements 
TableMaintainer {
         Collections.emptySet(),
         Collections.emptySet());
     try {
+      rewriteFiles.set(
+          org.apache.amoro.op.SnapshotSummary.SNAPSHOT_PRODUCER,
+          CommitMetaProducer.CLEAN_DANGLING_DELETE.name());
       rewriteFiles.commit();
     } catch (ValidationException e) {
       LOG.warn("Iceberg RewriteFiles commit failed on clear 
danglingDeleteFiles, but ignore", e);
@@ -498,10 +507,7 @@ public class IcebergTableMaintainer implements 
TableMaintainer {
   public static long fetchLatestNonOptimizedSnapshotTime(Table table) {
     Optional<Snapshot> snapshot =
         IcebergTableUtil.findFirstMatchSnapshot(
-            table,
-            s ->
-                !s.summary().containsValue(CommitMetaProducer.OPTIMIZE.name())
-                    && 
!s.summary().containsValue(CommitMetaProducer.DATA_EXPIRATION.name()));
+            table, s -> 
s.summary().values().stream().noneMatch(AMORO_MAINTAIN_COMMITS::contains));
     return snapshot.map(Snapshot::timestampMillis).orElse(Long.MAX_VALUE);
   }
 
diff --git 
a/amoro-core/src/main/gen-java/org/apache/amoro/api/AlreadyExistsException.java 
b/amoro-core/src/main/gen-java/org/apache/amoro/api/AlreadyExistsException.java
index f1c06ef41..befa88c12 100644
--- 
a/amoro-core/src/main/gen-java/org/apache/amoro/api/AlreadyExistsException.java
+++ 
b/amoro-core/src/main/gen-java/org/apache/amoro/api/AlreadyExistsException.java
@@ -12,7 +12,7 @@ package org.apache.amoro.api;
  * 
  */
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-06-11")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-08-02")
 public class AlreadyExistsException extends 
org.apache.amoro.shade.thrift.org.apache.thrift.TException implements 
org.apache.amoro.shade.thrift.org.apache.thrift.TBase<AlreadyExistsException, 
AlreadyExistsException._Fields>, java.io.Serializable, Cloneable, 
Comparable<AlreadyExistsException> {
   private static final 
org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TStruct STRUCT_DESC = 
new 
org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TStruct("AlreadyExistsException");
 
diff --git 
a/amoro-core/src/main/gen-java/org/apache/amoro/api/AmoroException.java 
b/amoro-core/src/main/gen-java/org/apache/amoro/api/AmoroException.java
index 5be6d39e6..4883cbd7e 100644
--- a/amoro-core/src/main/gen-java/org/apache/amoro/api/AmoroException.java
+++ b/amoro-core/src/main/gen-java/org/apache/amoro/api/AmoroException.java
@@ -7,7 +7,7 @@
 package org.apache.amoro.api;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-06-11")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-08-02")
 public class AmoroException extends 
org.apache.amoro.shade.thrift.org.apache.thrift.TException implements 
org.apache.amoro.shade.thrift.org.apache.thrift.TBase<AmoroException, 
AmoroException._Fields>, java.io.Serializable, Cloneable, 
Comparable<AmoroException> {
   private static final 
org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TStruct STRUCT_DESC = 
new 
org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TStruct("AmoroException");
 
diff --git 
a/amoro-core/src/main/gen-java/org/apache/amoro/api/AmoroTableMetastore.java 
b/amoro-core/src/main/gen-java/org/apache/amoro/api/AmoroTableMetastore.java
index 4db52edfe..8f07e1a16 100644
--- a/amoro-core/src/main/gen-java/org/apache/amoro/api/AmoroTableMetastore.java
+++ b/amoro-core/src/main/gen-java/org/apache/amoro/api/AmoroTableMetastore.java
@@ -6,7 +6,7 @@
  */
 package org.apache.amoro.api;
 
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-06-11")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-08-02")
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
 public class AmoroTableMetastore {
 
diff --git 
a/amoro-core/src/main/gen-java/org/apache/amoro/api/BlockableOperation.java 
b/amoro-core/src/main/gen-java/org/apache/amoro/api/BlockableOperation.java
index 30a423943..9a5ae15f5 100644
--- a/amoro-core/src/main/gen-java/org/apache/amoro/api/BlockableOperation.java
+++ b/amoro-core/src/main/gen-java/org/apache/amoro/api/BlockableOperation.java
@@ -7,7 +7,7 @@
 package org.apache.amoro.api;
 
 
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-06-11")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-08-02")
 public enum BlockableOperation implements 
org.apache.amoro.shade.thrift.org.apache.thrift.TEnum {
   OPTIMIZE(0),
   BATCH_WRITE(1);
diff --git a/amoro-core/src/main/gen-java/org/apache/amoro/api/Blocker.java 
b/amoro-core/src/main/gen-java/org/apache/amoro/api/Blocker.java
index e59477a87..a09381c17 100644
--- a/amoro-core/src/main/gen-java/org/apache/amoro/api/Blocker.java
+++ b/amoro-core/src/main/gen-java/org/apache/amoro/api/Blocker.java
@@ -7,7 +7,7 @@
 package org.apache.amoro.api;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-06-11")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-08-02")
 public class Blocker implements 
org.apache.amoro.shade.thrift.org.apache.thrift.TBase<Blocker, 
Blocker._Fields>, java.io.Serializable, Cloneable, Comparable<Blocker> {
   private static final 
org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TStruct STRUCT_DESC = 
new org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TStruct("Blocker");
 
diff --git a/amoro-core/src/main/gen-java/org/apache/amoro/api/CatalogMeta.java 
b/amoro-core/src/main/gen-java/org/apache/amoro/api/CatalogMeta.java
index 85082c77b..62d24956f 100644
--- a/amoro-core/src/main/gen-java/org/apache/amoro/api/CatalogMeta.java
+++ b/amoro-core/src/main/gen-java/org/apache/amoro/api/CatalogMeta.java
@@ -7,7 +7,7 @@
 package org.apache.amoro.api;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-06-11")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-08-02")
 public class CatalogMeta implements 
org.apache.amoro.shade.thrift.org.apache.thrift.TBase<CatalogMeta, 
CatalogMeta._Fields>, java.io.Serializable, Cloneable, Comparable<CatalogMeta> {
   private static final 
org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TStruct STRUCT_DESC = 
new 
org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TStruct("CatalogMeta");
 
diff --git a/amoro-core/src/main/gen-java/org/apache/amoro/api/ColumnInfo.java 
b/amoro-core/src/main/gen-java/org/apache/amoro/api/ColumnInfo.java
index c7f116688..c161a9c09 100644
--- a/amoro-core/src/main/gen-java/org/apache/amoro/api/ColumnInfo.java
+++ b/amoro-core/src/main/gen-java/org/apache/amoro/api/ColumnInfo.java
@@ -7,7 +7,7 @@
 package org.apache.amoro.api;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-06-11")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-08-02")
 public class ColumnInfo implements 
org.apache.amoro.shade.thrift.org.apache.thrift.TBase<ColumnInfo, 
ColumnInfo._Fields>, java.io.Serializable, Cloneable, Comparable<ColumnInfo> {
   private static final 
org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TStruct STRUCT_DESC = 
new 
org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TStruct("ColumnInfo");
 
diff --git 
a/amoro-core/src/main/gen-java/org/apache/amoro/api/CommitMetaProducer.java 
b/amoro-core/src/main/gen-java/org/apache/amoro/api/CommitMetaProducer.java
index 232ff6022..d105c5662 100644
--- a/amoro-core/src/main/gen-java/org/apache/amoro/api/CommitMetaProducer.java
+++ b/amoro-core/src/main/gen-java/org/apache/amoro/api/CommitMetaProducer.java
@@ -7,11 +7,12 @@
 package org.apache.amoro.api;
 
 
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-06-11")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-08-02")
 public enum CommitMetaProducer implements 
org.apache.amoro.shade.thrift.org.apache.thrift.TEnum {
   OPTIMIZE(0),
   INGESTION(1),
-  DATA_EXPIRATION(2);
+  DATA_EXPIRATION(2),
+  CLEAN_DANGLING_DELETE(3);
 
   private final int value;
 
@@ -40,6 +41,8 @@ public enum CommitMetaProducer implements 
org.apache.amoro.shade.thrift.org.apac
         return INGESTION;
       case 2:
         return DATA_EXPIRATION;
+      case 3:
+        return CLEAN_DANGLING_DELETE;
       default:
         return null;
     }
diff --git a/amoro-core/src/main/gen-java/org/apache/amoro/api/DataFile.java 
b/amoro-core/src/main/gen-java/org/apache/amoro/api/DataFile.java
index a2be92dcb..21f7c38be 100644
--- a/amoro-core/src/main/gen-java/org/apache/amoro/api/DataFile.java
+++ b/amoro-core/src/main/gen-java/org/apache/amoro/api/DataFile.java
@@ -7,7 +7,7 @@
 package org.apache.amoro.api;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-06-11")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-08-02")
 public class DataFile implements 
org.apache.amoro.shade.thrift.org.apache.thrift.TBase<DataFile, 
DataFile._Fields>, java.io.Serializable, Cloneable, Comparable<DataFile> {
   private static final 
org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TStruct STRUCT_DESC = 
new 
org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TStruct("DataFile");
 
diff --git 
a/amoro-core/src/main/gen-java/org/apache/amoro/api/InvalidObjectException.java 
b/amoro-core/src/main/gen-java/org/apache/amoro/api/InvalidObjectException.java
index 8e4bbb14a..3f28dc51d 100644
--- 
a/amoro-core/src/main/gen-java/org/apache/amoro/api/InvalidObjectException.java
+++ 
b/amoro-core/src/main/gen-java/org/apache/amoro/api/InvalidObjectException.java
@@ -7,7 +7,7 @@
 package org.apache.amoro.api;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-06-11")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-08-02")
 public class InvalidObjectException extends 
org.apache.amoro.shade.thrift.org.apache.thrift.TException implements 
org.apache.amoro.shade.thrift.org.apache.thrift.TBase<InvalidObjectException, 
InvalidObjectException._Fields>, java.io.Serializable, Cloneable, 
Comparable<InvalidObjectException> {
   private static final 
org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TStruct STRUCT_DESC = 
new 
org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TStruct("InvalidObjectException");
 
diff --git 
a/amoro-core/src/main/gen-java/org/apache/amoro/api/MetaException.java 
b/amoro-core/src/main/gen-java/org/apache/amoro/api/MetaException.java
index 0c320f0df..458c53e07 100644
--- a/amoro-core/src/main/gen-java/org/apache/amoro/api/MetaException.java
+++ b/amoro-core/src/main/gen-java/org/apache/amoro/api/MetaException.java
@@ -7,7 +7,7 @@
 package org.apache.amoro.api;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-06-11")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-08-02")
 public class MetaException extends 
org.apache.amoro.shade.thrift.org.apache.thrift.TException implements 
org.apache.amoro.shade.thrift.org.apache.thrift.TBase<MetaException, 
MetaException._Fields>, java.io.Serializable, Cloneable, 
Comparable<MetaException> {
   private static final 
org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TStruct STRUCT_DESC = 
new 
org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TStruct("MetaException");
 
diff --git 
a/amoro-core/src/main/gen-java/org/apache/amoro/api/NoSuchObjectException.java 
b/amoro-core/src/main/gen-java/org/apache/amoro/api/NoSuchObjectException.java
index c9efb6cfa..083be5b97 100644
--- 
a/amoro-core/src/main/gen-java/org/apache/amoro/api/NoSuchObjectException.java
+++ 
b/amoro-core/src/main/gen-java/org/apache/amoro/api/NoSuchObjectException.java
@@ -7,7 +7,7 @@
 package org.apache.amoro.api;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-06-11")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-08-02")
 public class NoSuchObjectException extends 
org.apache.amoro.shade.thrift.org.apache.thrift.TException implements 
org.apache.amoro.shade.thrift.org.apache.thrift.TBase<NoSuchObjectException, 
NoSuchObjectException._Fields>, java.io.Serializable, Cloneable, 
Comparable<NoSuchObjectException> {
   private static final 
org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TStruct STRUCT_DESC = 
new 
org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TStruct("NoSuchObjectException");
 
diff --git 
a/amoro-core/src/main/gen-java/org/apache/amoro/api/NotSupportedException.java 
b/amoro-core/src/main/gen-java/org/apache/amoro/api/NotSupportedException.java
index deff0b34e..fe30774a3 100644
--- 
a/amoro-core/src/main/gen-java/org/apache/amoro/api/NotSupportedException.java
+++ 
b/amoro-core/src/main/gen-java/org/apache/amoro/api/NotSupportedException.java
@@ -7,7 +7,7 @@
 package org.apache.amoro.api;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-06-11")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-08-02")
 public class NotSupportedException extends 
org.apache.amoro.shade.thrift.org.apache.thrift.TException implements 
org.apache.amoro.shade.thrift.org.apache.thrift.TBase<NotSupportedException, 
NotSupportedException._Fields>, java.io.Serializable, Cloneable, 
Comparable<NotSupportedException> {
   private static final 
org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TStruct STRUCT_DESC = 
new 
org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TStruct("NotSupportedException");
 
diff --git 
a/amoro-core/src/main/gen-java/org/apache/amoro/api/OperationConflictException.java
 
b/amoro-core/src/main/gen-java/org/apache/amoro/api/OperationConflictException.java
index 021618e46..f13d5f6d8 100644
--- 
a/amoro-core/src/main/gen-java/org/apache/amoro/api/OperationConflictException.java
+++ 
b/amoro-core/src/main/gen-java/org/apache/amoro/api/OperationConflictException.java
@@ -7,7 +7,7 @@
 package org.apache.amoro.api;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-06-11")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-08-02")
 public class OperationConflictException extends 
org.apache.amoro.shade.thrift.org.apache.thrift.TException implements 
org.apache.amoro.shade.thrift.org.apache.thrift.TBase<OperationConflictException,
 OperationConflictException._Fields>, java.io.Serializable, Cloneable, 
Comparable<OperationConflictException> {
   private static final 
org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TStruct STRUCT_DESC = 
new 
org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TStruct("OperationConflictException");
 
diff --git 
a/amoro-core/src/main/gen-java/org/apache/amoro/api/PartitionFieldData.java 
b/amoro-core/src/main/gen-java/org/apache/amoro/api/PartitionFieldData.java
index 43a06dfe8..59dc16fc8 100644
--- a/amoro-core/src/main/gen-java/org/apache/amoro/api/PartitionFieldData.java
+++ b/amoro-core/src/main/gen-java/org/apache/amoro/api/PartitionFieldData.java
@@ -7,7 +7,7 @@
 package org.apache.amoro.api;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-06-11")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-08-02")
 public class PartitionFieldData implements 
org.apache.amoro.shade.thrift.org.apache.thrift.TBase<PartitionFieldData, 
PartitionFieldData._Fields>, java.io.Serializable, Cloneable, 
Comparable<PartitionFieldData> {
   private static final 
org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TStruct STRUCT_DESC = 
new 
org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TStruct("PartitionFieldData");
 
diff --git 
a/amoro-core/src/main/gen-java/org/apache/amoro/api/PrimaryKeySpec.java 
b/amoro-core/src/main/gen-java/org/apache/amoro/api/PrimaryKeySpec.java
index d4a4b90bb..792a27fb5 100644
--- a/amoro-core/src/main/gen-java/org/apache/amoro/api/PrimaryKeySpec.java
+++ b/amoro-core/src/main/gen-java/org/apache/amoro/api/PrimaryKeySpec.java
@@ -7,7 +7,7 @@
 package org.apache.amoro.api;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-06-11")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-08-02")
 public class PrimaryKeySpec implements 
org.apache.amoro.shade.thrift.org.apache.thrift.TBase<PrimaryKeySpec, 
PrimaryKeySpec._Fields>, java.io.Serializable, Cloneable, 
Comparable<PrimaryKeySpec> {
   private static final 
org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TStruct STRUCT_DESC = 
new 
org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TStruct("PrimaryKeySpec");
 
diff --git a/amoro-core/src/main/gen-java/org/apache/amoro/api/Schema.java 
b/amoro-core/src/main/gen-java/org/apache/amoro/api/Schema.java
index 616a5a746..a5507285c 100644
--- a/amoro-core/src/main/gen-java/org/apache/amoro/api/Schema.java
+++ b/amoro-core/src/main/gen-java/org/apache/amoro/api/Schema.java
@@ -7,7 +7,7 @@
 package org.apache.amoro.api;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-06-11")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-08-02")
 public class Schema implements 
org.apache.amoro.shade.thrift.org.apache.thrift.TBase<Schema, Schema._Fields>, 
java.io.Serializable, Cloneable, Comparable<Schema> {
   private static final 
org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TStruct STRUCT_DESC = 
new org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TStruct("Schema");
 
diff --git 
a/amoro-core/src/main/gen-java/org/apache/amoro/api/SchemaUpdateMeta.java 
b/amoro-core/src/main/gen-java/org/apache/amoro/api/SchemaUpdateMeta.java
index cd81f53c9..32cba43b0 100644
--- a/amoro-core/src/main/gen-java/org/apache/amoro/api/SchemaUpdateMeta.java
+++ b/amoro-core/src/main/gen-java/org/apache/amoro/api/SchemaUpdateMeta.java
@@ -7,7 +7,7 @@
 package org.apache.amoro.api;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-06-11")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-08-02")
 public class SchemaUpdateMeta implements 
org.apache.amoro.shade.thrift.org.apache.thrift.TBase<SchemaUpdateMeta, 
SchemaUpdateMeta._Fields>, java.io.Serializable, Cloneable, 
Comparable<SchemaUpdateMeta> {
   private static final 
org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TStruct STRUCT_DESC = 
new 
org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TStruct("SchemaUpdateMeta");
 
diff --git a/amoro-core/src/main/gen-java/org/apache/amoro/api/TableChange.java 
b/amoro-core/src/main/gen-java/org/apache/amoro/api/TableChange.java
index a89d5c738..fbcee202a 100644
--- a/amoro-core/src/main/gen-java/org/apache/amoro/api/TableChange.java
+++ b/amoro-core/src/main/gen-java/org/apache/amoro/api/TableChange.java
@@ -7,7 +7,7 @@
 package org.apache.amoro.api;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-06-11")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-08-02")
 public class TableChange implements 
org.apache.amoro.shade.thrift.org.apache.thrift.TBase<TableChange, 
TableChange._Fields>, java.io.Serializable, Cloneable, Comparable<TableChange> {
   private static final 
org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TStruct STRUCT_DESC = 
new 
org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TStruct("TableChange");
 
diff --git 
a/amoro-core/src/main/gen-java/org/apache/amoro/api/TableCommitMeta.java 
b/amoro-core/src/main/gen-java/org/apache/amoro/api/TableCommitMeta.java
index d9c105736..e5f896bcb 100644
--- a/amoro-core/src/main/gen-java/org/apache/amoro/api/TableCommitMeta.java
+++ b/amoro-core/src/main/gen-java/org/apache/amoro/api/TableCommitMeta.java
@@ -7,7 +7,7 @@
 package org.apache.amoro.api;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-06-11")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-08-02")
 public class TableCommitMeta implements 
org.apache.amoro.shade.thrift.org.apache.thrift.TBase<TableCommitMeta, 
TableCommitMeta._Fields>, java.io.Serializable, Cloneable, 
Comparable<TableCommitMeta> {
   private static final 
org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TStruct STRUCT_DESC = 
new 
org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TStruct("TableCommitMeta");
 
diff --git 
a/amoro-core/src/main/gen-java/org/apache/amoro/api/TableIdentifier.java 
b/amoro-core/src/main/gen-java/org/apache/amoro/api/TableIdentifier.java
index f6cfb44bf..f9bd2dc51 100644
--- a/amoro-core/src/main/gen-java/org/apache/amoro/api/TableIdentifier.java
+++ b/amoro-core/src/main/gen-java/org/apache/amoro/api/TableIdentifier.java
@@ -7,7 +7,7 @@
 package org.apache.amoro.api;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-06-11")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-08-02")
 public class TableIdentifier implements 
org.apache.amoro.shade.thrift.org.apache.thrift.TBase<TableIdentifier, 
TableIdentifier._Fields>, java.io.Serializable, Cloneable, 
Comparable<TableIdentifier> {
   private static final 
org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TStruct STRUCT_DESC = 
new 
org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TStruct("TableIdentifier");
 
diff --git a/amoro-core/src/main/gen-java/org/apache/amoro/api/TableMeta.java 
b/amoro-core/src/main/gen-java/org/apache/amoro/api/TableMeta.java
index 71cdb5cc6..dc4570107 100644
--- a/amoro-core/src/main/gen-java/org/apache/amoro/api/TableMeta.java
+++ b/amoro-core/src/main/gen-java/org/apache/amoro/api/TableMeta.java
@@ -7,7 +7,7 @@
 package org.apache.amoro.api;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-06-11")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-08-02")
 public class TableMeta implements 
org.apache.amoro.shade.thrift.org.apache.thrift.TBase<TableMeta, 
TableMeta._Fields>, java.io.Serializable, Cloneable, Comparable<TableMeta> {
   private static final 
org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TStruct STRUCT_DESC = 
new 
org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TStruct("TableMeta");
 
diff --git 
a/amoro-core/src/main/gen-java/org/apache/amoro/api/UpdateColumn.java 
b/amoro-core/src/main/gen-java/org/apache/amoro/api/UpdateColumn.java
index f9b068dbe..08d86cba4 100644
--- a/amoro-core/src/main/gen-java/org/apache/amoro/api/UpdateColumn.java
+++ b/amoro-core/src/main/gen-java/org/apache/amoro/api/UpdateColumn.java
@@ -7,7 +7,7 @@
 package org.apache.amoro.api;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-06-11")
[email protected](value = "Autogenerated by Thrift Compiler 
(0.20.0)", date = "2024-08-02")
 public class UpdateColumn implements 
org.apache.amoro.shade.thrift.org.apache.thrift.TBase<UpdateColumn, 
UpdateColumn._Fields>, java.io.Serializable, Cloneable, 
Comparable<UpdateColumn> {
   private static final 
org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TStruct STRUCT_DESC = 
new 
org.apache.amoro.shade.thrift.org.apache.thrift.protocol.TStruct("UpdateColumn");
 
diff --git a/amoro-core/src/main/thrift/amoro_table_metastore.thrift 
b/amoro-core/src/main/thrift/amoro_table_metastore.thrift
index bdf18722b..c6654984d 100644
--- a/amoro-core/src/main/thrift/amoro_table_metastore.thrift
+++ b/amoro-core/src/main/thrift/amoro_table_metastore.thrift
@@ -99,7 +99,8 @@ struct PrimaryKeySpec {
 enum CommitMetaProducer {
     OPTIMIZE,
     INGESTION,
-    DATA_EXPIRATION
+    DATA_EXPIRATION,
+    CLEAN_DANGLING_DELETE
 }
 
 struct Blocker {

Reply via email to