Repository: apache/amoro
Pull request #2801 (2024-04-29 03:11:07)

Change Arctic to Amoro for thrift name in module core
## Why are the changes needed?

Change Arctic to Amoro for thrift name in module core

## Brief change log
<!--
Clearly describe the changes made in modules, classes, methods, etc.
-->

- modify thrift file name
- modify thrift class name
- regenerate thrift code 

## How was this patch tested?

- [ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible

- [ ] Add screenshots for manual tests if appropriate

- [x] Run test locally before making a pull request

## Documentation

- Does this pull request introduce a new feature? (yes / **no**)
- If yes, how is the feature documented? (**not applicable** / docs / JavaDocs / not documented)


xleoken: lgtm
zhoujinsong: Hi

It seems this PR will make the older version client fail to connect to the server.
It may cause some problems when users try to upgrade to the new version.
Even if I think it is accepted as we have entered the ASF incubator and the next version will be a big new one and the name finally should be changed and this is a good time. But I still think we should discuss it in the dev mail list to make sure other developers and users know about it.


Patch:
diff --git a/amoro-ams/amoro-ams-optimizer/amoro-optimizer-common/src/main/java/org/apache/amoro/optimizer/common/AbstractOptimizerOperator.java b/amoro-ams/amoro-ams-optimizer/amoro-optimizer-common/src/main/java/org/apache/amoro/optimizer/common/AbstractOptimizerOperator.java
index b2bf74205..997782ad5 100644
--- a/amoro-ams/amoro-ams-optimizer/amoro-optimizer-common/src/main/java/org/apache/amoro/optimizer/common/AbstractOptimizerOperator.java
+++ b/amoro-ams/amoro-ams-optimizer/amoro-optimizer-common/src/main/java/org/apache/amoro/optimizer/common/AbstractOptimizerOperator.java
@@ -19,7 +19,7 @@
 package org.apache.amoro.optimizer.common;
 
 import org.apache.amoro.ErrorCodes;
-import org.apache.amoro.api.ArcticException;
+import org.apache.amoro.api.AmoroException;
 import org.apache.amoro.api.OptimizingService;
 import org.apache.amoro.client.OptimizingClientPools;
 import org.apache.iceberg.relocated.com.google.common.base.Preconditions;
@@ -66,8 +66,8 @@ public class AbstractOptimizerOperator implements Serializable {
   }
 
   private boolean shouldRetryLater(Throwable t) {
-    if (t instanceof ArcticException) {
-      ArcticException arcticException = (ArcticException) t;
+    if (t instanceof AmoroException) {
+      AmoroException arcticException = (AmoroException) t;
       // Call ams again when got a persistence/undefined error
       return ErrorCodes.PERSISTENCE_ERROR_CODE == arcticException.getErrorCode()
           || ErrorCodes.UNDEFINED_ERROR_CODE == arcticException.getErrorCode();
@@ -94,9 +94,8 @@ public class AbstractOptimizerOperator implements Serializable {
         try {
           return operation.call(OptimizingClientPools.getClient(config.getAmsUrl()), token);
         } catch (Throwable t) {
-          if (t instanceof ArcticException
-              && ErrorCodes.PLUGIN_RETRY_AUTH_ERROR_CODE
-                  == ((ArcticException) (t)).getErrorCode()) {
+          if (t instanceof AmoroException
+              && ErrorCodes.PLUGIN_RETRY_AUTH_ERROR_CODE == ((AmoroException) (t)).getErrorCode()) {
             // Reset the token when got a authorization error
             LOG.error(
                 "Got a authorization error while calling ams, reset token and wait for a new one",
diff --git a/amoro-ams/amoro-ams-optimizer/amoro-optimizer-common/src/main/java/org/apache/amoro/optimizer/common/OptimizerToucher.java b/amoro-ams/amoro-ams-optimizer/amoro-optimizer-common/src/main/java/org/apache/amoro/optimizer/common/OptimizerToucher.java
index 9bfdf932b..a2e242548 100644
--- a/amoro-ams/amoro-ams-optimizer/amoro-optimizer-common/src/main/java/org/apache/amoro/optimizer/common/OptimizerToucher.java
+++ b/amoro-ams/amoro-ams-optimizer/amoro-optimizer-common/src/main/java/org/apache/amoro/optimizer/common/OptimizerToucher.java
@@ -19,7 +19,7 @@
 package org.apache.amoro.optimizer.common;
 
 import org.apache.amoro.ErrorCodes;
-import org.apache.amoro.api.ArcticException;
+import org.apache.amoro.api.AmoroException;
 import org.apache.amoro.api.OptimizerProperties;
 import org.apache.amoro.api.OptimizerRegisterInfo;
 import org.apache.iceberg.relocated.com.google.common.collect.Maps;
@@ -93,8 +93,8 @@ public class OptimizerToucher extends AbstractOptimizerOperator {
         return true;
       } catch (TException e) {
         LOG.error("Register optimizer to ams failed", e);
-        if (e instanceof ArcticException
-            && ErrorCodes.FORBIDDEN_ERROR_CODE == ((ArcticException) e).getErrorCode()) {
+        if (e instanceof AmoroException
+            && ErrorCodes.FORBIDDEN_ERROR_CODE == ((AmoroException) e).getErrorCode()) {
           System.exit(1); // Don't need to try again
         }
         return false;
@@ -112,8 +112,8 @@ public class OptimizerToucher extends AbstractOptimizerOperator {
           });
       LOG.debug("Optimizer[{}] touch ams", getToken());
     } catch (TException e) {
-      if (e instanceof ArcticException
-          && ErrorCodes.PLUGIN_RETRY_AUTH_ERROR_CODE == ((ArcticException) e).getErrorCode()) {
+      if (e instanceof AmoroException
+          && ErrorCodes.PLUGIN_RETRY_AUTH_ERROR_CODE == ((AmoroException) e).getErrorCode()) {
         setToken(null);
         LOG.error("Got authorization error from ams, try to register later", e);
       } else {
diff --git a/amoro-ams/amoro-ams-server/src/main/java/org/apache/amoro/server/ArcticServiceContainer.java b/amoro-ams/amoro-ams-server/src/main/java/org/apache/amoro/server/ArcticServiceContainer.java
index 07553e1f6..e1ffe6292 100644
--- a/amoro-ams/amoro-ams-server/src/main/java/org/apache/amoro/server/ArcticServiceContainer.java
+++ b/amoro-ams/amoro-ams-server/src/main/java/org/apache/amoro/server/ArcticServiceContainer.java
@@ -21,7 +21,7 @@ package org.apache.amoro.server;
 import io.javalin.Javalin;
 import io.javalin.http.HttpCode;
 import org.apache.amoro.Constants;
-import org.apache.amoro.api.ArcticTableMetastore;
+import org.apache.amoro.api.AmoroTableMetastore;
 import org.apache.amoro.api.OptimizerProperties;
 import org.apache.amoro.api.OptimizingService;
 import org.apache.amoro.api.config.ConfigHelpers;
@@ -286,10 +286,10 @@ public class ArcticServiceContainer {
         serviceConfig.getInteger(ArcticManagementConf.THRIFT_QUEUE_SIZE_PER_THREAD);
     String bindHost = serviceConfig.getString(ArcticManagementConf.SERVER_BIND_HOST);
 
-    ArcticTableMetastore.Processor<ArcticTableMetastore.Iface> tableManagementProcessor =
-        new ArcticTableMetastore.Processor<>(
+    AmoroTableMetastore.Processor<AmoroTableMetastore.Iface> tableManagementProcessor =
+        new AmoroTableMetastore.Processor<>(
             ThriftServiceProxy.createProxy(
-                ArcticTableMetastore.Iface.class,
+                AmoroTableMetastore.Iface.class,
                 new TableManagementService(tableService),
                 ArcticRuntimeException::normalizeCompatibly));
     tableManagementServer =
diff --git a/amoro-ams/amoro-ams-server/src/main/java/org/apache/amoro/server/TableManagementService.java b/amoro-ams/amoro-ams-server/src/main/java/org/apache/amoro/server/TableManagementService.java
index c3b0d527d..fac1aeebc 100644
--- a/amoro-ams/amoro-ams-server/src/main/java/org/apache/amoro/server/TableManagementService.java
+++ b/amoro-ams/amoro-ams-server/src/main/java/org/apache/amoro/server/TableManagementService.java
@@ -19,7 +19,7 @@
 package org.apache.amoro.server;
 
 import org.apache.amoro.TableFormat;
-import org.apache.amoro.api.ArcticTableMetastore;
+import org.apache.amoro.api.AmoroTableMetastore;
 import org.apache.amoro.api.BlockableOperation;
 import org.apache.amoro.api.Blocker;
 import org.apache.amoro.api.CatalogMeta;
@@ -38,7 +38,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
 
-public class TableManagementService implements ArcticTableMetastore.Iface {
+public class TableManagementService implements AmoroTableMetastore.Iface {
 
   private final TableService tableService;
 
diff --git a/amoro-ams/amoro-ams-server/src/main/java/org/apache/amoro/server/exception/ArcticRuntimeException.java b/amoro-ams/amoro-ams-server/src/main/java/org/apache/amoro/server/exception/ArcticRuntimeException.java
index 0b6ed75b0..9be3d300a 100644
--- a/amoro-ams/amoro-ams-server/src/main/java/org/apache/amoro/server/exception/ArcticRuntimeException.java
+++ b/amoro-ams/amoro-ams-server/src/main/java/org/apache/amoro/server/exception/ArcticRuntimeException.java
@@ -19,7 +19,7 @@
 package org.apache.amoro.server.exception;
 
 import org.apache.amoro.ErrorCodes;
-import org.apache.amoro.api.ArcticException;
+import org.apache.amoro.api.AmoroException;
 import org.apache.amoro.api.InvalidObjectException;
 import org.apache.amoro.api.MetaException;
 import org.apache.amoro.api.NoSuchObjectException;
@@ -91,8 +91,8 @@ public class ArcticRuntimeException extends RuntimeException {
     return errorName;
   }
 
-  private ArcticException transform() {
-    return new ArcticException(errorCode, errorName, getMessage());
+  private AmoroException transform() {
+    return new AmoroException(errorCode, errorName, getMessage());
   }
 
   protected static String getObjectName(TableIdentifier tableIdentifier) {
@@ -113,7 +113,7 @@ public class ArcticRuntimeException extends RuntimeException {
         + tableIdentifier.getTableName();
   }
 
-  public static ArcticException normalize(Throwable throwable) {
+  public static AmoroException normalize(Throwable throwable) {
     return wrap(throwable).transform();
   }
 
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 9dc3aaac2..b40c10f49 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;
  * This file defines the type definitions that all of arctic's multiple thrift services depend on.
  * 
  */
-@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-03-10")
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-04-29")
 public class AlreadyExistsException extends org.apache.thrift.TException implements org.apache.thrift.TBase<AlreadyExistsException, AlreadyExistsException._Fields>, java.io.Serializable, Cloneable, Comparable<AlreadyExistsException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AlreadyExistsException");
 
diff --git a/amoro-core/src/main/gen-java/org/apache/amoro/api/ArcticException.java b/amoro-core/src/main/gen-java/org/apache/amoro/api/AmoroException.java
similarity index 89%
rename from amoro-core/src/main/gen-java/org/apache/amoro/api/ArcticException.java
rename to amoro-core/src/main/gen-java/org/apache/amoro/api/AmoroException.java
index ea2c50d0c..cb4029610 100644
--- a/amoro-core/src/main/gen-java/org/apache/amoro/api/ArcticException.java
+++ b/amoro-core/src/main/gen-java/org/apache/amoro/api/AmoroException.java
@@ -7,16 +7,16 @@
 package org.apache.amoro.api;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
-@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-03-10")
-public class ArcticException extends org.apache.thrift.TException implements org.apache.thrift.TBase<ArcticException, ArcticException._Fields>, java.io.Serializable, Cloneable, Comparable<ArcticException> {
-  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ArcticException");
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-04-29")
+public class AmoroException extends org.apache.thrift.TException implements org.apache.thrift.TBase<AmoroException, AmoroException._Fields>, java.io.Serializable, Cloneable, Comparable<AmoroException> {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AmoroException");
 
   private static final org.apache.thrift.protocol.TField ERROR_CODE_FIELD_DESC = new org.apache.thrift.protocol.TField("errorCode", org.apache.thrift.protocol.TType.I32, (short)1);
   private static final org.apache.thrift.protocol.TField ERROR_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("errorName", org.apache.thrift.protocol.TType.STRING, (short)2);
   private static final org.apache.thrift.protocol.TField MESSAGE_FIELD_DESC = new org.apache.thrift.protocol.TField("message", org.apache.thrift.protocol.TType.STRING, (short)3);
 
-  private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new ArcticExceptionStandardSchemeFactory();
-  private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new ArcticExceptionTupleSchemeFactory();
+  private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new AmoroExceptionStandardSchemeFactory();
+  private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new AmoroExceptionTupleSchemeFactory();
 
   public int errorCode; // required
   public @org.apache.thrift.annotation.Nullable java.lang.String errorName; // required
@@ -101,13 +101,13 @@ public class ArcticException extends org.apache.thrift.TException implements org
     tmpMap.put(_Fields.MESSAGE, new org.apache.thrift.meta_data.FieldMetaData("message", org.apache.thrift.TFieldRequirementType.DEFAULT, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ArcticException.class, metaDataMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(AmoroException.class, metaDataMap);
   }
 
-  public ArcticException() {
+  public AmoroException() {
   }
 
-  public ArcticException(
+  public AmoroException(
     int errorCode,
     java.lang.String errorName,
     java.lang.String message)
@@ -122,7 +122,7 @@ public class ArcticException extends org.apache.thrift.TException implements org
   /**
    * Performs a deep copy on <i>other</i>.
    */
-  public ArcticException(ArcticException other) {
+  public AmoroException(AmoroException other) {
     __isset_bitfield = other.__isset_bitfield;
     this.errorCode = other.errorCode;
     if (other.isSetErrorName()) {
@@ -133,8 +133,8 @@ public class ArcticException extends org.apache.thrift.TException implements org
     }
   }
 
-  public ArcticException deepCopy() {
-    return new ArcticException(this);
+  public AmoroException deepCopy() {
+    return new AmoroException(this);
   }
 
   @Override
@@ -149,7 +149,7 @@ public class ArcticException extends org.apache.thrift.TException implements org
     return this.errorCode;
   }
 
-  public ArcticException setErrorCode(int errorCode) {
+  public AmoroException setErrorCode(int errorCode) {
     this.errorCode = errorCode;
     setErrorCodeIsSet(true);
     return this;
@@ -173,7 +173,7 @@ public class ArcticException extends org.apache.thrift.TException implements org
     return this.errorName;
   }
 
-  public ArcticException setErrorName(@org.apache.thrift.annotation.Nullable java.lang.String errorName) {
+  public AmoroException setErrorName(@org.apache.thrift.annotation.Nullable java.lang.String errorName) {
     this.errorName = errorName;
     return this;
   }
@@ -198,7 +198,7 @@ public class ArcticException extends org.apache.thrift.TException implements org
     return this.message;
   }
 
-  public ArcticException setMessage(@org.apache.thrift.annotation.Nullable java.lang.String message) {
+  public AmoroException setMessage(@org.apache.thrift.annotation.Nullable java.lang.String message) {
     this.message = message;
     return this;
   }
@@ -284,12 +284,12 @@ public class ArcticException extends org.apache.thrift.TException implements org
   public boolean equals(java.lang.Object that) {
     if (that == null)
       return false;
-    if (that instanceof ArcticException)
-      return this.equals((ArcticException)that);
+    if (that instanceof AmoroException)
+      return this.equals((AmoroException)that);
     return false;
   }
 
-  public boolean equals(ArcticException that) {
+  public boolean equals(AmoroException that) {
     if (that == null)
       return false;
     if (this == that)
@@ -343,7 +343,7 @@ public class ArcticException extends org.apache.thrift.TException implements org
   }
 
   @Override
-  public int compareTo(ArcticException other) {
+  public int compareTo(AmoroException other) {
     if (!getClass().equals(other.getClass())) {
       return getClass().getName().compareTo(other.getClass().getName());
     }
@@ -398,7 +398,7 @@ public class ArcticException extends org.apache.thrift.TException implements org
 
   @Override
   public java.lang.String toString() {
-    java.lang.StringBuilder sb = new java.lang.StringBuilder("ArcticException(");
+    java.lang.StringBuilder sb = new java.lang.StringBuilder("AmoroException(");
     boolean first = true;
 
     sb.append("errorCode:");
@@ -447,15 +447,15 @@ public class ArcticException extends org.apache.thrift.TException implements org
     }
   }
 
-  private static class ArcticExceptionStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-    public ArcticExceptionStandardScheme getScheme() {
-      return new ArcticExceptionStandardScheme();
+  private static class AmoroExceptionStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+    public AmoroExceptionStandardScheme getScheme() {
+      return new AmoroExceptionStandardScheme();
     }
   }
 
-  private static class ArcticExceptionStandardScheme extends org.apache.thrift.scheme.StandardScheme<ArcticException> {
+  private static class AmoroExceptionStandardScheme extends org.apache.thrift.scheme.StandardScheme<AmoroException> {
 
-    public void read(org.apache.thrift.protocol.TProtocol iprot, ArcticException struct) throws org.apache.thrift.TException {
+    public void read(org.apache.thrift.protocol.TProtocol iprot, AmoroException struct) throws org.apache.thrift.TException {
       org.apache.thrift.protocol.TField schemeField;
       iprot.readStructBegin();
       while (true)
@@ -500,7 +500,7 @@ public class ArcticException extends org.apache.thrift.TException implements org
       struct.validate();
     }
 
-    public void write(org.apache.thrift.protocol.TProtocol oprot, ArcticException struct) throws org.apache.thrift.TException {
+    public void write(org.apache.thrift.protocol.TProtocol oprot, AmoroException struct) throws org.apache.thrift.TException {
       struct.validate();
 
       oprot.writeStructBegin(STRUCT_DESC);
@@ -523,16 +523,16 @@ public class ArcticException extends org.apache.thrift.TException implements org
 
   }
 
-  private static class ArcticExceptionTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-    public ArcticExceptionTupleScheme getScheme() {
-      return new ArcticExceptionTupleScheme();
+  private static class AmoroExceptionTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+    public AmoroExceptionTupleScheme getScheme() {
+      return new AmoroExceptionTupleScheme();
     }
   }
 
-  private static class ArcticExceptionTupleScheme extends org.apache.thrift.scheme.TupleScheme<ArcticException> {
+  private static class AmoroExceptionTupleScheme extends org.apache.thrift.scheme.TupleScheme<AmoroException> {
 
     @Override
-    public void write(org.apache.thrift.protocol.TProtocol prot, ArcticException struct) throws org.apache.thrift.TException {
+    public void write(org.apache.thrift.protocol.TProtocol prot, AmoroException struct) throws org.apache.thrift.TException {
       org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
       java.util.BitSet optionals = new java.util.BitSet();
       if (struct.isSetErrorCode()) {
@@ -557,7 +557,7 @@ public class ArcticException extends org.apache.thrift.TException implements org
     }
 
     @Override
-    public void read(org.apache.thrift.protocol.TProtocol prot, ArcticException struct) throws org.apache.thrift.TException {
+    public void read(org.apache.thrift.protocol.TProtocol prot, AmoroException struct) throws org.apache.thrift.TException {
       org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
       java.util.BitSet incoming = iprot.readBitSet(3);
       if (incoming.get(0)) {
diff --git a/amoro-core/src/main/gen-java/org/apache/amoro/api/ArcticTableMetastore.java b/amoro-core/src/main/gen-java/org/apache/amoro/api/AmoroTableMetastore.java
similarity index 94%
rename from amoro-core/src/main/gen-java/org/apache/amoro/api/ArcticTableMetastore.java
rename to amoro-core/src/main/gen-java/org/apache/amoro/api/AmoroTableMetastore.java
index 3a9eea523..931760f7c 100644
--- a/amoro-core/src/main/gen-java/org/apache/amoro/api/ArcticTableMetastore.java
+++ b/amoro-core/src/main/gen-java/org/apache/amoro/api/AmoroTableMetastore.java
@@ -7,11 +7,11 @@
 package org.apache.amoro.api;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
-@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-03-10")
-public class ArcticTableMetastore {
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-04-29")
+public class AmoroTableMetastore {
 
   /**
-   * replace TableContainer、ArcticTableItem
+   * replace TableContainer、AmoroTableItem
    * 
    */
   public interface Iface {
@@ -20,33 +20,33 @@ public class ArcticTableMetastore {
 
     public java.util.List<CatalogMeta> getCatalogs() throws org.apache.thrift.TException;
 
-    public CatalogMeta getCatalog(java.lang.String name) throws NoSuchObjectException, org.apache.thrift.TException;
+    public CatalogMeta getCatalog(java.lang.String name) throws org.apache.amoro.api.NoSuchObjectException, org.apache.thrift.TException;
 
-    public java.util.List<java.lang.String> getDatabases(java.lang.String catalogName) throws NoSuchObjectException, org.apache.thrift.TException;
+    public java.util.List<java.lang.String> getDatabases(java.lang.String catalogName) throws org.apache.amoro.api.NoSuchObjectException, org.apache.thrift.TException;
 
-    public void createDatabase(java.lang.String catalogName, java.lang.String database) throws NoSuchObjectException, AlreadyExistsException, org.apache.thrift.TException;
+    public void createDatabase(java.lang.String catalogName, java.lang.String database) throws org.apache.amoro.api.NoSuchObjectException, org.apache.amoro.api.AlreadyExistsException, org.apache.thrift.TException;
 
-    public void dropDatabase(java.lang.String catalogName, java.lang.String database) throws NoSuchObjectException, NotSupportedException, org.apache.thrift.TException;
+    public void dropDatabase(java.lang.String catalogName, java.lang.String database) throws org.apache.amoro.api.NoSuchObjectException, org.apache.amoro.api.NotSupportedException, org.apache.thrift.TException;
 
-    public void createTableMeta(TableMeta tableMeta) throws AlreadyExistsException, InvalidObjectException, MetaException, org.apache.thrift.TException;
+    public void createTableMeta(TableMeta tableMeta) throws org.apache.amoro.api.AlreadyExistsException, org.apache.amoro.api.InvalidObjectException, org.apache.amoro.api.MetaException, org.apache.thrift.TException;
 
-    public java.util.List<TableMeta> listTables(java.lang.String catalogName, java.lang.String database) throws NoSuchObjectException, org.apache.thrift.TException;
+    public java.util.List<TableMeta> listTables(java.lang.String catalogName, java.lang.String database) throws org.apache.amoro.api.NoSuchObjectException, org.apache.thrift.TException;
 
-    public TableMeta getTable(TableIdentifier tableIdentifier) throws NoSuchObjectException, org.apache.thrift.TException;
+    public TableMeta getTable(org.apache.amoro.api.TableIdentifier tableIdentifier) throws org.apache.amoro.api.NoSuchObjectException, org.apache.thrift.TException;
 
-    public void removeTable(TableIdentifier tableIdentifier, boolean deleteData) throws NoSuchObjectException, MetaException, org.apache.thrift.TException;
+    public void removeTable(org.apache.amoro.api.TableIdentifier tableIdentifier, boolean deleteData) throws org.apache.amoro.api.NoSuchObjectException, org.apache.amoro.api.MetaException, org.apache.thrift.TException;
 
-    public void tableCommit(TableCommitMeta commit) throws MetaException, org.apache.thrift.TException;
+    public void tableCommit(TableCommitMeta commit) throws org.apache.amoro.api.MetaException, org.apache.thrift.TException;
 
-    public long allocateTransactionId(TableIdentifier tableIdentifier, java.lang.String transactionSignature) throws org.apache.thrift.TException;
+    public long allocateTransactionId(org.apache.amoro.api.TableIdentifier tableIdentifier, java.lang.String transactionSignature) throws org.apache.thrift.TException;
 
-    public Blocker block(TableIdentifier tableIdentifier, java.util.List<BlockableOperation> operations, java.util.Map<java.lang.String,java.lang.String> properties) throws OperationConflictException, org.apache.thrift.TException;
+    public Blocker block(org.apache.amoro.api.TableIdentifier tableIdentifier, java.util.List<BlockableOperation> operations, java.util.Map<java.lang.String,java.lang.String> properties) throws org.apache.amoro.api.OperationConflictException, org.apache.thrift.TException;
 
-    public void releaseBlocker(TableIdentifier tableIdentifier, java.lang.String blockerId) throws org.apache.thrift.TException;
+    public void releaseBlocker(org.apache.amoro.api.TableIdentifier tableIdentifier, java.lang.String blockerId) throws org.apache.thrift.TException;
 
-    public long renewBlocker(TableIdentifier tableIdentifier, java.lang.String blockerId) throws NoSuchObjectException, org.apache.thrift.TException;
+    public long renewBlocker(org.apache.amoro.api.TableIdentifier tableIdentifier, java.lang.String blockerId) throws org.apache.amoro.api.NoSuchObjectException, org.apache.thrift.TException;
 
-    public java.util.List<Blocker> getBlockers(TableIdentifier tableIdentifier) throws org.apache.thrift.TException;
+    public java.util.List<Blocker> getBlockers(org.apache.amoro.api.TableIdentifier tableIdentifier) throws org.apache.thrift.TException;
 
   }
 
@@ -68,21 +68,21 @@ public class ArcticTableMetastore {
 
     public void listTables(java.lang.String catalogName, java.lang.String database, org.apache.thrift.async.AsyncMethodCallback<java.util.List<TableMeta>> resultHandler) throws org.apache.thrift.TException;
 
-    public void getTable(TableIdentifier tableIdentifier, org.apache.thrift.async.AsyncMethodCallback<TableMeta> resultHandler) throws org.apache.thrift.TException;
+    public void getTable(org.apache.amoro.api.TableIdentifier tableIdentifier, org.apache.thrift.async.AsyncMethodCallback<TableMeta> resultHandler) throws org.apache.thrift.TException;
 
-    public void removeTable(TableIdentifier tableIdentifier, boolean deleteData, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;
+    public void removeTable(org.apache.amoro.api.TableIdentifier tableIdentifier, boolean deleteData, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;
 
     public void tableCommit(TableCommitMeta commit, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;
 
-    public void allocateTransactionId(TableIdentifier tableIdentifier, java.lang.String transactionSignature, org.apache.thrift.async.AsyncMethodCallback<java.lang.Long> resultHandler) throws org.apache.thrift.TException;
+    public void allocateTransactionId(org.apache.amoro.api.TableIdentifier tableIdentifier, java.lang.String transactionSignature, org.apache.thrift.async.AsyncMethodCallback<java.lang.Long> resultHandler) throws org.apache.thrift.TException;
 
-    public void block(TableIdentifier tableIdentifier, java.util.List<BlockableOperation> operations, java.util.Map<java.lang.String,java.lang.String> properties, org.apache.thrift.async.AsyncMethodCallback<Blocker> resultHandler) throws org.apache.thrift.TException;
+    public void block(org.apache.amoro.api.TableIdentifier tableIdentifier, java.util.List<BlockableOperation> operations, java.util.Map<java.lang.String,java.lang.String> properties, org.apache.thrift.async.AsyncMethodCallback<Blocker> resultHandler) throws org.apache.thrift.TException;
 
-    public void releaseBlocker(TableIdentifier tableIdentifier, java.lang.String blockerId, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;
+    public void releaseBlocker(org.apache.amoro.api.TableIdentifier tableIdentifier, java.lang.String blockerId, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException;
 
-    public void renewBlocker(TableIdentifier tableIdentifier, java.lang.String blockerId, org.apache.thrift.async.AsyncMethodCallback<java.lang.Long> resultHandler) throws org.apache.thrift.TException;
+    public void renewBlocker(org.apache.amoro.api.TableIdentifier tableIdentifier, java.lang.String blockerId, org.apache.thrift.async.AsyncMethodCallback<java.lang.Long> resultHandler) throws org.apache.thrift.TException;
 
-    public void getBlockers(TableIdentifier tableIdentifier, org.apache.thrift.async.AsyncMethodCallback<java.util.List<Blocker>> resultHandler) throws org.apache.thrift.TException;
+    public void getBlockers(org.apache.amoro.api.TableIdentifier tableIdentifier, org.apache.thrift.async.AsyncMethodCallback<java.util.List<Blocker>> resultHandler) throws org.apache.thrift.TException;
 
   }
 
@@ -147,7 +147,7 @@ public class ArcticTableMetastore {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getCatalogs failed: unknown result");
     }
 
-    public CatalogMeta getCatalog(java.lang.String name) throws NoSuchObjectException, org.apache.thrift.TException
+    public CatalogMeta getCatalog(java.lang.String name) throws org.apache.amoro.api.NoSuchObjectException, org.apache.thrift.TException
     {
       send_getCatalog(name);
       return recv_getCatalog();
@@ -160,7 +160,7 @@ public class ArcticTableMetastore {
       sendBase("getCatalog", args);
     }
 
-    public CatalogMeta recv_getCatalog() throws NoSuchObjectException, org.apache.thrift.TException
+    public CatalogMeta recv_getCatalog() throws org.apache.amoro.api.NoSuchObjectException, org.apache.thrift.TException
     {
       getCatalog_result result = new getCatalog_result();
       receiveBase(result, "getCatalog");
@@ -173,7 +173,7 @@ public class ArcticTableMetastore {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getCatalog failed: unknown result");
     }
 
-    public java.util.List<java.lang.String> getDatabases(java.lang.String catalogName) throws NoSuchObjectException, org.apache.thrift.TException
+    public java.util.List<java.lang.String> getDatabases(java.lang.String catalogName) throws org.apache.amoro.api.NoSuchObjectException, org.apache.thrift.TException
     {
       send_getDatabases(catalogName);
       return recv_getDatabases();
@@ -186,7 +186,7 @@ public class ArcticTableMetastore {
       sendBase("getDatabases", args);
     }
 
-    public java.util.List<java.lang.String> recv_getDatabases() throws NoSuchObjectException, org.apache.thrift.TException
+    public java.util.List<java.lang.String> recv_getDatabases() throws org.apache.amoro.api.NoSuchObjectException, org.apache.thrift.TException
     {
       getDatabases_result result = new getDatabases_result();
       receiveBase(result, "getDatabases");
@@ -199,7 +199,7 @@ public class ArcticTableMetastore {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getDatabases failed: unknown result");
     }
 
-    public void createDatabase(java.lang.String catalogName, java.lang.String database) throws NoSuchObjectException, AlreadyExistsException, org.apache.thrift.TException
+    public void createDatabase(java.lang.String catalogName, java.lang.String database) throws org.apache.amoro.api.NoSuchObjectException, org.apache.amoro.api.AlreadyExistsException, org.apache.thrift.TException
     {
       send_createDatabase(catalogName, database);
       recv_createDatabase();
@@ -213,7 +213,7 @@ public class ArcticTableMetastore {
       sendBase("createDatabase", args);
     }
 
-    public void recv_createDatabase() throws NoSuchObjectException, AlreadyExistsException, org.apache.thrift.TException
+    public void recv_createDatabase() throws org.apache.amoro.api.NoSuchObjectException, org.apache.amoro.api.AlreadyExistsException, org.apache.thrift.TException
     {
       createDatabase_result result = new createDatabase_result();
       receiveBase(result, "createDatabase");
@@ -226,7 +226,7 @@ public class ArcticTableMetastore {
       return;
     }
 
-    public void dropDatabase(java.lang.String catalogName, java.lang.String database) throws NoSuchObjectException, NotSupportedException, org.apache.thrift.TException
+    public void dropDatabase(java.lang.String catalogName, java.lang.String database) throws org.apache.amoro.api.NoSuchObjectException, org.apache.amoro.api.NotSupportedException, org.apache.thrift.TException
     {
       send_dropDatabase(catalogName, database);
       recv_dropDatabase();
@@ -240,7 +240,7 @@ public class ArcticTableMetastore {
       sendBase("dropDatabase", args);
     }
 
-    public void recv_dropDatabase() throws NoSuchObjectException, NotSupportedException, org.apache.thrift.TException
+    public void recv_dropDatabase() throws org.apache.amoro.api.NoSuchObjectException, org.apache.amoro.api.NotSupportedException, org.apache.thrift.TException
     {
       dropDatabase_result result = new dropDatabase_result();
       receiveBase(result, "dropDatabase");
@@ -253,7 +253,7 @@ public class ArcticTableMetastore {
       return;
     }
 
-    public void createTableMeta(TableMeta tableMeta) throws AlreadyExistsException, InvalidObjectException, MetaException, org.apache.thrift.TException
+    public void createTableMeta(TableMeta tableMeta) throws org.apache.amoro.api.AlreadyExistsException, org.apache.amoro.api.InvalidObjectException, org.apache.amoro.api.MetaException, org.apache.thrift.TException
     {
       send_createTableMeta(tableMeta);
       recv_createTableMeta();
@@ -266,7 +266,7 @@ public class ArcticTableMetastore {
       sendBase("createTableMeta", args);
     }
 
-    public void recv_createTableMeta() throws AlreadyExistsException, InvalidObjectException, MetaException, org.apache.thrift.TException
+    public void recv_createTableMeta() throws org.apache.amoro.api.AlreadyExistsException, org.apache.amoro.api.InvalidObjectException, org.apache.amoro.api.MetaException, org.apache.thrift.TException
     {
       createTableMeta_result result = new createTableMeta_result();
       receiveBase(result, "createTableMeta");
@@ -282,7 +282,7 @@ public class ArcticTableMetastore {
       return;
     }
 
-    public java.util.List<TableMeta> listTables(java.lang.String catalogName, java.lang.String database) throws NoSuchObjectException, org.apache.thrift.TException
+    public java.util.List<TableMeta> listTables(java.lang.String catalogName, java.lang.String database) throws org.apache.amoro.api.NoSuchObjectException, org.apache.thrift.TException
     {
       send_listTables(catalogName, database);
       return recv_listTables();
@@ -296,7 +296,7 @@ public class ArcticTableMetastore {
       sendBase("listTables", args);
     }
 
-    public java.util.List<TableMeta> recv_listTables() throws NoSuchObjectException, org.apache.thrift.TException
+    public java.util.List<TableMeta> recv_listTables() throws org.apache.amoro.api.NoSuchObjectException, org.apache.thrift.TException
     {
       listTables_result result = new listTables_result();
       receiveBase(result, "listTables");
@@ -309,20 +309,20 @@ public class ArcticTableMetastore {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "listTables failed: unknown result");
     }
 
-    public TableMeta getTable(TableIdentifier tableIdentifier) throws NoSuchObjectException, org.apache.thrift.TException
+    public TableMeta getTable(org.apache.amoro.api.TableIdentifier tableIdentifier) throws org.apache.amoro.api.NoSuchObjectException, org.apache.thrift.TException
     {
       send_getTable(tableIdentifier);
       return recv_getTable();
     }
 
-    public void send_getTable(TableIdentifier tableIdentifier) throws org.apache.thrift.TException
+    public void send_getTable(org.apache.amoro.api.TableIdentifier tableIdentifier) throws org.apache.thrift.TException
     {
       getTable_args args = new getTable_args();
       args.setTableIdentifier(tableIdentifier);
       sendBase("getTable", args);
     }
 
-    public TableMeta recv_getTable() throws NoSuchObjectException, org.apache.thrift.TException
+    public TableMeta recv_getTable() throws org.apache.amoro.api.NoSuchObjectException, org.apache.thrift.TException
     {
       getTable_result result = new getTable_result();
       receiveBase(result, "getTable");
@@ -335,13 +335,13 @@ public class ArcticTableMetastore {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getTable failed: unknown result");
     }
 
-    public void removeTable(TableIdentifier tableIdentifier, boolean deleteData) throws NoSuchObjectException, MetaException, org.apache.thrift.TException
+    public void removeTable(org.apache.amoro.api.TableIdentifier tableIdentifier, boolean deleteData) throws org.apache.amoro.api.NoSuchObjectException, org.apache.amoro.api.MetaException, org.apache.thrift.TException
     {
       send_removeTable(tableIdentifier, deleteData);
       recv_removeTable();
     }
 
-    public void send_removeTable(TableIdentifier tableIdentifier, boolean deleteData) throws org.apache.thrift.TException
+    public void send_removeTable(org.apache.amoro.api.TableIdentifier tableIdentifier, boolean deleteData) throws org.apache.thrift.TException
     {
       removeTable_args args = new removeTable_args();
       args.setTableIdentifier(tableIdentifier);
@@ -349,7 +349,7 @@ public class ArcticTableMetastore {
       sendBase("removeTable", args);
     }
 
-    public void recv_removeTable() throws NoSuchObjectException, MetaException, org.apache.thrift.TException
+    public void recv_removeTable() throws org.apache.amoro.api.NoSuchObjectException, org.apache.amoro.api.MetaException, org.apache.thrift.TException
     {
       removeTable_result result = new removeTable_result();
       receiveBase(result, "removeTable");
@@ -362,7 +362,7 @@ public class ArcticTableMetastore {
       return;
     }
 
-    public void tableCommit(TableCommitMeta commit) throws MetaException, org.apache.thrift.TException
+    public void tableCommit(TableCommitMeta commit) throws org.apache.amoro.api.MetaException, org.apache.thrift.TException
     {
       send_tableCommit(commit);
       recv_tableCommit();
@@ -375,7 +375,7 @@ public class ArcticTableMetastore {
       sendBase("tableCommit", args);
     }
 
-    public void recv_tableCommit() throws MetaException, org.apache.thrift.TException
+    public void recv_tableCommit() throws org.apache.amoro.api.MetaException, org.apache.thrift.TException
     {
       tableCommit_result result = new tableCommit_result();
       receiveBase(result, "tableCommit");
@@ -385,13 +385,13 @@ public class ArcticTableMetastore {
       return;
     }
 
-    public long allocateTransactionId(TableIdentifier tableIdentifier, java.lang.String transactionSignature) throws org.apache.thrift.TException
+    public long allocateTransactionId(org.apache.amoro.api.TableIdentifier tableIdentifier, java.lang.String transactionSignature) throws org.apache.thrift.TException
     {
       send_allocateTransactionId(tableIdentifier, transactionSignature);
       return recv_allocateTransactionId();
     }
 
-    public void send_allocateTransactionId(TableIdentifier tableIdentifier, java.lang.String transactionSignature) throws org.apache.thrift.TException
+    public void send_allocateTransactionId(org.apache.amoro.api.TableIdentifier tableIdentifier, java.lang.String transactionSignature) throws org.apache.thrift.TException
     {
       allocateTransactionId_args args = new allocateTransactionId_args();
       args.setTableIdentifier(tableIdentifier);
@@ -409,13 +409,13 @@ public class ArcticTableMetastore {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "allocateTransactionId failed: unknown result");
     }
 
-    public Blocker block(TableIdentifier tableIdentifier, java.util.List<BlockableOperation> operations, java.util.Map<java.lang.String,java.lang.String> properties) throws OperationConflictException, org.apache.thrift.TException
+    public Blocker block(org.apache.amoro.api.TableIdentifier tableIdentifier, java.util.List<BlockableOperation> operations, java.util.Map<java.lang.String,java.lang.String> properties) throws org.apache.amoro.api.OperationConflictException, org.apache.thrift.TException
     {
       send_block(tableIdentifier, operations, properties);
       return recv_block();
     }
 
-    public void send_block(TableIdentifier tableIdentifier, java.util.List<BlockableOperation> operations, java.util.Map<java.lang.String,java.lang.String> properties) throws org.apache.thrift.TException
+    public void send_block(org.apache.amoro.api.TableIdentifier tableIdentifier, java.util.List<BlockableOperation> operations, java.util.Map<java.lang.String,java.lang.String> properties) throws org.apache.thrift.TException
     {
       block_args args = new block_args();
       args.setTableIdentifier(tableIdentifier);
@@ -424,7 +424,7 @@ public class ArcticTableMetastore {
       sendBase("block", args);
     }
 
-    public Blocker recv_block() throws OperationConflictException, org.apache.thrift.TException
+    public Blocker recv_block() throws org.apache.amoro.api.OperationConflictException, org.apache.thrift.TException
     {
       block_result result = new block_result();
       receiveBase(result, "block");
@@ -437,13 +437,13 @@ public class ArcticTableMetastore {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "block failed: unknown result");
     }
 
-    public void releaseBlocker(TableIdentifier tableIdentifier, java.lang.String blockerId) throws org.apache.thrift.TException
+    public void releaseBlocker(org.apache.amoro.api.TableIdentifier tableIdentifier, java.lang.String blockerId) throws org.apache.thrift.TException
     {
       send_releaseBlocker(tableIdentifier, blockerId);
       recv_releaseBlocker();
     }
 
-    public void send_releaseBlocker(TableIdentifier tableIdentifier, java.lang.String blockerId) throws org.apache.thrift.TException
+    public void send_releaseBlocker(org.apache.amoro.api.TableIdentifier tableIdentifier, java.lang.String blockerId) throws org.apache.thrift.TException
     {
       releaseBlocker_args args = new releaseBlocker_args();
       args.setTableIdentifier(tableIdentifier);
@@ -458,13 +458,13 @@ public class ArcticTableMetastore {
       return;
     }
 
-    public long renewBlocker(TableIdentifier tableIdentifier, java.lang.String blockerId) throws NoSuchObjectException, org.apache.thrift.TException
+    public long renewBlocker(org.apache.amoro.api.TableIdentifier tableIdentifier, java.lang.String blockerId) throws org.apache.amoro.api.NoSuchObjectException, org.apache.thrift.TException
     {
       send_renewBlocker(tableIdentifier, blockerId);
       return recv_renewBlocker();
     }
 
-    public void send_renewBlocker(TableIdentifier tableIdentifier, java.lang.String blockerId) throws org.apache.thrift.TException
+    public void send_renewBlocker(org.apache.amoro.api.TableIdentifier tableIdentifier, java.lang.String blockerId) throws org.apache.thrift.TException
     {
       renewBlocker_args args = new renewBlocker_args();
       args.setTableIdentifier(tableIdentifier);
@@ -472,7 +472,7 @@ public class ArcticTableMetastore {
       sendBase("renewBlocker", args);
     }
 
-    public long recv_renewBlocker() throws NoSuchObjectException, org.apache.thrift.TException
+    public long recv_renewBlocker() throws org.apache.amoro.api.NoSuchObjectException, org.apache.thrift.TException
     {
       renewBlocker_result result = new renewBlocker_result();
       receiveBase(result, "renewBlocker");
@@ -485,13 +485,13 @@ public class ArcticTableMetastore {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "renewBlocker failed: unknown result");
     }
 
-    public java.util.List<Blocker> getBlockers(TableIdentifier tableIdentifier) throws org.apache.thrift.TException
+    public java.util.List<Blocker> getBlockers(org.apache.amoro.api.TableIdentifier tableIdentifier) throws org.apache.thrift.TException
     {
       send_getBlockers(tableIdentifier);
       return recv_getBlockers();
     }
 
-    public void send_getBlockers(TableIdentifier tableIdentifier) throws org.apache.thrift.TException
+    public void send_getBlockers(org.apache.amoro.api.TableIdentifier tableIdentifier) throws org.apache.thrift.TException
     {
       getBlockers_args args = new getBlockers_args();
       args.setTableIdentifier(tableIdentifier);
@@ -606,7 +606,7 @@ public class ArcticTableMetastore {
         prot.writeMessageEnd();
       }
 
-      public CatalogMeta getResult() throws NoSuchObjectException, org.apache.thrift.TException {
+      public CatalogMeta getResult() throws org.apache.amoro.api.NoSuchObjectException, org.apache.thrift.TException {
         if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
           throw new java.lang.IllegalStateException("Method call not finished!");
         }
@@ -638,7 +638,7 @@ public class ArcticTableMetastore {
         prot.writeMessageEnd();
       }
 
-      public java.util.List<java.lang.String> getResult() throws NoSuchObjectException, org.apache.thrift.TException {
+      public java.util.List<java.lang.String> getResult() throws org.apache.amoro.api.NoSuchObjectException, org.apache.thrift.TException {
         if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
           throw new java.lang.IllegalStateException("Method call not finished!");
         }
@@ -673,7 +673,7 @@ public class ArcticTableMetastore {
         prot.writeMessageEnd();
       }
 
-      public Void getResult() throws NoSuchObjectException, AlreadyExistsException, org.apache.thrift.TException {
+      public Void getResult() throws org.apache.amoro.api.NoSuchObjectException, org.apache.amoro.api.AlreadyExistsException, org.apache.thrift.TException {
         if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
           throw new java.lang.IllegalStateException("Method call not finished!");
         }
@@ -708,7 +708,7 @@ public class ArcticTableMetastore {
         prot.writeMessageEnd();
       }
 
-      public Void getResult() throws NoSuchObjectException, NotSupportedException, org.apache.thrift.TException {
+      public Void getResult() throws org.apache.amoro.api.NoSuchObjectException, org.apache.amoro.api.NotSupportedException, org.apache.thrift.TException {
         if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
           throw new java.lang.IllegalStateException("Method call not finished!");
         }
@@ -740,7 +740,7 @@ public class ArcticTableMetastore {
         prot.writeMessageEnd();
       }
 
-      public Void getResult() throws AlreadyExistsException, InvalidObjectException, MetaException, org.apache.thrift.TException {
+      public Void getResult() throws org.apache.amoro.api.AlreadyExistsException, org.apache.amoro.api.InvalidObjectException, org.apache.amoro.api.MetaException, org.apache.thrift.TException {
         if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
           throw new java.lang.IllegalStateException("Method call not finished!");
         }
@@ -775,7 +775,7 @@ public class ArcticTableMetastore {
         prot.writeMessageEnd();
       }
 
-      public java.util.List<TableMeta> getResult() throws NoSuchObjectException, org.apache.thrift.TException {
+      public java.util.List<TableMeta> getResult() throws org.apache.amoro.api.NoSuchObjectException, org.apache.thrift.TException {
         if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
           throw new java.lang.IllegalStateException("Method call not finished!");
         }
@@ -785,7 +785,7 @@ public class ArcticTableMetastore {
       }
     }
 
-    public void getTable(TableIdentifier tableIdentifier, org.apache.thrift.async.AsyncMethodCallback<TableMeta> resultHandler) throws org.apache.thrift.TException {
+    public void getTable(org.apache.amoro.api.TableIdentifier tableIdentifier, org.apache.thrift.async.AsyncMethodCallback<TableMeta> resultHandler) throws org.apache.thrift.TException {
       checkReady();
       getTable_call method_call = new getTable_call(tableIdentifier, resultHandler, this, ___protocolFactory, ___transport);
       this.___currentMethod = method_call;
@@ -793,8 +793,8 @@ public class ArcticTableMetastore {
     }
 
     public static class getTable_call extends org.apache.thrift.async.TAsyncMethodCall<TableMeta> {
-      private TableIdentifier tableIdentifier;
-      public getTable_call(TableIdentifier tableIdentifier, org.apache.thrift.async.AsyncMethodCallback<TableMeta> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+      private org.apache.amoro.api.TableIdentifier tableIdentifier;
+      public getTable_call(org.apache.amoro.api.TableIdentifier tableIdentifier, org.apache.thrift.async.AsyncMethodCallback<TableMeta> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
         super(client, protocolFactory, transport, resultHandler, false);
         this.tableIdentifier = tableIdentifier;
       }
@@ -807,7 +807,7 @@ public class ArcticTableMetastore {
         prot.writeMessageEnd();
       }
 
-      public TableMeta getResult() throws NoSuchObjectException, org.apache.thrift.TException {
+      public TableMeta getResult() throws org.apache.amoro.api.NoSuchObjectException, org.apache.thrift.TException {
         if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
           throw new java.lang.IllegalStateException("Method call not finished!");
         }
@@ -817,7 +817,7 @@ public class ArcticTableMetastore {
       }
     }
 
-    public void removeTable(TableIdentifier tableIdentifier, boolean deleteData, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
+    public void removeTable(org.apache.amoro.api.TableIdentifier tableIdentifier, boolean deleteData, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
       checkReady();
       removeTable_call method_call = new removeTable_call(tableIdentifier, deleteData, resultHandler, this, ___protocolFactory, ___transport);
       this.___currentMethod = method_call;
@@ -825,9 +825,9 @@ public class ArcticTableMetastore {
     }
 
     public static class removeTable_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
-      private TableIdentifier tableIdentifier;
+      private org.apache.amoro.api.TableIdentifier tableIdentifier;
       private boolean deleteData;
-      public removeTable_call(TableIdentifier tableIdentifier, boolean deleteData, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+      public removeTable_call(org.apache.amoro.api.TableIdentifier tableIdentifier, boolean deleteData, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
         super(client, protocolFactory, transport, resultHandler, false);
         this.tableIdentifier = tableIdentifier;
         this.deleteData = deleteData;
@@ -842,7 +842,7 @@ public class ArcticTableMetastore {
         prot.writeMessageEnd();
       }
 
-      public Void getResult() throws NoSuchObjectException, MetaException, org.apache.thrift.TException {
+      public Void getResult() throws org.apache.amoro.api.NoSuchObjectException, org.apache.amoro.api.MetaException, org.apache.thrift.TException {
         if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
           throw new java.lang.IllegalStateException("Method call not finished!");
         }
@@ -874,7 +874,7 @@ public class ArcticTableMetastore {
         prot.writeMessageEnd();
       }
 
-      public Void getResult() throws MetaException, org.apache.thrift.TException {
+      public Void getResult() throws org.apache.amoro.api.MetaException, org.apache.thrift.TException {
         if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
           throw new java.lang.IllegalStateException("Method call not finished!");
         }
@@ -884,7 +884,7 @@ public class ArcticTableMetastore {
       }
     }
 
-    public void allocateTransactionId(TableIdentifier tableIdentifier, java.lang.String transactionSignature, org.apache.thrift.async.AsyncMethodCallback<java.lang.Long> resultHandler) throws org.apache.thrift.TException {
+    public void allocateTransactionId(org.apache.amoro.api.TableIdentifier tableIdentifier, java.lang.String transactionSignature, org.apache.thrift.async.AsyncMethodCallback<java.lang.Long> resultHandler) throws org.apache.thrift.TException {
       checkReady();
       allocateTransactionId_call method_call = new allocateTransactionId_call(tableIdentifier, transactionSignature, resultHandler, this, ___protocolFactory, ___transport);
       this.___currentMethod = method_call;
@@ -892,9 +892,9 @@ public class ArcticTableMetastore {
     }
 
     public static class allocateTransactionId_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.Long> {
-      private TableIdentifier tableIdentifier;
+      private org.apache.amoro.api.TableIdentifier tableIdentifier;
       private java.lang.String transactionSignature;
-      public allocateTransactionId_call(TableIdentifier tableIdentifier, java.lang.String transactionSignature, org.apache.thrift.async.AsyncMethodCallback<java.lang.Long> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+      public allocateTransactionId_call(org.apache.amoro.api.TableIdentifier tableIdentifier, java.lang.String transactionSignature, org.apache.thrift.async.AsyncMethodCallback<java.lang.Long> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
         super(client, protocolFactory, transport, resultHandler, false);
         this.tableIdentifier = tableIdentifier;
         this.transactionSignature = transactionSignature;
@@ -919,7 +919,7 @@ public class ArcticTableMetastore {
       }
     }
 
-    public void block(TableIdentifier tableIdentifier, java.util.List<BlockableOperation> operations, java.util.Map<java.lang.String,java.lang.String> properties, org.apache.thrift.async.AsyncMethodCallback<Blocker> resultHandler) throws org.apache.thrift.TException {
+    public void block(org.apache.amoro.api.TableIdentifier tableIdentifier, java.util.List<BlockableOperation> operations, java.util.Map<java.lang.String,java.lang.String> properties, org.apache.thrift.async.AsyncMethodCallback<Blocker> resultHandler) throws org.apache.thrift.TException {
       checkReady();
       block_call method_call = new block_call(tableIdentifier, operations, properties, resultHandler, this, ___protocolFactory, ___transport);
       this.___currentMethod = method_call;
@@ -927,10 +927,10 @@ public class ArcticTableMetastore {
     }
 
     public static class block_call extends org.apache.thrift.async.TAsyncMethodCall<Blocker> {
-      private TableIdentifier tableIdentifier;
+      private org.apache.amoro.api.TableIdentifier tableIdentifier;
       private java.util.List<BlockableOperation> operations;
       private java.util.Map<java.lang.String,java.lang.String> properties;
-      public block_call(TableIdentifier tableIdentifier, java.util.List<BlockableOperation> operations, java.util.Map<java.lang.String,java.lang.String> properties, org.apache.thrift.async.AsyncMethodCallback<Blocker> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+      public block_call(org.apache.amoro.api.TableIdentifier tableIdentifier, java.util.List<BlockableOperation> operations, java.util.Map<java.lang.String,java.lang.String> properties, org.apache.thrift.async.AsyncMethodCallback<Blocker> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
         super(client, protocolFactory, transport, resultHandler, false);
         this.tableIdentifier = tableIdentifier;
         this.operations = operations;
@@ -947,7 +947,7 @@ public class ArcticTableMetastore {
         prot.writeMessageEnd();
       }
 
-      public Blocker getResult() throws OperationConflictException, org.apache.thrift.TException {
+      public Blocker getResult() throws org.apache.amoro.api.OperationConflictException, org.apache.thrift.TException {
         if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
           throw new java.lang.IllegalStateException("Method call not finished!");
         }
@@ -957,7 +957,7 @@ public class ArcticTableMetastore {
       }
     }
 
-    public void releaseBlocker(TableIdentifier tableIdentifier, java.lang.String blockerId, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
+    public void releaseBlocker(org.apache.amoro.api.TableIdentifier tableIdentifier, java.lang.String blockerId, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler) throws org.apache.thrift.TException {
       checkReady();
       releaseBlocker_call method_call = new releaseBlocker_call(tableIdentifier, blockerId, resultHandler, this, ___protocolFactory, ___transport);
       this.___currentMethod = method_call;
@@ -965,9 +965,9 @@ public class ArcticTableMetastore {
     }
 
     public static class releaseBlocker_call extends org.apache.thrift.async.TAsyncMethodCall<Void> {
-      private TableIdentifier tableIdentifier;
+      private org.apache.amoro.api.TableIdentifier tableIdentifier;
       private java.lang.String blockerId;
-      public releaseBlocker_call(TableIdentifier tableIdentifier, java.lang.String blockerId, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+      public releaseBlocker_call(org.apache.amoro.api.TableIdentifier tableIdentifier, java.lang.String blockerId, org.apache.thrift.async.AsyncMethodCallback<Void> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
         super(client, protocolFactory, transport, resultHandler, false);
         this.tableIdentifier = tableIdentifier;
         this.blockerId = blockerId;
@@ -992,7 +992,7 @@ public class ArcticTableMetastore {
       }
     }
 
-    public void renewBlocker(TableIdentifier tableIdentifier, java.lang.String blockerId, org.apache.thrift.async.AsyncMethodCallback<java.lang.Long> resultHandler) throws org.apache.thrift.TException {
+    public void renewBlocker(org.apache.amoro.api.TableIdentifier tableIdentifier, java.lang.String blockerId, org.apache.thrift.async.AsyncMethodCallback<java.lang.Long> resultHandler) throws org.apache.thrift.TException {
       checkReady();
       renewBlocker_call method_call = new renewBlocker_call(tableIdentifier, blockerId, resultHandler, this, ___protocolFactory, ___transport);
       this.___currentMethod = method_call;
@@ -1000,9 +1000,9 @@ public class ArcticTableMetastore {
     }
 
     public static class renewBlocker_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.Long> {
-      private TableIdentifier tableIdentifier;
+      private org.apache.amoro.api.TableIdentifier tableIdentifier;
       private java.lang.String blockerId;
-      public renewBlocker_call(TableIdentifier tableIdentifier, java.lang.String blockerId, org.apache.thrift.async.AsyncMethodCallback<java.lang.Long> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+      public renewBlocker_call(org.apache.amoro.api.TableIdentifier tableIdentifier, java.lang.String blockerId, org.apache.thrift.async.AsyncMethodCallback<java.lang.Long> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
         super(client, protocolFactory, transport, resultHandler, false);
         this.tableIdentifier = tableIdentifier;
         this.blockerId = blockerId;
@@ -1017,7 +1017,7 @@ public class ArcticTableMetastore {
         prot.writeMessageEnd();
       }
 
-      public java.lang.Long getResult() throws NoSuchObjectException, org.apache.thrift.TException {
+      public java.lang.Long getResult() throws org.apache.amoro.api.NoSuchObjectException, org.apache.thrift.TException {
         if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
           throw new java.lang.IllegalStateException("Method call not finished!");
         }
@@ -1027,7 +1027,7 @@ public class ArcticTableMetastore {
       }
     }
 
-    public void getBlockers(TableIdentifier tableIdentifier, org.apache.thrift.async.AsyncMethodCallback<java.util.List<Blocker>> resultHandler) throws org.apache.thrift.TException {
+    public void getBlockers(org.apache.amoro.api.TableIdentifier tableIdentifier, org.apache.thrift.async.AsyncMethodCallback<java.util.List<Blocker>> resultHandler) throws org.apache.thrift.TException {
       checkReady();
       getBlockers_call method_call = new getBlockers_call(tableIdentifier, resultHandler, this, ___protocolFactory, ___transport);
       this.___currentMethod = method_call;
@@ -1035,8 +1035,8 @@ public class ArcticTableMetastore {
     }
 
     public static class getBlockers_call extends org.apache.thrift.async.TAsyncMethodCall<java.util.List<Blocker>> {
-      private TableIdentifier tableIdentifier;
-      public getBlockers_call(TableIdentifier tableIdentifier, org.apache.thrift.async.AsyncMethodCallback<java.util.List<Blocker>> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+      private org.apache.amoro.api.TableIdentifier tableIdentifier;
+      public getBlockers_call(org.apache.amoro.api.TableIdentifier tableIdentifier, org.apache.thrift.async.AsyncMethodCallback<java.util.List<Blocker>> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
         super(client, protocolFactory, transport, resultHandler, false);
         this.tableIdentifier = tableIdentifier;
       }
@@ -1163,7 +1163,7 @@ public class ArcticTableMetastore {
         getCatalog_result result = new getCatalog_result();
         try {
           result.success = iface.getCatalog(args.name);
-        } catch (NoSuchObjectException e1) {
+        } catch (org.apache.amoro.api.NoSuchObjectException e1) {
           result.e1 = e1;
         }
         return result;
@@ -1192,7 +1192,7 @@ public class ArcticTableMetastore {
         getDatabases_result result = new getDatabases_result();
         try {
           result.success = iface.getDatabases(args.catalogName);
-        } catch (NoSuchObjectException e) {
+        } catch (org.apache.amoro.api.NoSuchObjectException e) {
           result.e = e;
         }
         return result;
@@ -1221,9 +1221,9 @@ public class ArcticTableMetastore {
         createDatabase_result result = new createDatabase_result();
         try {
           iface.createDatabase(args.catalogName, args.database);
-        } catch (NoSuchObjectException e1) {
+        } catch (org.apache.amoro.api.NoSuchObjectException e1) {
           result.e1 = e1;
-        } catch (AlreadyExistsException e2) {
+        } catch (org.apache.amoro.api.AlreadyExistsException e2) {
           result.e2 = e2;
         }
         return result;
@@ -1252,9 +1252,9 @@ public class ArcticTableMetastore {
         dropDatabase_result result = new dropDatabase_result();
         try {
           iface.dropDatabase(args.catalogName, args.database);
-        } catch (NoSuchObjectException e1) {
+        } catch (org.apache.amoro.api.NoSuchObjectException e1) {
           result.e1 = e1;
-        } catch (NotSupportedException e2) {
+        } catch (org.apache.amoro.api.NotSupportedException e2) {
           result.e2 = e2;
         }
         return result;
@@ -1283,11 +1283,11 @@ public class ArcticTableMetastore {
         createTableMeta_result result = new createTableMeta_result();
         try {
           iface.createTableMeta(args.tableMeta);
-        } catch (AlreadyExistsException e1) {
+        } catch (org.apache.amoro.api.AlreadyExistsException e1) {
           result.e1 = e1;
-        } catch (InvalidObjectException e2) {
+        } catch (org.apache.amoro.api.InvalidObjectException e2) {
           result.e2 = e2;
-        } catch (MetaException e3) {
+        } catch (org.apache.amoro.api.MetaException e3) {
           result.e3 = e3;
         }
         return result;
@@ -1316,7 +1316,7 @@ public class ArcticTableMetastore {
         listTables_result result = new listTables_result();
         try {
           result.success = iface.listTables(args.catalogName, args.database);
-        } catch (NoSuchObjectException e) {
+        } catch (org.apache.amoro.api.NoSuchObjectException e) {
           result.e = e;
         }
         return result;
@@ -1345,7 +1345,7 @@ public class ArcticTableMetastore {
         getTable_result result = new getTable_result();
         try {
           result.success = iface.getTable(args.tableIdentifier);
-        } catch (NoSuchObjectException e) {
+        } catch (org.apache.amoro.api.NoSuchObjectException e) {
           result.e = e;
         }
         return result;
@@ -1374,9 +1374,9 @@ public class ArcticTableMetastore {
         removeTable_result result = new removeTable_result();
         try {
           iface.removeTable(args.tableIdentifier, args.deleteData);
-        } catch (NoSuchObjectException e1) {
+        } catch (org.apache.amoro.api.NoSuchObjectException e1) {
           result.e1 = e1;
-        } catch (MetaException e2) {
+        } catch (org.apache.amoro.api.MetaException e2) {
           result.e2 = e2;
         }
         return result;
@@ -1405,7 +1405,7 @@ public class ArcticTableMetastore {
         tableCommit_result result = new tableCommit_result();
         try {
           iface.tableCommit(args.commit);
-        } catch (MetaException e1) {
+        } catch (org.apache.amoro.api.MetaException e1) {
           result.e1 = e1;
         }
         return result;
@@ -1460,7 +1460,7 @@ public class ArcticTableMetastore {
         block_result result = new block_result();
         try {
           result.success = iface.block(args.tableIdentifier, args.operations, args.properties);
-        } catch (OperationConflictException e1) {
+        } catch (org.apache.amoro.api.OperationConflictException e1) {
           result.e1 = e1;
         }
         return result;
@@ -1515,7 +1515,7 @@ public class ArcticTableMetastore {
         try {
           result.success = iface.renewBlocker(args.tableIdentifier, args.blockerId);
           result.setSuccessIsSet(true);
-        } catch (NoSuchObjectException e) {
+        } catch (org.apache.amoro.api.NoSuchObjectException e) {
           result.e = e;
         }
         return result;
@@ -1729,8 +1729,8 @@ public class ArcticTableMetastore {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
             getCatalog_result result = new getCatalog_result();
-            if (e instanceof NoSuchObjectException) {
-              result.e1 = (NoSuchObjectException) e;
+            if (e instanceof org.apache.amoro.api.NoSuchObjectException) {
+              result.e1 = (org.apache.amoro.api.NoSuchObjectException) e;
               result.setE1IsSet(true);
               msg = result;
             } else if (e instanceof org.apache.thrift.transport.TTransportException) {
@@ -1794,8 +1794,8 @@ public class ArcticTableMetastore {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
             getDatabases_result result = new getDatabases_result();
-            if (e instanceof NoSuchObjectException) {
-              result.e = (NoSuchObjectException) e;
+            if (e instanceof org.apache.amoro.api.NoSuchObjectException) {
+              result.e = (org.apache.amoro.api.NoSuchObjectException) e;
               result.setEIsSet(true);
               msg = result;
             } else if (e instanceof org.apache.thrift.transport.TTransportException) {
@@ -1858,12 +1858,12 @@ public class ArcticTableMetastore {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
             createDatabase_result result = new createDatabase_result();
-            if (e instanceof NoSuchObjectException) {
-              result.e1 = (NoSuchObjectException) e;
+            if (e instanceof org.apache.amoro.api.NoSuchObjectException) {
+              result.e1 = (org.apache.amoro.api.NoSuchObjectException) e;
               result.setE1IsSet(true);
               msg = result;
-            } else if (e instanceof AlreadyExistsException) {
-              result.e2 = (AlreadyExistsException) e;
+            } else if (e instanceof org.apache.amoro.api.AlreadyExistsException) {
+              result.e2 = (org.apache.amoro.api.AlreadyExistsException) e;
               result.setE2IsSet(true);
               msg = result;
             } else if (e instanceof org.apache.thrift.transport.TTransportException) {
@@ -1926,12 +1926,12 @@ public class ArcticTableMetastore {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
             dropDatabase_result result = new dropDatabase_result();
-            if (e instanceof NoSuchObjectException) {
-              result.e1 = (NoSuchObjectException) e;
+            if (e instanceof org.apache.amoro.api.NoSuchObjectException) {
+              result.e1 = (org.apache.amoro.api.NoSuchObjectException) e;
               result.setE1IsSet(true);
               msg = result;
-            } else if (e instanceof NotSupportedException) {
-              result.e2 = (NotSupportedException) e;
+            } else if (e instanceof org.apache.amoro.api.NotSupportedException) {
+              result.e2 = (org.apache.amoro.api.NotSupportedException) e;
               result.setE2IsSet(true);
               msg = result;
             } else if (e instanceof org.apache.thrift.transport.TTransportException) {
@@ -1994,16 +1994,16 @@ public class ArcticTableMetastore {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
             createTableMeta_result result = new createTableMeta_result();
-            if (e instanceof AlreadyExistsException) {
-              result.e1 = (AlreadyExistsException) e;
+            if (e instanceof org.apache.amoro.api.AlreadyExistsException) {
+              result.e1 = (org.apache.amoro.api.AlreadyExistsException) e;
               result.setE1IsSet(true);
               msg = result;
-            } else if (e instanceof InvalidObjectException) {
-              result.e2 = (InvalidObjectException) e;
+            } else if (e instanceof org.apache.amoro.api.InvalidObjectException) {
+              result.e2 = (org.apache.amoro.api.InvalidObjectException) e;
               result.setE2IsSet(true);
               msg = result;
-            } else if (e instanceof MetaException) {
-              result.e3 = (MetaException) e;
+            } else if (e instanceof org.apache.amoro.api.MetaException) {
+              result.e3 = (org.apache.amoro.api.MetaException) e;
               result.setE3IsSet(true);
               msg = result;
             } else if (e instanceof org.apache.thrift.transport.TTransportException) {
@@ -2067,8 +2067,8 @@ public class ArcticTableMetastore {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
             listTables_result result = new listTables_result();
-            if (e instanceof NoSuchObjectException) {
-              result.e = (NoSuchObjectException) e;
+            if (e instanceof org.apache.amoro.api.NoSuchObjectException) {
+              result.e = (org.apache.amoro.api.NoSuchObjectException) e;
               result.setEIsSet(true);
               msg = result;
             } else if (e instanceof org.apache.thrift.transport.TTransportException) {
@@ -2132,8 +2132,8 @@ public class ArcticTableMetastore {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
             getTable_result result = new getTable_result();
-            if (e instanceof NoSuchObjectException) {
-              result.e = (NoSuchObjectException) e;
+            if (e instanceof org.apache.amoro.api.NoSuchObjectException) {
+              result.e = (org.apache.amoro.api.NoSuchObjectException) e;
               result.setEIsSet(true);
               msg = result;
             } else if (e instanceof org.apache.thrift.transport.TTransportException) {
@@ -2196,12 +2196,12 @@ public class ArcticTableMetastore {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
             removeTable_result result = new removeTable_result();
-            if (e instanceof NoSuchObjectException) {
-              result.e1 = (NoSuchObjectException) e;
+            if (e instanceof org.apache.amoro.api.NoSuchObjectException) {
+              result.e1 = (org.apache.amoro.api.NoSuchObjectException) e;
               result.setE1IsSet(true);
               msg = result;
-            } else if (e instanceof MetaException) {
-              result.e2 = (MetaException) e;
+            } else if (e instanceof org.apache.amoro.api.MetaException) {
+              result.e2 = (org.apache.amoro.api.MetaException) e;
               result.setE2IsSet(true);
               msg = result;
             } else if (e instanceof org.apache.thrift.transport.TTransportException) {
@@ -2264,8 +2264,8 @@ public class ArcticTableMetastore {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
             tableCommit_result result = new tableCommit_result();
-            if (e instanceof MetaException) {
-              result.e1 = (MetaException) e;
+            if (e instanceof org.apache.amoro.api.MetaException) {
+              result.e1 = (org.apache.amoro.api.MetaException) e;
               result.setE1IsSet(true);
               msg = result;
             } else if (e instanceof org.apache.thrift.transport.TTransportException) {
@@ -2391,8 +2391,8 @@ public class ArcticTableMetastore {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
             block_result result = new block_result();
-            if (e instanceof OperationConflictException) {
-              result.e1 = (OperationConflictException) e;
+            if (e instanceof org.apache.amoro.api.OperationConflictException) {
+              result.e1 = (org.apache.amoro.api.OperationConflictException) e;
               result.setE1IsSet(true);
               msg = result;
             } else if (e instanceof org.apache.thrift.transport.TTransportException) {
@@ -2517,8 +2517,8 @@ public class ArcticTableMetastore {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
             renewBlocker_result result = new renewBlocker_result();
-            if (e instanceof NoSuchObjectException) {
-              result.e = (NoSuchObjectException) e;
+            if (e instanceof org.apache.amoro.api.NoSuchObjectException) {
+              result.e = (org.apache.amoro.api.NoSuchObjectException) e;
               result.setEIsSet(true);
               msg = result;
             } else if (e instanceof org.apache.thrift.transport.TTransportException) {
@@ -4177,7 +4177,7 @@ public class ArcticTableMetastore {
     private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getCatalog_resultTupleSchemeFactory();
 
     public @org.apache.thrift.annotation.Nullable CatalogMeta success; // required
-    public @org.apache.thrift.annotation.Nullable NoSuchObjectException e1; // required
+    public @org.apache.thrift.annotation.Nullable org.apache.amoro.api.NoSuchObjectException e1; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -4249,7 +4249,7 @@ public class ArcticTableMetastore {
       tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, CatalogMeta.class)));
       tmpMap.put(_Fields.E1, new org.apache.thrift.meta_data.FieldMetaData("e1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.amoro.api.NoSuchObjectException.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
       org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getCatalog_result.class, metaDataMap);
     }
@@ -4259,7 +4259,7 @@ public class ArcticTableMetastore {
 
     public getCatalog_result(
       CatalogMeta success,
-      NoSuchObjectException e1)
+      org.apache.amoro.api.NoSuchObjectException e1)
     {
       this();
       this.success = success;
@@ -4274,7 +4274,7 @@ public class ArcticTableMetastore {
         this.success = new CatalogMeta(other.success);
       }
       if (other.isSetE1()) {
-        this.e1 = new NoSuchObjectException(other.e1);
+        this.e1 = new org.apache.amoro.api.NoSuchObjectException(other.e1);
       }
     }
 
@@ -4314,11 +4314,11 @@ public class ArcticTableMetastore {
     }
 
     @org.apache.thrift.annotation.Nullable
-    public NoSuchObjectException getE1() {
+    public org.apache.amoro.api.NoSuchObjectException getE1() {
       return this.e1;
     }
 
-    public getCatalog_result setE1(@org.apache.thrift.annotation.Nullable NoSuchObjectException e1) {
+    public getCatalog_result setE1(@org.apache.thrift.annotation.Nullable org.apache.amoro.api.NoSuchObjectException e1) {
       this.e1 = e1;
       return this;
     }
@@ -4352,7 +4352,7 @@ public class ArcticTableMetastore {
         if (value == null) {
           unsetE1();
         } else {
-          setE1((NoSuchObjectException)value);
+          setE1((org.apache.amoro.api.NoSuchObjectException)value);
         }
         break;
 
@@ -4559,7 +4559,7 @@ public class ArcticTableMetastore {
               break;
             case 1: // E1
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.e1 = new NoSuchObjectException();
+                struct.e1 = new org.apache.amoro.api.NoSuchObjectException();
                 struct.e1.read(iprot);
                 struct.setE1IsSet(true);
               } else { 
@@ -4634,7 +4634,7 @@ public class ArcticTableMetastore {
           struct.setSuccessIsSet(true);
         }
         if (incoming.get(1)) {
-          struct.e1 = new NoSuchObjectException();
+          struct.e1 = new org.apache.amoro.api.NoSuchObjectException();
           struct.e1.read(iprot);
           struct.setE1IsSet(true);
         }
@@ -5023,7 +5023,7 @@ public class ArcticTableMetastore {
     private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getDatabases_resultTupleSchemeFactory();
 
     public @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> success; // required
-    public @org.apache.thrift.annotation.Nullable NoSuchObjectException e; // required
+    public @org.apache.thrift.annotation.Nullable org.apache.amoro.api.NoSuchObjectException e; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -5096,7 +5096,7 @@ public class ArcticTableMetastore {
           new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
               new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
       tmpMap.put(_Fields.E, new org.apache.thrift.meta_data.FieldMetaData("e", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.amoro.api.NoSuchObjectException.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
       org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getDatabases_result.class, metaDataMap);
     }
@@ -5106,7 +5106,7 @@ public class ArcticTableMetastore {
 
     public getDatabases_result(
       java.util.List<java.lang.String> success,
-      NoSuchObjectException e)
+      org.apache.amoro.api.NoSuchObjectException e)
     {
       this();
       this.success = success;
@@ -5122,7 +5122,7 @@ public class ArcticTableMetastore {
         this.success = __this__success;
       }
       if (other.isSetE()) {
-        this.e = new NoSuchObjectException(other.e);
+        this.e = new org.apache.amoro.api.NoSuchObjectException(other.e);
       }
     }
 
@@ -5178,11 +5178,11 @@ public class ArcticTableMetastore {
     }
 
     @org.apache.thrift.annotation.Nullable
-    public NoSuchObjectException getE() {
+    public org.apache.amoro.api.NoSuchObjectException getE() {
       return this.e;
     }
 
-    public getDatabases_result setE(@org.apache.thrift.annotation.Nullable NoSuchObjectException e) {
+    public getDatabases_result setE(@org.apache.thrift.annotation.Nullable org.apache.amoro.api.NoSuchObjectException e) {
       this.e = e;
       return this;
     }
@@ -5216,7 +5216,7 @@ public class ArcticTableMetastore {
         if (value == null) {
           unsetE();
         } else {
-          setE((NoSuchObjectException)value);
+          setE((org.apache.amoro.api.NoSuchObjectException)value);
         }
         break;
 
@@ -5429,7 +5429,7 @@ public class ArcticTableMetastore {
               break;
             case 1: // E
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.e = new NoSuchObjectException();
+                struct.e = new org.apache.amoro.api.NoSuchObjectException();
                 struct.e.read(iprot);
                 struct.setEIsSet(true);
               } else { 
@@ -5525,7 +5525,7 @@ public class ArcticTableMetastore {
           struct.setSuccessIsSet(true);
         }
         if (incoming.get(1)) {
-          struct.e = new NoSuchObjectException();
+          struct.e = new org.apache.amoro.api.NoSuchObjectException();
           struct.e.read(iprot);
           struct.setEIsSet(true);
         }
@@ -6018,8 +6018,8 @@ public class ArcticTableMetastore {
     private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new createDatabase_resultStandardSchemeFactory();
     private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new createDatabase_resultTupleSchemeFactory();
 
-    public @org.apache.thrift.annotation.Nullable NoSuchObjectException e1; // required
-    public @org.apache.thrift.annotation.Nullable AlreadyExistsException e2; // required
+    public @org.apache.thrift.annotation.Nullable org.apache.amoro.api.NoSuchObjectException e1; // required
+    public @org.apache.thrift.annotation.Nullable org.apache.amoro.api.AlreadyExistsException e2; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -6089,9 +6089,9 @@ public class ArcticTableMetastore {
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.E1, new org.apache.thrift.meta_data.FieldMetaData("e1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.amoro.api.NoSuchObjectException.class)));
       tmpMap.put(_Fields.E2, new org.apache.thrift.meta_data.FieldMetaData("e2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AlreadyExistsException.class)));
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.amoro.api.AlreadyExistsException.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
       org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(createDatabase_result.class, metaDataMap);
     }
@@ -6100,8 +6100,8 @@ public class ArcticTableMetastore {
     }
 
     public createDatabase_result(
-      NoSuchObjectException e1,
-      AlreadyExistsException e2)
+      org.apache.amoro.api.NoSuchObjectException e1,
+      org.apache.amoro.api.AlreadyExistsException e2)
     {
       this();
       this.e1 = e1;
@@ -6113,10 +6113,10 @@ public class ArcticTableMetastore {
      */
     public createDatabase_result(createDatabase_result other) {
       if (other.isSetE1()) {
-        this.e1 = new NoSuchObjectException(other.e1);
+        this.e1 = new org.apache.amoro.api.NoSuchObjectException(other.e1);
       }
       if (other.isSetE2()) {
-        this.e2 = new AlreadyExistsException(other.e2);
+        this.e2 = new org.apache.amoro.api.AlreadyExistsException(other.e2);
       }
     }
 
@@ -6131,11 +6131,11 @@ public class ArcticTableMetastore {
     }
 
     @org.apache.thrift.annotation.Nullable
-    public NoSuchObjectException getE1() {
+    public org.apache.amoro.api.NoSuchObjectException getE1() {
       return this.e1;
     }
 
-    public createDatabase_result setE1(@org.apache.thrift.annotation.Nullable NoSuchObjectException e1) {
+    public createDatabase_result setE1(@org.apache.thrift.annotation.Nullable org.apache.amoro.api.NoSuchObjectException e1) {
       this.e1 = e1;
       return this;
     }
@@ -6156,11 +6156,11 @@ public class ArcticTableMetastore {
     }
 
     @org.apache.thrift.annotation.Nullable
-    public AlreadyExistsException getE2() {
+    public org.apache.amoro.api.AlreadyExistsException getE2() {
       return this.e2;
     }
 
-    public createDatabase_result setE2(@org.apache.thrift.annotation.Nullable AlreadyExistsException e2) {
+    public createDatabase_result setE2(@org.apache.thrift.annotation.Nullable org.apache.amoro.api.AlreadyExistsException e2) {
       this.e2 = e2;
       return this;
     }
@@ -6186,7 +6186,7 @@ public class ArcticTableMetastore {
         if (value == null) {
           unsetE1();
         } else {
-          setE1((NoSuchObjectException)value);
+          setE1((org.apache.amoro.api.NoSuchObjectException)value);
         }
         break;
 
@@ -6194,7 +6194,7 @@ public class ArcticTableMetastore {
         if (value == null) {
           unsetE2();
         } else {
-          setE2((AlreadyExistsException)value);
+          setE2((org.apache.amoro.api.AlreadyExistsException)value);
         }
         break;
 
@@ -6389,7 +6389,7 @@ public class ArcticTableMetastore {
           switch (schemeField.id) {
             case 1: // E1
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.e1 = new NoSuchObjectException();
+                struct.e1 = new org.apache.amoro.api.NoSuchObjectException();
                 struct.e1.read(iprot);
                 struct.setE1IsSet(true);
               } else { 
@@ -6398,7 +6398,7 @@ public class ArcticTableMetastore {
               break;
             case 2: // E2
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.e2 = new AlreadyExistsException();
+                struct.e2 = new org.apache.amoro.api.AlreadyExistsException();
                 struct.e2.read(iprot);
                 struct.setE2IsSet(true);
               } else { 
@@ -6468,12 +6468,12 @@ public class ArcticTableMetastore {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet incoming = iprot.readBitSet(2);
         if (incoming.get(0)) {
-          struct.e1 = new NoSuchObjectException();
+          struct.e1 = new org.apache.amoro.api.NoSuchObjectException();
           struct.e1.read(iprot);
           struct.setE1IsSet(true);
         }
         if (incoming.get(1)) {
-          struct.e2 = new AlreadyExistsException();
+          struct.e2 = new org.apache.amoro.api.AlreadyExistsException();
           struct.e2.read(iprot);
           struct.setE2IsSet(true);
         }
@@ -6966,8 +6966,8 @@ public class ArcticTableMetastore {
     private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new dropDatabase_resultStandardSchemeFactory();
     private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new dropDatabase_resultTupleSchemeFactory();
 
-    public @org.apache.thrift.annotation.Nullable NoSuchObjectException e1; // required
-    public @org.apache.thrift.annotation.Nullable NotSupportedException e2; // required
+    public @org.apache.thrift.annotation.Nullable org.apache.amoro.api.NoSuchObjectException e1; // required
+    public @org.apache.thrift.annotation.Nullable org.apache.amoro.api.NotSupportedException e2; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -7037,9 +7037,9 @@ public class ArcticTableMetastore {
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.E1, new org.apache.thrift.meta_data.FieldMetaData("e1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.amoro.api.NoSuchObjectException.class)));
       tmpMap.put(_Fields.E2, new org.apache.thrift.meta_data.FieldMetaData("e2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NotSupportedException.class)));
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.amoro.api.NotSupportedException.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
       org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(dropDatabase_result.class, metaDataMap);
     }
@@ -7048,8 +7048,8 @@ public class ArcticTableMetastore {
     }
 
     public dropDatabase_result(
-      NoSuchObjectException e1,
-      NotSupportedException e2)
+      org.apache.amoro.api.NoSuchObjectException e1,
+      org.apache.amoro.api.NotSupportedException e2)
     {
       this();
       this.e1 = e1;
@@ -7061,10 +7061,10 @@ public class ArcticTableMetastore {
      */
     public dropDatabase_result(dropDatabase_result other) {
       if (other.isSetE1()) {
-        this.e1 = new NoSuchObjectException(other.e1);
+        this.e1 = new org.apache.amoro.api.NoSuchObjectException(other.e1);
       }
       if (other.isSetE2()) {
-        this.e2 = new NotSupportedException(other.e2);
+        this.e2 = new org.apache.amoro.api.NotSupportedException(other.e2);
       }
     }
 
@@ -7079,11 +7079,11 @@ public class ArcticTableMetastore {
     }
 
     @org.apache.thrift.annotation.Nullable
-    public NoSuchObjectException getE1() {
+    public org.apache.amoro.api.NoSuchObjectException getE1() {
       return this.e1;
     }
 
-    public dropDatabase_result setE1(@org.apache.thrift.annotation.Nullable NoSuchObjectException e1) {
+    public dropDatabase_result setE1(@org.apache.thrift.annotation.Nullable org.apache.amoro.api.NoSuchObjectException e1) {
       this.e1 = e1;
       return this;
     }
@@ -7104,11 +7104,11 @@ public class ArcticTableMetastore {
     }
 
     @org.apache.thrift.annotation.Nullable
-    public NotSupportedException getE2() {
+    public org.apache.amoro.api.NotSupportedException getE2() {
       return this.e2;
     }
 
-    public dropDatabase_result setE2(@org.apache.thrift.annotation.Nullable NotSupportedException e2) {
+    public dropDatabase_result setE2(@org.apache.thrift.annotation.Nullable org.apache.amoro.api.NotSupportedException e2) {
       this.e2 = e2;
       return this;
     }
@@ -7134,7 +7134,7 @@ public class ArcticTableMetastore {
         if (value == null) {
           unsetE1();
         } else {
-          setE1((NoSuchObjectException)value);
+          setE1((org.apache.amoro.api.NoSuchObjectException)value);
         }
         break;
 
@@ -7142,7 +7142,7 @@ public class ArcticTableMetastore {
         if (value == null) {
           unsetE2();
         } else {
-          setE2((NotSupportedException)value);
+          setE2((org.apache.amoro.api.NotSupportedException)value);
         }
         break;
 
@@ -7337,7 +7337,7 @@ public class ArcticTableMetastore {
           switch (schemeField.id) {
             case 1: // E1
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.e1 = new NoSuchObjectException();
+                struct.e1 = new org.apache.amoro.api.NoSuchObjectException();
                 struct.e1.read(iprot);
                 struct.setE1IsSet(true);
               } else { 
@@ -7346,7 +7346,7 @@ public class ArcticTableMetastore {
               break;
             case 2: // E2
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.e2 = new NotSupportedException();
+                struct.e2 = new org.apache.amoro.api.NotSupportedException();
                 struct.e2.read(iprot);
                 struct.setE2IsSet(true);
               } else { 
@@ -7416,12 +7416,12 @@ public class ArcticTableMetastore {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet incoming = iprot.readBitSet(2);
         if (incoming.get(0)) {
-          struct.e1 = new NoSuchObjectException();
+          struct.e1 = new org.apache.amoro.api.NoSuchObjectException();
           struct.e1.read(iprot);
           struct.setE1IsSet(true);
         }
         if (incoming.get(1)) {
-          struct.e2 = new NotSupportedException();
+          struct.e2 = new org.apache.amoro.api.NotSupportedException();
           struct.e2.read(iprot);
           struct.setE2IsSet(true);
         }
@@ -7815,9 +7815,9 @@ public class ArcticTableMetastore {
     private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new createTableMeta_resultStandardSchemeFactory();
     private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new createTableMeta_resultTupleSchemeFactory();
 
-    public @org.apache.thrift.annotation.Nullable AlreadyExistsException e1; // required
-    public @org.apache.thrift.annotation.Nullable InvalidObjectException e2; // required
-    public @org.apache.thrift.annotation.Nullable MetaException e3; // required
+    public @org.apache.thrift.annotation.Nullable org.apache.amoro.api.AlreadyExistsException e1; // required
+    public @org.apache.thrift.annotation.Nullable org.apache.amoro.api.InvalidObjectException e2; // required
+    public @org.apache.thrift.annotation.Nullable org.apache.amoro.api.MetaException e3; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -7890,11 +7890,11 @@ public class ArcticTableMetastore {
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.E1, new org.apache.thrift.meta_data.FieldMetaData("e1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AlreadyExistsException.class)));
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.amoro.api.AlreadyExistsException.class)));
       tmpMap.put(_Fields.E2, new org.apache.thrift.meta_data.FieldMetaData("e2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidObjectException.class)));
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.amoro.api.InvalidObjectException.class)));
       tmpMap.put(_Fields.E3, new org.apache.thrift.meta_data.FieldMetaData("e3", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.amoro.api.MetaException.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
       org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(createTableMeta_result.class, metaDataMap);
     }
@@ -7903,9 +7903,9 @@ public class ArcticTableMetastore {
     }
 
     public createTableMeta_result(
-      AlreadyExistsException e1,
-      InvalidObjectException e2,
-      MetaException e3)
+      org.apache.amoro.api.AlreadyExistsException e1,
+      org.apache.amoro.api.InvalidObjectException e2,
+      org.apache.amoro.api.MetaException e3)
     {
       this();
       this.e1 = e1;
@@ -7918,13 +7918,13 @@ public class ArcticTableMetastore {
      */
     public createTableMeta_result(createTableMeta_result other) {
       if (other.isSetE1()) {
-        this.e1 = new AlreadyExistsException(other.e1);
+        this.e1 = new org.apache.amoro.api.AlreadyExistsException(other.e1);
       }
       if (other.isSetE2()) {
-        this.e2 = new InvalidObjectException(other.e2);
+        this.e2 = new org.apache.amoro.api.InvalidObjectException(other.e2);
       }
       if (other.isSetE3()) {
-        this.e3 = new MetaException(other.e3);
+        this.e3 = new org.apache.amoro.api.MetaException(other.e3);
       }
     }
 
@@ -7940,11 +7940,11 @@ public class ArcticTableMetastore {
     }
 
     @org.apache.thrift.annotation.Nullable
-    public AlreadyExistsException getE1() {
+    public org.apache.amoro.api.AlreadyExistsException getE1() {
       return this.e1;
     }
 
-    public createTableMeta_result setE1(@org.apache.thrift.annotation.Nullable AlreadyExistsException e1) {
+    public createTableMeta_result setE1(@org.apache.thrift.annotation.Nullable org.apache.amoro.api.AlreadyExistsException e1) {
       this.e1 = e1;
       return this;
     }
@@ -7965,11 +7965,11 @@ public class ArcticTableMetastore {
     }
 
     @org.apache.thrift.annotation.Nullable
-    public InvalidObjectException getE2() {
+    public org.apache.amoro.api.InvalidObjectException getE2() {
       return this.e2;
     }
 
-    public createTableMeta_result setE2(@org.apache.thrift.annotation.Nullable InvalidObjectException e2) {
+    public createTableMeta_result setE2(@org.apache.thrift.annotation.Nullable org.apache.amoro.api.InvalidObjectException e2) {
       this.e2 = e2;
       return this;
     }
@@ -7990,11 +7990,11 @@ public class ArcticTableMetastore {
     }
 
     @org.apache.thrift.annotation.Nullable
-    public MetaException getE3() {
+    public org.apache.amoro.api.MetaException getE3() {
       return this.e3;
     }
 
-    public createTableMeta_result setE3(@org.apache.thrift.annotation.Nullable MetaException e3) {
+    public createTableMeta_result setE3(@org.apache.thrift.annotation.Nullable org.apache.amoro.api.MetaException e3) {
       this.e3 = e3;
       return this;
     }
@@ -8020,7 +8020,7 @@ public class ArcticTableMetastore {
         if (value == null) {
           unsetE1();
         } else {
-          setE1((AlreadyExistsException)value);
+          setE1((org.apache.amoro.api.AlreadyExistsException)value);
         }
         break;
 
@@ -8028,7 +8028,7 @@ public class ArcticTableMetastore {
         if (value == null) {
           unsetE2();
         } else {
-          setE2((InvalidObjectException)value);
+          setE2((org.apache.amoro.api.InvalidObjectException)value);
         }
         break;
 
@@ -8036,7 +8036,7 @@ public class ArcticTableMetastore {
         if (value == null) {
           unsetE3();
         } else {
-          setE3((MetaException)value);
+          setE3((org.apache.amoro.api.MetaException)value);
         }
         break;
 
@@ -8267,7 +8267,7 @@ public class ArcticTableMetastore {
           switch (schemeField.id) {
             case 1: // E1
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.e1 = new AlreadyExistsException();
+                struct.e1 = new org.apache.amoro.api.AlreadyExistsException();
                 struct.e1.read(iprot);
                 struct.setE1IsSet(true);
               } else { 
@@ -8276,7 +8276,7 @@ public class ArcticTableMetastore {
               break;
             case 2: // E2
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.e2 = new InvalidObjectException();
+                struct.e2 = new org.apache.amoro.api.InvalidObjectException();
                 struct.e2.read(iprot);
                 struct.setE2IsSet(true);
               } else { 
@@ -8285,7 +8285,7 @@ public class ArcticTableMetastore {
               break;
             case 3: // E3
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.e3 = new MetaException();
+                struct.e3 = new org.apache.amoro.api.MetaException();
                 struct.e3.read(iprot);
                 struct.setE3IsSet(true);
               } else { 
@@ -8366,17 +8366,17 @@ public class ArcticTableMetastore {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet incoming = iprot.readBitSet(3);
         if (incoming.get(0)) {
-          struct.e1 = new AlreadyExistsException();
+          struct.e1 = new org.apache.amoro.api.AlreadyExistsException();
           struct.e1.read(iprot);
           struct.setE1IsSet(true);
         }
         if (incoming.get(1)) {
-          struct.e2 = new InvalidObjectException();
+          struct.e2 = new org.apache.amoro.api.InvalidObjectException();
           struct.e2.read(iprot);
           struct.setE2IsSet(true);
         }
         if (incoming.get(2)) {
-          struct.e3 = new MetaException();
+          struct.e3 = new org.apache.amoro.api.MetaException();
           struct.e3.read(iprot);
           struct.setE3IsSet(true);
         }
@@ -8870,7 +8870,7 @@ public class ArcticTableMetastore {
     private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new listTables_resultTupleSchemeFactory();
 
     public @org.apache.thrift.annotation.Nullable java.util.List<TableMeta> success; // required
-    public @org.apache.thrift.annotation.Nullable NoSuchObjectException e; // required
+    public @org.apache.thrift.annotation.Nullable org.apache.amoro.api.NoSuchObjectException e; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -8943,7 +8943,7 @@ public class ArcticTableMetastore {
           new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
               new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TableMeta.class))));
       tmpMap.put(_Fields.E, new org.apache.thrift.meta_data.FieldMetaData("e", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.amoro.api.NoSuchObjectException.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
       org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(listTables_result.class, metaDataMap);
     }
@@ -8953,7 +8953,7 @@ public class ArcticTableMetastore {
 
     public listTables_result(
       java.util.List<TableMeta> success,
-      NoSuchObjectException e)
+      org.apache.amoro.api.NoSuchObjectException e)
     {
       this();
       this.success = success;
@@ -8972,7 +8972,7 @@ public class ArcticTableMetastore {
         this.success = __this__success;
       }
       if (other.isSetE()) {
-        this.e = new NoSuchObjectException(other.e);
+        this.e = new org.apache.amoro.api.NoSuchObjectException(other.e);
       }
     }
 
@@ -9028,11 +9028,11 @@ public class ArcticTableMetastore {
     }
 
     @org.apache.thrift.annotation.Nullable
-    public NoSuchObjectException getE() {
+    public org.apache.amoro.api.NoSuchObjectException getE() {
       return this.e;
     }
 
-    public listTables_result setE(@org.apache.thrift.annotation.Nullable NoSuchObjectException e) {
+    public listTables_result setE(@org.apache.thrift.annotation.Nullable org.apache.amoro.api.NoSuchObjectException e) {
       this.e = e;
       return this;
     }
@@ -9066,7 +9066,7 @@ public class ArcticTableMetastore {
         if (value == null) {
           unsetE();
         } else {
-          setE((NoSuchObjectException)value);
+          setE((org.apache.amoro.api.NoSuchObjectException)value);
         }
         break;
 
@@ -9280,7 +9280,7 @@ public class ArcticTableMetastore {
               break;
             case 1: // E
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.e = new NoSuchObjectException();
+                struct.e = new org.apache.amoro.api.NoSuchObjectException();
                 struct.e.read(iprot);
                 struct.setEIsSet(true);
               } else { 
@@ -9377,7 +9377,7 @@ public class ArcticTableMetastore {
           struct.setSuccessIsSet(true);
         }
         if (incoming.get(1)) {
-          struct.e = new NoSuchObjectException();
+          struct.e = new org.apache.amoro.api.NoSuchObjectException();
           struct.e.read(iprot);
           struct.setEIsSet(true);
         }
@@ -9397,7 +9397,7 @@ public class ArcticTableMetastore {
     private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getTable_argsStandardSchemeFactory();
     private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getTable_argsTupleSchemeFactory();
 
-    public @org.apache.thrift.annotation.Nullable TableIdentifier tableIdentifier; // required
+    public @org.apache.thrift.annotation.Nullable org.apache.amoro.api.TableIdentifier tableIdentifier; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -9464,7 +9464,7 @@ public class ArcticTableMetastore {
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.TABLE_IDENTIFIER, new org.apache.thrift.meta_data.FieldMetaData("tableIdentifier", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TableIdentifier.class)));
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.amoro.api.TableIdentifier.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
       org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getTable_args.class, metaDataMap);
     }
@@ -9473,7 +9473,7 @@ public class ArcticTableMetastore {
     }
 
     public getTable_args(
-      TableIdentifier tableIdentifier)
+      org.apache.amoro.api.TableIdentifier tableIdentifier)
     {
       this();
       this.tableIdentifier = tableIdentifier;
@@ -9484,7 +9484,7 @@ public class ArcticTableMetastore {
      */
     public getTable_args(getTable_args other) {
       if (other.isSetTableIdentifier()) {
-        this.tableIdentifier = new TableIdentifier(other.tableIdentifier);
+        this.tableIdentifier = new org.apache.amoro.api.TableIdentifier(other.tableIdentifier);
       }
     }
 
@@ -9498,11 +9498,11 @@ public class ArcticTableMetastore {
     }
 
     @org.apache.thrift.annotation.Nullable
-    public TableIdentifier getTableIdentifier() {
+    public org.apache.amoro.api.TableIdentifier getTableIdentifier() {
       return this.tableIdentifier;
     }
 
-    public getTable_args setTableIdentifier(@org.apache.thrift.annotation.Nullable TableIdentifier tableIdentifier) {
+    public getTable_args setTableIdentifier(@org.apache.thrift.annotation.Nullable org.apache.amoro.api.TableIdentifier tableIdentifier) {
       this.tableIdentifier = tableIdentifier;
       return this;
     }
@@ -9528,7 +9528,7 @@ public class ArcticTableMetastore {
         if (value == null) {
           unsetTableIdentifier();
         } else {
-          setTableIdentifier((TableIdentifier)value);
+          setTableIdentifier((org.apache.amoro.api.TableIdentifier)value);
         }
         break;
 
@@ -9690,7 +9690,7 @@ public class ArcticTableMetastore {
           switch (schemeField.id) {
             case 1: // TABLE_IDENTIFIER
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.tableIdentifier = new TableIdentifier();
+                struct.tableIdentifier = new org.apache.amoro.api.TableIdentifier();
                 struct.tableIdentifier.read(iprot);
                 struct.setTableIdentifierIsSet(true);
               } else { 
@@ -9749,7 +9749,7 @@ public class ArcticTableMetastore {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet incoming = iprot.readBitSet(1);
         if (incoming.get(0)) {
-          struct.tableIdentifier = new TableIdentifier();
+          struct.tableIdentifier = new org.apache.amoro.api.TableIdentifier();
           struct.tableIdentifier.read(iprot);
           struct.setTableIdentifierIsSet(true);
         }
@@ -9771,7 +9771,7 @@ public class ArcticTableMetastore {
     private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getTable_resultTupleSchemeFactory();
 
     public @org.apache.thrift.annotation.Nullable TableMeta success; // required
-    public @org.apache.thrift.annotation.Nullable NoSuchObjectException e; // required
+    public @org.apache.thrift.annotation.Nullable org.apache.amoro.api.NoSuchObjectException e; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -9843,7 +9843,7 @@ public class ArcticTableMetastore {
       tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TableMeta.class)));
       tmpMap.put(_Fields.E, new org.apache.thrift.meta_data.FieldMetaData("e", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.amoro.api.NoSuchObjectException.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
       org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getTable_result.class, metaDataMap);
     }
@@ -9853,7 +9853,7 @@ public class ArcticTableMetastore {
 
     public getTable_result(
       TableMeta success,
-      NoSuchObjectException e)
+      org.apache.amoro.api.NoSuchObjectException e)
     {
       this();
       this.success = success;
@@ -9868,7 +9868,7 @@ public class ArcticTableMetastore {
         this.success = new TableMeta(other.success);
       }
       if (other.isSetE()) {
-        this.e = new NoSuchObjectException(other.e);
+        this.e = new org.apache.amoro.api.NoSuchObjectException(other.e);
       }
     }
 
@@ -9908,11 +9908,11 @@ public class ArcticTableMetastore {
     }
 
     @org.apache.thrift.annotation.Nullable
-    public NoSuchObjectException getE() {
+    public org.apache.amoro.api.NoSuchObjectException getE() {
       return this.e;
     }
 
-    public getTable_result setE(@org.apache.thrift.annotation.Nullable NoSuchObjectException e) {
+    public getTable_result setE(@org.apache.thrift.annotation.Nullable org.apache.amoro.api.NoSuchObjectException e) {
       this.e = e;
       return this;
     }
@@ -9946,7 +9946,7 @@ public class ArcticTableMetastore {
         if (value == null) {
           unsetE();
         } else {
-          setE((NoSuchObjectException)value);
+          setE((org.apache.amoro.api.NoSuchObjectException)value);
         }
         break;
 
@@ -10153,7 +10153,7 @@ public class ArcticTableMetastore {
               break;
             case 1: // E
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.e = new NoSuchObjectException();
+                struct.e = new org.apache.amoro.api.NoSuchObjectException();
                 struct.e.read(iprot);
                 struct.setEIsSet(true);
               } else { 
@@ -10228,7 +10228,7 @@ public class ArcticTableMetastore {
           struct.setSuccessIsSet(true);
         }
         if (incoming.get(1)) {
-          struct.e = new NoSuchObjectException();
+          struct.e = new org.apache.amoro.api.NoSuchObjectException();
           struct.e.read(iprot);
           struct.setEIsSet(true);
         }
@@ -10249,7 +10249,7 @@ public class ArcticTableMetastore {
     private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new removeTable_argsStandardSchemeFactory();
     private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new removeTable_argsTupleSchemeFactory();
 
-    public @org.apache.thrift.annotation.Nullable TableIdentifier tableIdentifier; // required
+    public @org.apache.thrift.annotation.Nullable org.apache.amoro.api.TableIdentifier tableIdentifier; // required
     public boolean deleteData; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
@@ -10322,7 +10322,7 @@ public class ArcticTableMetastore {
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.TABLE_IDENTIFIER, new org.apache.thrift.meta_data.FieldMetaData("tableIdentifier", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TableIdentifier.class)));
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.amoro.api.TableIdentifier.class)));
       tmpMap.put(_Fields.DELETE_DATA, new org.apache.thrift.meta_data.FieldMetaData("deleteData", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
@@ -10333,7 +10333,7 @@ public class ArcticTableMetastore {
     }
 
     public removeTable_args(
-      TableIdentifier tableIdentifier,
+      org.apache.amoro.api.TableIdentifier tableIdentifier,
       boolean deleteData)
     {
       this();
@@ -10348,7 +10348,7 @@ public class ArcticTableMetastore {
     public removeTable_args(removeTable_args other) {
       __isset_bitfield = other.__isset_bitfield;
       if (other.isSetTableIdentifier()) {
-        this.tableIdentifier = new TableIdentifier(other.tableIdentifier);
+        this.tableIdentifier = new org.apache.amoro.api.TableIdentifier(other.tableIdentifier);
       }
       this.deleteData = other.deleteData;
     }
@@ -10365,11 +10365,11 @@ public class ArcticTableMetastore {
     }
 
     @org.apache.thrift.annotation.Nullable
-    public TableIdentifier getTableIdentifier() {
+    public org.apache.amoro.api.TableIdentifier getTableIdentifier() {
       return this.tableIdentifier;
     }
 
-    public removeTable_args setTableIdentifier(@org.apache.thrift.annotation.Nullable TableIdentifier tableIdentifier) {
+    public removeTable_args setTableIdentifier(@org.apache.thrift.annotation.Nullable org.apache.amoro.api.TableIdentifier tableIdentifier) {
       this.tableIdentifier = tableIdentifier;
       return this;
     }
@@ -10418,7 +10418,7 @@ public class ArcticTableMetastore {
         if (value == null) {
           unsetTableIdentifier();
         } else {
-          setTableIdentifier((TableIdentifier)value);
+          setTableIdentifier((org.apache.amoro.api.TableIdentifier)value);
         }
         break;
 
@@ -10620,7 +10620,7 @@ public class ArcticTableMetastore {
           switch (schemeField.id) {
             case 1: // TABLE_IDENTIFIER
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.tableIdentifier = new TableIdentifier();
+                struct.tableIdentifier = new org.apache.amoro.api.TableIdentifier();
                 struct.tableIdentifier.read(iprot);
                 struct.setTableIdentifierIsSet(true);
               } else { 
@@ -10696,7 +10696,7 @@ public class ArcticTableMetastore {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet incoming = iprot.readBitSet(2);
         if (incoming.get(0)) {
-          struct.tableIdentifier = new TableIdentifier();
+          struct.tableIdentifier = new org.apache.amoro.api.TableIdentifier();
           struct.tableIdentifier.read(iprot);
           struct.setTableIdentifierIsSet(true);
         }
@@ -10721,8 +10721,8 @@ public class ArcticTableMetastore {
     private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new removeTable_resultStandardSchemeFactory();
     private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new removeTable_resultTupleSchemeFactory();
 
-    public @org.apache.thrift.annotation.Nullable NoSuchObjectException e1; // required
-    public @org.apache.thrift.annotation.Nullable MetaException e2; // required
+    public @org.apache.thrift.annotation.Nullable org.apache.amoro.api.NoSuchObjectException e1; // required
+    public @org.apache.thrift.annotation.Nullable org.apache.amoro.api.MetaException e2; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -10792,9 +10792,9 @@ public class ArcticTableMetastore {
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.E1, new org.apache.thrift.meta_data.FieldMetaData("e1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.amoro.api.NoSuchObjectException.class)));
       tmpMap.put(_Fields.E2, new org.apache.thrift.meta_data.FieldMetaData("e2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.amoro.api.MetaException.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
       org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(removeTable_result.class, metaDataMap);
     }
@@ -10803,8 +10803,8 @@ public class ArcticTableMetastore {
     }
 
     public removeTable_result(
-      NoSuchObjectException e1,
-      MetaException e2)
+      org.apache.amoro.api.NoSuchObjectException e1,
+      org.apache.amoro.api.MetaException e2)
     {
       this();
       this.e1 = e1;
@@ -10816,10 +10816,10 @@ public class ArcticTableMetastore {
      */
     public removeTable_result(removeTable_result other) {
       if (other.isSetE1()) {
-        this.e1 = new NoSuchObjectException(other.e1);
+        this.e1 = new org.apache.amoro.api.NoSuchObjectException(other.e1);
       }
       if (other.isSetE2()) {
-        this.e2 = new MetaException(other.e2);
+        this.e2 = new org.apache.amoro.api.MetaException(other.e2);
       }
     }
 
@@ -10834,11 +10834,11 @@ public class ArcticTableMetastore {
     }
 
     @org.apache.thrift.annotation.Nullable
-    public NoSuchObjectException getE1() {
+    public org.apache.amoro.api.NoSuchObjectException getE1() {
       return this.e1;
     }
 
-    public removeTable_result setE1(@org.apache.thrift.annotation.Nullable NoSuchObjectException e1) {
+    public removeTable_result setE1(@org.apache.thrift.annotation.Nullable org.apache.amoro.api.NoSuchObjectException e1) {
       this.e1 = e1;
       return this;
     }
@@ -10859,11 +10859,11 @@ public class ArcticTableMetastore {
     }
 
     @org.apache.thrift.annotation.Nullable
-    public MetaException getE2() {
+    public org.apache.amoro.api.MetaException getE2() {
       return this.e2;
     }
 
-    public removeTable_result setE2(@org.apache.thrift.annotation.Nullable MetaException e2) {
+    public removeTable_result setE2(@org.apache.thrift.annotation.Nullable org.apache.amoro.api.MetaException e2) {
       this.e2 = e2;
       return this;
     }
@@ -10889,7 +10889,7 @@ public class ArcticTableMetastore {
         if (value == null) {
           unsetE1();
         } else {
-          setE1((NoSuchObjectException)value);
+          setE1((org.apache.amoro.api.NoSuchObjectException)value);
         }
         break;
 
@@ -10897,7 +10897,7 @@ public class ArcticTableMetastore {
         if (value == null) {
           unsetE2();
         } else {
-          setE2((MetaException)value);
+          setE2((org.apache.amoro.api.MetaException)value);
         }
         break;
 
@@ -11092,7 +11092,7 @@ public class ArcticTableMetastore {
           switch (schemeField.id) {
             case 1: // E1
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.e1 = new NoSuchObjectException();
+                struct.e1 = new org.apache.amoro.api.NoSuchObjectException();
                 struct.e1.read(iprot);
                 struct.setE1IsSet(true);
               } else { 
@@ -11101,7 +11101,7 @@ public class ArcticTableMetastore {
               break;
             case 2: // E2
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.e2 = new MetaException();
+                struct.e2 = new org.apache.amoro.api.MetaException();
                 struct.e2.read(iprot);
                 struct.setE2IsSet(true);
               } else { 
@@ -11171,12 +11171,12 @@ public class ArcticTableMetastore {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet incoming = iprot.readBitSet(2);
         if (incoming.get(0)) {
-          struct.e1 = new NoSuchObjectException();
+          struct.e1 = new org.apache.amoro.api.NoSuchObjectException();
           struct.e1.read(iprot);
           struct.setE1IsSet(true);
         }
         if (incoming.get(1)) {
-          struct.e2 = new MetaException();
+          struct.e2 = new org.apache.amoro.api.MetaException();
           struct.e2.read(iprot);
           struct.setE2IsSet(true);
         }
@@ -11568,7 +11568,7 @@ public class ArcticTableMetastore {
     private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new tableCommit_resultStandardSchemeFactory();
     private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new tableCommit_resultTupleSchemeFactory();
 
-    public @org.apache.thrift.annotation.Nullable MetaException e1; // required
+    public @org.apache.thrift.annotation.Nullable org.apache.amoro.api.MetaException e1; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -11635,7 +11635,7 @@ public class ArcticTableMetastore {
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.E1, new org.apache.thrift.meta_data.FieldMetaData("e1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, MetaException.class)));
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.amoro.api.MetaException.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
       org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(tableCommit_result.class, metaDataMap);
     }
@@ -11644,7 +11644,7 @@ public class ArcticTableMetastore {
     }
 
     public tableCommit_result(
-      MetaException e1)
+      org.apache.amoro.api.MetaException e1)
     {
       this();
       this.e1 = e1;
@@ -11655,7 +11655,7 @@ public class ArcticTableMetastore {
      */
     public tableCommit_result(tableCommit_result other) {
       if (other.isSetE1()) {
-        this.e1 = new MetaException(other.e1);
+        this.e1 = new org.apache.amoro.api.MetaException(other.e1);
       }
     }
 
@@ -11669,11 +11669,11 @@ public class ArcticTableMetastore {
     }
 
     @org.apache.thrift.annotation.Nullable
-    public MetaException getE1() {
+    public org.apache.amoro.api.MetaException getE1() {
       return this.e1;
     }
 
-    public tableCommit_result setE1(@org.apache.thrift.annotation.Nullable MetaException e1) {
+    public tableCommit_result setE1(@org.apache.thrift.annotation.Nullable org.apache.amoro.api.MetaException e1) {
       this.e1 = e1;
       return this;
     }
@@ -11699,7 +11699,7 @@ public class ArcticTableMetastore {
         if (value == null) {
           unsetE1();
         } else {
-          setE1((MetaException)value);
+          setE1((org.apache.amoro.api.MetaException)value);
         }
         break;
 
@@ -11858,7 +11858,7 @@ public class ArcticTableMetastore {
           switch (schemeField.id) {
             case 1: // E1
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.e1 = new MetaException();
+                struct.e1 = new org.apache.amoro.api.MetaException();
                 struct.e1.read(iprot);
                 struct.setE1IsSet(true);
               } else { 
@@ -11917,7 +11917,7 @@ public class ArcticTableMetastore {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet incoming = iprot.readBitSet(1);
         if (incoming.get(0)) {
-          struct.e1 = new MetaException();
+          struct.e1 = new org.apache.amoro.api.MetaException();
           struct.e1.read(iprot);
           struct.setE1IsSet(true);
         }
@@ -11938,7 +11938,7 @@ public class ArcticTableMetastore {
     private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new allocateTransactionId_argsStandardSchemeFactory();
     private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new allocateTransactionId_argsTupleSchemeFactory();
 
-    public @org.apache.thrift.annotation.Nullable TableIdentifier tableIdentifier; // required
+    public @org.apache.thrift.annotation.Nullable org.apache.amoro.api.TableIdentifier tableIdentifier; // required
     public @org.apache.thrift.annotation.Nullable java.lang.String transactionSignature; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
@@ -12009,7 +12009,7 @@ public class ArcticTableMetastore {
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.TABLE_IDENTIFIER, new org.apache.thrift.meta_data.FieldMetaData("tableIdentifier", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TableIdentifier.class)));
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.amoro.api.TableIdentifier.class)));
       tmpMap.put(_Fields.TRANSACTION_SIGNATURE, new org.apache.thrift.meta_data.FieldMetaData("transactionSignature", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
@@ -12020,7 +12020,7 @@ public class ArcticTableMetastore {
     }
 
     public allocateTransactionId_args(
-      TableIdentifier tableIdentifier,
+      org.apache.amoro.api.TableIdentifier tableIdentifier,
       java.lang.String transactionSignature)
     {
       this();
@@ -12033,7 +12033,7 @@ public class ArcticTableMetastore {
      */
     public allocateTransactionId_args(allocateTransactionId_args other) {
       if (other.isSetTableIdentifier()) {
-        this.tableIdentifier = new TableIdentifier(other.tableIdentifier);
+        this.tableIdentifier = new org.apache.amoro.api.TableIdentifier(other.tableIdentifier);
       }
       if (other.isSetTransactionSignature()) {
         this.transactionSignature = other.transactionSignature;
@@ -12051,11 +12051,11 @@ public class ArcticTableMetastore {
     }
 
     @org.apache.thrift.annotation.Nullable
-    public TableIdentifier getTableIdentifier() {
+    public org.apache.amoro.api.TableIdentifier getTableIdentifier() {
       return this.tableIdentifier;
     }
 
-    public allocateTransactionId_args setTableIdentifier(@org.apache.thrift.annotation.Nullable TableIdentifier tableIdentifier) {
+    public allocateTransactionId_args setTableIdentifier(@org.apache.thrift.annotation.Nullable org.apache.amoro.api.TableIdentifier tableIdentifier) {
       this.tableIdentifier = tableIdentifier;
       return this;
     }
@@ -12106,7 +12106,7 @@ public class ArcticTableMetastore {
         if (value == null) {
           unsetTableIdentifier();
         } else {
-          setTableIdentifier((TableIdentifier)value);
+          setTableIdentifier((org.apache.amoro.api.TableIdentifier)value);
         }
         break;
 
@@ -12312,7 +12312,7 @@ public class ArcticTableMetastore {
           switch (schemeField.id) {
             case 1: // TABLE_IDENTIFIER
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.tableIdentifier = new TableIdentifier();
+                struct.tableIdentifier = new org.apache.amoro.api.TableIdentifier();
                 struct.tableIdentifier.read(iprot);
                 struct.setTableIdentifierIsSet(true);
               } else { 
@@ -12390,7 +12390,7 @@ public class ArcticTableMetastore {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet incoming = iprot.readBitSet(2);
         if (incoming.get(0)) {
-          struct.tableIdentifier = new TableIdentifier();
+          struct.tableIdentifier = new org.apache.amoro.api.TableIdentifier();
           struct.tableIdentifier.read(iprot);
           struct.setTableIdentifierIsSet(true);
         }
@@ -12780,7 +12780,7 @@ public class ArcticTableMetastore {
     private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new block_argsStandardSchemeFactory();
     private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new block_argsTupleSchemeFactory();
 
-    public @org.apache.thrift.annotation.Nullable TableIdentifier tableIdentifier; // required
+    public @org.apache.thrift.annotation.Nullable org.apache.amoro.api.TableIdentifier tableIdentifier; // required
     public @org.apache.thrift.annotation.Nullable java.util.List<BlockableOperation> operations; // required
     public @org.apache.thrift.annotation.Nullable java.util.Map<java.lang.String,java.lang.String> properties; // required
 
@@ -12855,7 +12855,7 @@ public class ArcticTableMetastore {
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.TABLE_IDENTIFIER, new org.apache.thrift.meta_data.FieldMetaData("tableIdentifier", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TableIdentifier.class)));
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.amoro.api.TableIdentifier.class)));
       tmpMap.put(_Fields.OPERATIONS, new org.apache.thrift.meta_data.FieldMetaData("operations", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
               new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, BlockableOperation.class))));
@@ -12871,7 +12871,7 @@ public class ArcticTableMetastore {
     }
 
     public block_args(
-      TableIdentifier tableIdentifier,
+      org.apache.amoro.api.TableIdentifier tableIdentifier,
       java.util.List<BlockableOperation> operations,
       java.util.Map<java.lang.String,java.lang.String> properties)
     {
@@ -12886,7 +12886,7 @@ public class ArcticTableMetastore {
      */
     public block_args(block_args other) {
       if (other.isSetTableIdentifier()) {
-        this.tableIdentifier = new TableIdentifier(other.tableIdentifier);
+        this.tableIdentifier = new org.apache.amoro.api.TableIdentifier(other.tableIdentifier);
       }
       if (other.isSetOperations()) {
         java.util.List<BlockableOperation> __this__operations = new java.util.ArrayList<BlockableOperation>(other.operations.size());
@@ -12913,11 +12913,11 @@ public class ArcticTableMetastore {
     }
 
     @org.apache.thrift.annotation.Nullable
-    public TableIdentifier getTableIdentifier() {
+    public org.apache.amoro.api.TableIdentifier getTableIdentifier() {
       return this.tableIdentifier;
     }
 
-    public block_args setTableIdentifier(@org.apache.thrift.annotation.Nullable TableIdentifier tableIdentifier) {
+    public block_args setTableIdentifier(@org.apache.thrift.annotation.Nullable org.apache.amoro.api.TableIdentifier tableIdentifier) {
       this.tableIdentifier = tableIdentifier;
       return this;
     }
@@ -13020,7 +13020,7 @@ public class ArcticTableMetastore {
         if (value == null) {
           unsetTableIdentifier();
         } else {
-          setTableIdentifier((TableIdentifier)value);
+          setTableIdentifier((org.apache.amoro.api.TableIdentifier)value);
         }
         break;
 
@@ -13270,7 +13270,7 @@ public class ArcticTableMetastore {
           switch (schemeField.id) {
             case 1: // TABLE_IDENTIFIER
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.tableIdentifier = new TableIdentifier();
+                struct.tableIdentifier = new org.apache.amoro.api.TableIdentifier();
                 struct.tableIdentifier.read(iprot);
                 struct.setTableIdentifierIsSet(true);
               } else { 
@@ -13285,7 +13285,7 @@ public class ArcticTableMetastore {
                   @org.apache.thrift.annotation.Nullable BlockableOperation _elem161;
                   for (int _i162 = 0; _i162 < _list160.size; ++_i162)
                   {
-                    _elem161 = BlockableOperation.findByValue(iprot.readI32());
+                    _elem161 = org.apache.amoro.api.BlockableOperation.findByValue(iprot.readI32());
                     if (_elem161 != null)
                     {
                       struct.operations.add(_elem161);
@@ -13420,7 +13420,7 @@ public class ArcticTableMetastore {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet incoming = iprot.readBitSet(3);
         if (incoming.get(0)) {
-          struct.tableIdentifier = new TableIdentifier();
+          struct.tableIdentifier = new org.apache.amoro.api.TableIdentifier();
           struct.tableIdentifier.read(iprot);
           struct.setTableIdentifierIsSet(true);
         }
@@ -13431,7 +13431,7 @@ public class ArcticTableMetastore {
             @org.apache.thrift.annotation.Nullable BlockableOperation _elem172;
             for (int _i173 = 0; _i173 < _list171.size; ++_i173)
             {
-              _elem172 = BlockableOperation.findByValue(iprot.readI32());
+              _elem172 = org.apache.amoro.api.BlockableOperation.findByValue(iprot.readI32());
               if (_elem172 != null)
               {
                 struct.operations.add(_elem172);
@@ -13473,7 +13473,7 @@ public class ArcticTableMetastore {
     private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new block_resultTupleSchemeFactory();
 
     public @org.apache.thrift.annotation.Nullable Blocker success; // required
-    public @org.apache.thrift.annotation.Nullable OperationConflictException e1; // required
+    public @org.apache.thrift.annotation.Nullable org.apache.amoro.api.OperationConflictException e1; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -13545,7 +13545,7 @@ public class ArcticTableMetastore {
       tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, Blocker.class)));
       tmpMap.put(_Fields.E1, new org.apache.thrift.meta_data.FieldMetaData("e1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, OperationConflictException.class)));
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.amoro.api.OperationConflictException.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
       org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(block_result.class, metaDataMap);
     }
@@ -13555,7 +13555,7 @@ public class ArcticTableMetastore {
 
     public block_result(
       Blocker success,
-      OperationConflictException e1)
+      org.apache.amoro.api.OperationConflictException e1)
     {
       this();
       this.success = success;
@@ -13570,7 +13570,7 @@ public class ArcticTableMetastore {
         this.success = new Blocker(other.success);
       }
       if (other.isSetE1()) {
-        this.e1 = new OperationConflictException(other.e1);
+        this.e1 = new org.apache.amoro.api.OperationConflictException(other.e1);
       }
     }
 
@@ -13610,11 +13610,11 @@ public class ArcticTableMetastore {
     }
 
     @org.apache.thrift.annotation.Nullable
-    public OperationConflictException getE1() {
+    public org.apache.amoro.api.OperationConflictException getE1() {
       return this.e1;
     }
 
-    public block_result setE1(@org.apache.thrift.annotation.Nullable OperationConflictException e1) {
+    public block_result setE1(@org.apache.thrift.annotation.Nullable org.apache.amoro.api.OperationConflictException e1) {
       this.e1 = e1;
       return this;
     }
@@ -13648,7 +13648,7 @@ public class ArcticTableMetastore {
         if (value == null) {
           unsetE1();
         } else {
-          setE1((OperationConflictException)value);
+          setE1((org.apache.amoro.api.OperationConflictException)value);
         }
         break;
 
@@ -13855,7 +13855,7 @@ public class ArcticTableMetastore {
               break;
             case 1: // E1
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.e1 = new OperationConflictException();
+                struct.e1 = new org.apache.amoro.api.OperationConflictException();
                 struct.e1.read(iprot);
                 struct.setE1IsSet(true);
               } else { 
@@ -13930,7 +13930,7 @@ public class ArcticTableMetastore {
           struct.setSuccessIsSet(true);
         }
         if (incoming.get(1)) {
-          struct.e1 = new OperationConflictException();
+          struct.e1 = new org.apache.amoro.api.OperationConflictException();
           struct.e1.read(iprot);
           struct.setE1IsSet(true);
         }
@@ -13951,7 +13951,7 @@ public class ArcticTableMetastore {
     private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new releaseBlocker_argsStandardSchemeFactory();
     private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new releaseBlocker_argsTupleSchemeFactory();
 
-    public @org.apache.thrift.annotation.Nullable TableIdentifier tableIdentifier; // required
+    public @org.apache.thrift.annotation.Nullable org.apache.amoro.api.TableIdentifier tableIdentifier; // required
     public @org.apache.thrift.annotation.Nullable java.lang.String blockerId; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
@@ -14022,7 +14022,7 @@ public class ArcticTableMetastore {
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.TABLE_IDENTIFIER, new org.apache.thrift.meta_data.FieldMetaData("tableIdentifier", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TableIdentifier.class)));
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.amoro.api.TableIdentifier.class)));
       tmpMap.put(_Fields.BLOCKER_ID, new org.apache.thrift.meta_data.FieldMetaData("blockerId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
@@ -14033,7 +14033,7 @@ public class ArcticTableMetastore {
     }
 
     public releaseBlocker_args(
-      TableIdentifier tableIdentifier,
+      org.apache.amoro.api.TableIdentifier tableIdentifier,
       java.lang.String blockerId)
     {
       this();
@@ -14046,7 +14046,7 @@ public class ArcticTableMetastore {
      */
     public releaseBlocker_args(releaseBlocker_args other) {
       if (other.isSetTableIdentifier()) {
-        this.tableIdentifier = new TableIdentifier(other.tableIdentifier);
+        this.tableIdentifier = new org.apache.amoro.api.TableIdentifier(other.tableIdentifier);
       }
       if (other.isSetBlockerId()) {
         this.blockerId = other.blockerId;
@@ -14064,11 +14064,11 @@ public class ArcticTableMetastore {
     }
 
     @org.apache.thrift.annotation.Nullable
-    public TableIdentifier getTableIdentifier() {
+    public org.apache.amoro.api.TableIdentifier getTableIdentifier() {
       return this.tableIdentifier;
     }
 
-    public releaseBlocker_args setTableIdentifier(@org.apache.thrift.annotation.Nullable TableIdentifier tableIdentifier) {
+    public releaseBlocker_args setTableIdentifier(@org.apache.thrift.annotation.Nullable org.apache.amoro.api.TableIdentifier tableIdentifier) {
       this.tableIdentifier = tableIdentifier;
       return this;
     }
@@ -14119,7 +14119,7 @@ public class ArcticTableMetastore {
         if (value == null) {
           unsetTableIdentifier();
         } else {
-          setTableIdentifier((TableIdentifier)value);
+          setTableIdentifier((org.apache.amoro.api.TableIdentifier)value);
         }
         break;
 
@@ -14325,7 +14325,7 @@ public class ArcticTableMetastore {
           switch (schemeField.id) {
             case 1: // TABLE_IDENTIFIER
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.tableIdentifier = new TableIdentifier();
+                struct.tableIdentifier = new org.apache.amoro.api.TableIdentifier();
                 struct.tableIdentifier.read(iprot);
                 struct.setTableIdentifierIsSet(true);
               } else { 
@@ -14403,7 +14403,7 @@ public class ArcticTableMetastore {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet incoming = iprot.readBitSet(2);
         if (incoming.get(0)) {
-          struct.tableIdentifier = new TableIdentifier();
+          struct.tableIdentifier = new org.apache.amoro.api.TableIdentifier();
           struct.tableIdentifier.read(iprot);
           struct.setTableIdentifierIsSet(true);
         }
@@ -14682,7 +14682,7 @@ public class ArcticTableMetastore {
     private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new renewBlocker_argsStandardSchemeFactory();
     private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new renewBlocker_argsTupleSchemeFactory();
 
-    public @org.apache.thrift.annotation.Nullable TableIdentifier tableIdentifier; // required
+    public @org.apache.thrift.annotation.Nullable org.apache.amoro.api.TableIdentifier tableIdentifier; // required
     public @org.apache.thrift.annotation.Nullable java.lang.String blockerId; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
@@ -14753,7 +14753,7 @@ public class ArcticTableMetastore {
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.TABLE_IDENTIFIER, new org.apache.thrift.meta_data.FieldMetaData("tableIdentifier", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TableIdentifier.class)));
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.amoro.api.TableIdentifier.class)));
       tmpMap.put(_Fields.BLOCKER_ID, new org.apache.thrift.meta_data.FieldMetaData("blockerId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
@@ -14764,7 +14764,7 @@ public class ArcticTableMetastore {
     }
 
     public renewBlocker_args(
-      TableIdentifier tableIdentifier,
+      org.apache.amoro.api.TableIdentifier tableIdentifier,
       java.lang.String blockerId)
     {
       this();
@@ -14777,7 +14777,7 @@ public class ArcticTableMetastore {
      */
     public renewBlocker_args(renewBlocker_args other) {
       if (other.isSetTableIdentifier()) {
-        this.tableIdentifier = new TableIdentifier(other.tableIdentifier);
+        this.tableIdentifier = new org.apache.amoro.api.TableIdentifier(other.tableIdentifier);
       }
       if (other.isSetBlockerId()) {
         this.blockerId = other.blockerId;
@@ -14795,11 +14795,11 @@ public class ArcticTableMetastore {
     }
 
     @org.apache.thrift.annotation.Nullable
-    public TableIdentifier getTableIdentifier() {
+    public org.apache.amoro.api.TableIdentifier getTableIdentifier() {
       return this.tableIdentifier;
     }
 
-    public renewBlocker_args setTableIdentifier(@org.apache.thrift.annotation.Nullable TableIdentifier tableIdentifier) {
+    public renewBlocker_args setTableIdentifier(@org.apache.thrift.annotation.Nullable org.apache.amoro.api.TableIdentifier tableIdentifier) {
       this.tableIdentifier = tableIdentifier;
       return this;
     }
@@ -14850,7 +14850,7 @@ public class ArcticTableMetastore {
         if (value == null) {
           unsetTableIdentifier();
         } else {
-          setTableIdentifier((TableIdentifier)value);
+          setTableIdentifier((org.apache.amoro.api.TableIdentifier)value);
         }
         break;
 
@@ -15056,7 +15056,7 @@ public class ArcticTableMetastore {
           switch (schemeField.id) {
             case 1: // TABLE_IDENTIFIER
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.tableIdentifier = new TableIdentifier();
+                struct.tableIdentifier = new org.apache.amoro.api.TableIdentifier();
                 struct.tableIdentifier.read(iprot);
                 struct.setTableIdentifierIsSet(true);
               } else { 
@@ -15134,7 +15134,7 @@ public class ArcticTableMetastore {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet incoming = iprot.readBitSet(2);
         if (incoming.get(0)) {
-          struct.tableIdentifier = new TableIdentifier();
+          struct.tableIdentifier = new org.apache.amoro.api.TableIdentifier();
           struct.tableIdentifier.read(iprot);
           struct.setTableIdentifierIsSet(true);
         }
@@ -15160,7 +15160,7 @@ public class ArcticTableMetastore {
     private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new renewBlocker_resultTupleSchemeFactory();
 
     public long success; // required
-    public @org.apache.thrift.annotation.Nullable NoSuchObjectException e; // required
+    public @org.apache.thrift.annotation.Nullable org.apache.amoro.api.NoSuchObjectException e; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -15234,7 +15234,7 @@ public class ArcticTableMetastore {
       tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
       tmpMap.put(_Fields.E, new org.apache.thrift.meta_data.FieldMetaData("e", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NoSuchObjectException.class)));
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.amoro.api.NoSuchObjectException.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
       org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(renewBlocker_result.class, metaDataMap);
     }
@@ -15244,7 +15244,7 @@ public class ArcticTableMetastore {
 
     public renewBlocker_result(
       long success,
-      NoSuchObjectException e)
+      org.apache.amoro.api.NoSuchObjectException e)
     {
       this();
       this.success = success;
@@ -15259,7 +15259,7 @@ public class ArcticTableMetastore {
       __isset_bitfield = other.__isset_bitfield;
       this.success = other.success;
       if (other.isSetE()) {
-        this.e = new NoSuchObjectException(other.e);
+        this.e = new org.apache.amoro.api.NoSuchObjectException(other.e);
       }
     }
 
@@ -15298,11 +15298,11 @@ public class ArcticTableMetastore {
     }
 
     @org.apache.thrift.annotation.Nullable
-    public NoSuchObjectException getE() {
+    public org.apache.amoro.api.NoSuchObjectException getE() {
       return this.e;
     }
 
-    public renewBlocker_result setE(@org.apache.thrift.annotation.Nullable NoSuchObjectException e) {
+    public renewBlocker_result setE(@org.apache.thrift.annotation.Nullable org.apache.amoro.api.NoSuchObjectException e) {
       this.e = e;
       return this;
     }
@@ -15336,7 +15336,7 @@ public class ArcticTableMetastore {
         if (value == null) {
           unsetE();
         } else {
-          setE((NoSuchObjectException)value);
+          setE((org.apache.amoro.api.NoSuchObjectException)value);
         }
         break;
 
@@ -15535,7 +15535,7 @@ public class ArcticTableMetastore {
               break;
             case 1: // E
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.e = new NoSuchObjectException();
+                struct.e = new org.apache.amoro.api.NoSuchObjectException();
                 struct.e.read(iprot);
                 struct.setEIsSet(true);
               } else { 
@@ -15609,7 +15609,7 @@ public class ArcticTableMetastore {
           struct.setSuccessIsSet(true);
         }
         if (incoming.get(1)) {
-          struct.e = new NoSuchObjectException();
+          struct.e = new org.apache.amoro.api.NoSuchObjectException();
           struct.e.read(iprot);
           struct.setEIsSet(true);
         }
@@ -15629,7 +15629,7 @@ public class ArcticTableMetastore {
     private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getBlockers_argsStandardSchemeFactory();
     private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getBlockers_argsTupleSchemeFactory();
 
-    public @org.apache.thrift.annotation.Nullable TableIdentifier tableIdentifier; // required
+    public @org.apache.thrift.annotation.Nullable org.apache.amoro.api.TableIdentifier tableIdentifier; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -15696,7 +15696,7 @@ public class ArcticTableMetastore {
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.TABLE_IDENTIFIER, new org.apache.thrift.meta_data.FieldMetaData("tableIdentifier", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TableIdentifier.class)));
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.amoro.api.TableIdentifier.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
       org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getBlockers_args.class, metaDataMap);
     }
@@ -15705,7 +15705,7 @@ public class ArcticTableMetastore {
     }
 
     public getBlockers_args(
-      TableIdentifier tableIdentifier)
+      org.apache.amoro.api.TableIdentifier tableIdentifier)
     {
       this();
       this.tableIdentifier = tableIdentifier;
@@ -15716,7 +15716,7 @@ public class ArcticTableMetastore {
      */
     public getBlockers_args(getBlockers_args other) {
       if (other.isSetTableIdentifier()) {
-        this.tableIdentifier = new TableIdentifier(other.tableIdentifier);
+        this.tableIdentifier = new org.apache.amoro.api.TableIdentifier(other.tableIdentifier);
       }
     }
 
@@ -15730,11 +15730,11 @@ public class ArcticTableMetastore {
     }
 
     @org.apache.thrift.annotation.Nullable
-    public TableIdentifier getTableIdentifier() {
+    public org.apache.amoro.api.TableIdentifier getTableIdentifier() {
       return this.tableIdentifier;
     }
 
-    public getBlockers_args setTableIdentifier(@org.apache.thrift.annotation.Nullable TableIdentifier tableIdentifier) {
+    public getBlockers_args setTableIdentifier(@org.apache.thrift.annotation.Nullable org.apache.amoro.api.TableIdentifier tableIdentifier) {
       this.tableIdentifier = tableIdentifier;
       return this;
     }
@@ -15760,7 +15760,7 @@ public class ArcticTableMetastore {
         if (value == null) {
           unsetTableIdentifier();
         } else {
-          setTableIdentifier((TableIdentifier)value);
+          setTableIdentifier((org.apache.amoro.api.TableIdentifier)value);
         }
         break;
 
@@ -15922,7 +15922,7 @@ public class ArcticTableMetastore {
           switch (schemeField.id) {
             case 1: // TABLE_IDENTIFIER
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.tableIdentifier = new TableIdentifier();
+                struct.tableIdentifier = new org.apache.amoro.api.TableIdentifier();
                 struct.tableIdentifier.read(iprot);
                 struct.setTableIdentifierIsSet(true);
               } else { 
@@ -15981,7 +15981,7 @@ public class ArcticTableMetastore {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet incoming = iprot.readBitSet(1);
         if (incoming.get(0)) {
-          struct.tableIdentifier = new TableIdentifier();
+          struct.tableIdentifier = new org.apache.amoro.api.TableIdentifier();
           struct.tableIdentifier.read(iprot);
           struct.setTableIdentifierIsSet(true);
         }
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 88d676ba8..21fc42974 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;
 
 
-@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-03-10")
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-04-29")
 public enum BlockableOperation implements 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 20c19e4dc..351b8b255 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"})
-@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-03-10")
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-04-29")
 public class Blocker implements org.apache.thrift.TBase<Blocker, Blocker._Fields>, java.io.Serializable, Cloneable, Comparable<Blocker> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Blocker");
 
@@ -519,7 +519,7 @@ public class Blocker implements org.apache.thrift.TBase<Blocker, Blocker._Fields
                 @org.apache.thrift.annotation.Nullable BlockableOperation _elem119;
                 for (int _i120 = 0; _i120 < _list118.size; ++_i120)
                 {
-                  _elem119 = BlockableOperation.findByValue(iprot.readI32());
+                  _elem119 = org.apache.amoro.api.BlockableOperation.findByValue(iprot.readI32());
                   if (_elem119 != null)
                   {
                     struct.operations.add(_elem119);
@@ -664,7 +664,7 @@ public class Blocker implements org.apache.thrift.TBase<Blocker, Blocker._Fields
           @org.apache.thrift.annotation.Nullable BlockableOperation _elem130;
           for (int _i131 = 0; _i131 < _list129.size; ++_i131)
           {
-            _elem130 = BlockableOperation.findByValue(iprot.readI32());
+            _elem130 = org.apache.amoro.api.BlockableOperation.findByValue(iprot.readI32());
             if (_elem130 != null)
             {
               struct.operations.add(_elem130);
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 98c3bdc1f..5a7b12230 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"})
-@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-03-10")
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-04-29")
 public class CatalogMeta implements org.apache.thrift.TBase<CatalogMeta, CatalogMeta._Fields>, java.io.Serializable, Cloneable, Comparable<CatalogMeta> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 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 9dbeb8bb2..10918fe9b 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"})
-@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-03-10")
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-04-29")
 public class ColumnInfo implements org.apache.thrift.TBase<ColumnInfo, ColumnInfo._Fields>, java.io.Serializable, Cloneable, Comparable<ColumnInfo> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 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 7059c91fd..a1cdaea1e 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,7 +7,7 @@
 package org.apache.amoro.api;
 
 
-@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-03-10")
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-04-29")
 public enum CommitMetaProducer implements org.apache.thrift.TEnum {
   OPTIMIZE(0),
   INGESTION(1),
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 528fc5781..45634363a 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"})
-@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-03-10")
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-04-29")
 public class DataFile implements org.apache.thrift.TBase<DataFile, DataFile._Fields>, java.io.Serializable, Cloneable, Comparable<DataFile> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 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 201f6fd20..2f67694b4 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"})
-@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-03-10")
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-04-29")
 public class InvalidObjectException extends org.apache.thrift.TException implements org.apache.thrift.TBase<InvalidObjectException, InvalidObjectException._Fields>, java.io.Serializable, Cloneable, Comparable<InvalidObjectException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 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 523f30cbf..24cee1392 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"})
-@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-03-10")
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-04-29")
 public class MetaException extends org.apache.thrift.TException implements org.apache.thrift.TBase<MetaException, MetaException._Fields>, java.io.Serializable, Cloneable, Comparable<MetaException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 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 7377605d4..5282e0f1d 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"})
-@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-03-10")
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-04-29")
 public class NoSuchObjectException extends org.apache.thrift.TException implements org.apache.thrift.TBase<NoSuchObjectException, NoSuchObjectException._Fields>, java.io.Serializable, Cloneable, Comparable<NoSuchObjectException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 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 5e642dfda..fb1d5f466 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"})
-@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-03-10")
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-04-29")
 public class NotSupportedException extends org.apache.thrift.TException implements org.apache.thrift.TBase<NotSupportedException, NotSupportedException._Fields>, java.io.Serializable, Cloneable, Comparable<NotSupportedException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 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 765d74255..e2def8e2d 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"})
-@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-03-10")
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-04-29")
 public class OperationConflictException extends org.apache.thrift.TException implements org.apache.thrift.TBase<OperationConflictException, OperationConflictException._Fields>, java.io.Serializable, Cloneable, Comparable<OperationConflictException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("OperationConflictException");
 
diff --git a/amoro-core/src/main/gen-java/org/apache/amoro/api/OptimizerRegisterInfo.java b/amoro-core/src/main/gen-java/org/apache/amoro/api/OptimizerRegisterInfo.java
index 64402eff0..d5eecd353 100644
--- a/amoro-core/src/main/gen-java/org/apache/amoro/api/OptimizerRegisterInfo.java
+++ b/amoro-core/src/main/gen-java/org/apache/amoro/api/OptimizerRegisterInfo.java
@@ -7,7 +7,7 @@
 package org.apache.amoro.api;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
-@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-03-10")
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-04-29")
 public class OptimizerRegisterInfo implements org.apache.thrift.TBase<OptimizerRegisterInfo, OptimizerRegisterInfo._Fields>, java.io.Serializable, Cloneable, Comparable<OptimizerRegisterInfo> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("OptimizerRegisterInfo");
 
diff --git a/amoro-core/src/main/gen-java/org/apache/amoro/api/OptimizingService.java b/amoro-core/src/main/gen-java/org/apache/amoro/api/OptimizingService.java
index 87a6b6488..54ae49910 100644
--- a/amoro-core/src/main/gen-java/org/apache/amoro/api/OptimizingService.java
+++ b/amoro-core/src/main/gen-java/org/apache/amoro/api/OptimizingService.java
@@ -7,22 +7,22 @@
 package org.apache.amoro.api;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
-@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-03-10")
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-04-29")
 public class OptimizingService {
 
   public interface Iface {
 
     public void ping() throws org.apache.thrift.TException;
 
-    public void touch(java.lang.String authToken) throws ArcticException, org.apache.thrift.TException;
+    public void touch(java.lang.String authToken) throws org.apache.amoro.api.AmoroException, org.apache.thrift.TException;
 
-    public OptimizingTask pollTask(java.lang.String authToken, int threadId) throws ArcticException, org.apache.thrift.TException;
+    public OptimizingTask pollTask(java.lang.String authToken, int threadId) throws org.apache.amoro.api.AmoroException, org.apache.thrift.TException;
 
-    public void ackTask(java.lang.String authToken, int threadId, OptimizingTaskId taskId) throws ArcticException, org.apache.thrift.TException;
+    public void ackTask(java.lang.String authToken, int threadId, OptimizingTaskId taskId) throws org.apache.amoro.api.AmoroException, org.apache.thrift.TException;
 
-    public void completeTask(java.lang.String authToken, OptimizingTaskResult taskResult) throws ArcticException, org.apache.thrift.TException;
+    public void completeTask(java.lang.String authToken, OptimizingTaskResult taskResult) throws org.apache.amoro.api.AmoroException, org.apache.thrift.TException;
 
-    public java.lang.String authenticate(OptimizerRegisterInfo registerInfo) throws ArcticException, org.apache.thrift.TException;
+    public java.lang.String authenticate(OptimizerRegisterInfo registerInfo) throws org.apache.amoro.api.AmoroException, org.apache.thrift.TException;
 
   }
 
@@ -81,7 +81,7 @@ public class OptimizingService {
       return;
     }
 
-    public void touch(java.lang.String authToken) throws ArcticException, org.apache.thrift.TException
+    public void touch(java.lang.String authToken) throws org.apache.amoro.api.AmoroException, org.apache.thrift.TException
     {
       send_touch(authToken);
       recv_touch();
@@ -94,7 +94,7 @@ public class OptimizingService {
       sendBase("touch", args);
     }
 
-    public void recv_touch() throws ArcticException, org.apache.thrift.TException
+    public void recv_touch() throws org.apache.amoro.api.AmoroException, org.apache.thrift.TException
     {
       touch_result result = new touch_result();
       receiveBase(result, "touch");
@@ -104,7 +104,7 @@ public class OptimizingService {
       return;
     }
 
-    public OptimizingTask pollTask(java.lang.String authToken, int threadId) throws ArcticException, org.apache.thrift.TException
+    public OptimizingTask pollTask(java.lang.String authToken, int threadId) throws org.apache.amoro.api.AmoroException, org.apache.thrift.TException
     {
       send_pollTask(authToken, threadId);
       return recv_pollTask();
@@ -118,7 +118,7 @@ public class OptimizingService {
       sendBase("pollTask", args);
     }
 
-    public OptimizingTask recv_pollTask() throws ArcticException, org.apache.thrift.TException
+    public OptimizingTask recv_pollTask() throws org.apache.amoro.api.AmoroException, org.apache.thrift.TException
     {
       pollTask_result result = new pollTask_result();
       receiveBase(result, "pollTask");
@@ -131,7 +131,7 @@ public class OptimizingService {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "pollTask failed: unknown result");
     }
 
-    public void ackTask(java.lang.String authToken, int threadId, OptimizingTaskId taskId) throws ArcticException, org.apache.thrift.TException
+    public void ackTask(java.lang.String authToken, int threadId, OptimizingTaskId taskId) throws org.apache.amoro.api.AmoroException, org.apache.thrift.TException
     {
       send_ackTask(authToken, threadId, taskId);
       recv_ackTask();
@@ -146,7 +146,7 @@ public class OptimizingService {
       sendBase("ackTask", args);
     }
 
-    public void recv_ackTask() throws ArcticException, org.apache.thrift.TException
+    public void recv_ackTask() throws org.apache.amoro.api.AmoroException, org.apache.thrift.TException
     {
       ackTask_result result = new ackTask_result();
       receiveBase(result, "ackTask");
@@ -156,7 +156,7 @@ public class OptimizingService {
       return;
     }
 
-    public void completeTask(java.lang.String authToken, OptimizingTaskResult taskResult) throws ArcticException, org.apache.thrift.TException
+    public void completeTask(java.lang.String authToken, OptimizingTaskResult taskResult) throws org.apache.amoro.api.AmoroException, org.apache.thrift.TException
     {
       send_completeTask(authToken, taskResult);
       recv_completeTask();
@@ -170,7 +170,7 @@ public class OptimizingService {
       sendBase("completeTask", args);
     }
 
-    public void recv_completeTask() throws ArcticException, org.apache.thrift.TException
+    public void recv_completeTask() throws org.apache.amoro.api.AmoroException, org.apache.thrift.TException
     {
       completeTask_result result = new completeTask_result();
       receiveBase(result, "completeTask");
@@ -180,7 +180,7 @@ public class OptimizingService {
       return;
     }
 
-    public java.lang.String authenticate(OptimizerRegisterInfo registerInfo) throws ArcticException, org.apache.thrift.TException
+    public java.lang.String authenticate(OptimizerRegisterInfo registerInfo) throws org.apache.amoro.api.AmoroException, org.apache.thrift.TException
     {
       send_authenticate(registerInfo);
       return recv_authenticate();
@@ -193,7 +193,7 @@ public class OptimizingService {
       sendBase("authenticate", args);
     }
 
-    public java.lang.String recv_authenticate() throws ArcticException, org.apache.thrift.TException
+    public java.lang.String recv_authenticate() throws org.apache.amoro.api.AmoroException, org.apache.thrift.TException
     {
       authenticate_result result = new authenticate_result();
       receiveBase(result, "authenticate");
@@ -275,7 +275,7 @@ public class OptimizingService {
         prot.writeMessageEnd();
       }
 
-      public Void getResult() throws ArcticException, org.apache.thrift.TException {
+      public Void getResult() throws org.apache.amoro.api.AmoroException, org.apache.thrift.TException {
         if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
           throw new java.lang.IllegalStateException("Method call not finished!");
         }
@@ -310,7 +310,7 @@ public class OptimizingService {
         prot.writeMessageEnd();
       }
 
-      public OptimizingTask getResult() throws ArcticException, org.apache.thrift.TException {
+      public OptimizingTask getResult() throws org.apache.amoro.api.AmoroException, org.apache.thrift.TException {
         if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
           throw new java.lang.IllegalStateException("Method call not finished!");
         }
@@ -348,7 +348,7 @@ public class OptimizingService {
         prot.writeMessageEnd();
       }
 
-      public Void getResult() throws ArcticException, org.apache.thrift.TException {
+      public Void getResult() throws org.apache.amoro.api.AmoroException, org.apache.thrift.TException {
         if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
           throw new java.lang.IllegalStateException("Method call not finished!");
         }
@@ -383,7 +383,7 @@ public class OptimizingService {
         prot.writeMessageEnd();
       }
 
-      public Void getResult() throws ArcticException, org.apache.thrift.TException {
+      public Void getResult() throws org.apache.amoro.api.AmoroException, org.apache.thrift.TException {
         if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
           throw new java.lang.IllegalStateException("Method call not finished!");
         }
@@ -415,7 +415,7 @@ public class OptimizingService {
         prot.writeMessageEnd();
       }
 
-      public java.lang.String getResult() throws ArcticException, org.apache.thrift.TException {
+      public java.lang.String getResult() throws org.apache.amoro.api.AmoroException, org.apache.thrift.TException {
         if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
           throw new java.lang.IllegalStateException("Method call not finished!");
         }
@@ -494,7 +494,7 @@ public class OptimizingService {
         touch_result result = new touch_result();
         try {
           iface.touch(args.authToken);
-        } catch (ArcticException e1) {
+        } catch (org.apache.amoro.api.AmoroException e1) {
           result.e1 = e1;
         }
         return result;
@@ -523,7 +523,7 @@ public class OptimizingService {
         pollTask_result result = new pollTask_result();
         try {
           result.success = iface.pollTask(args.authToken, args.threadId);
-        } catch (ArcticException e1) {
+        } catch (org.apache.amoro.api.AmoroException e1) {
           result.e1 = e1;
         }
         return result;
@@ -552,7 +552,7 @@ public class OptimizingService {
         ackTask_result result = new ackTask_result();
         try {
           iface.ackTask(args.authToken, args.threadId, args.taskId);
-        } catch (ArcticException e1) {
+        } catch (org.apache.amoro.api.AmoroException e1) {
           result.e1 = e1;
         }
         return result;
@@ -581,7 +581,7 @@ public class OptimizingService {
         completeTask_result result = new completeTask_result();
         try {
           iface.completeTask(args.authToken, args.taskResult);
-        } catch (ArcticException e1) {
+        } catch (org.apache.amoro.api.AmoroException e1) {
           result.e1 = e1;
         }
         return result;
@@ -610,7 +610,7 @@ public class OptimizingService {
         authenticate_result result = new authenticate_result();
         try {
           result.success = iface.authenticate(args.registerInfo);
-        } catch (ArcticException e1) {
+        } catch (org.apache.amoro.api.AmoroException e1) {
           result.e1 = e1;
         }
         return result;
@@ -727,8 +727,8 @@ public class OptimizingService {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
             touch_result result = new touch_result();
-            if (e instanceof ArcticException) {
-              result.e1 = (ArcticException) e;
+            if (e instanceof org.apache.amoro.api.AmoroException) {
+              result.e1 = (org.apache.amoro.api.AmoroException) e;
               result.setE1IsSet(true);
               msg = result;
             } else if (e instanceof org.apache.thrift.transport.TTransportException) {
@@ -792,8 +792,8 @@ public class OptimizingService {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
             pollTask_result result = new pollTask_result();
-            if (e instanceof ArcticException) {
-              result.e1 = (ArcticException) e;
+            if (e instanceof org.apache.amoro.api.AmoroException) {
+              result.e1 = (org.apache.amoro.api.AmoroException) e;
               result.setE1IsSet(true);
               msg = result;
             } else if (e instanceof org.apache.thrift.transport.TTransportException) {
@@ -856,8 +856,8 @@ public class OptimizingService {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
             ackTask_result result = new ackTask_result();
-            if (e instanceof ArcticException) {
-              result.e1 = (ArcticException) e;
+            if (e instanceof org.apache.amoro.api.AmoroException) {
+              result.e1 = (org.apache.amoro.api.AmoroException) e;
               result.setE1IsSet(true);
               msg = result;
             } else if (e instanceof org.apache.thrift.transport.TTransportException) {
@@ -920,8 +920,8 @@ public class OptimizingService {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
             completeTask_result result = new completeTask_result();
-            if (e instanceof ArcticException) {
-              result.e1 = (ArcticException) e;
+            if (e instanceof org.apache.amoro.api.AmoroException) {
+              result.e1 = (org.apache.amoro.api.AmoroException) e;
               result.setE1IsSet(true);
               msg = result;
             } else if (e instanceof org.apache.thrift.transport.TTransportException) {
@@ -985,8 +985,8 @@ public class OptimizingService {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TSerializable msg;
             authenticate_result result = new authenticate_result();
-            if (e instanceof ArcticException) {
-              result.e1 = (ArcticException) e;
+            if (e instanceof org.apache.amoro.api.AmoroException) {
+              result.e1 = (org.apache.amoro.api.AmoroException) e;
               result.setE1IsSet(true);
               msg = result;
             } else if (e instanceof org.apache.thrift.transport.TTransportException) {
@@ -1906,7 +1906,7 @@ public class OptimizingService {
     private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new touch_resultStandardSchemeFactory();
     private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new touch_resultTupleSchemeFactory();
 
-    public @org.apache.thrift.annotation.Nullable ArcticException e1; // required
+    public @org.apache.thrift.annotation.Nullable org.apache.amoro.api.AmoroException e1; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -1973,7 +1973,7 @@ public class OptimizingService {
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.E1, new org.apache.thrift.meta_data.FieldMetaData("e1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ArcticException.class)));
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.amoro.api.AmoroException.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
       org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(touch_result.class, metaDataMap);
     }
@@ -1982,7 +1982,7 @@ public class OptimizingService {
     }
 
     public touch_result(
-      ArcticException e1)
+      org.apache.amoro.api.AmoroException e1)
     {
       this();
       this.e1 = e1;
@@ -1993,7 +1993,7 @@ public class OptimizingService {
      */
     public touch_result(touch_result other) {
       if (other.isSetE1()) {
-        this.e1 = new ArcticException(other.e1);
+        this.e1 = new org.apache.amoro.api.AmoroException(other.e1);
       }
     }
 
@@ -2007,11 +2007,11 @@ public class OptimizingService {
     }
 
     @org.apache.thrift.annotation.Nullable
-    public ArcticException getE1() {
+    public org.apache.amoro.api.AmoroException getE1() {
       return this.e1;
     }
 
-    public touch_result setE1(@org.apache.thrift.annotation.Nullable ArcticException e1) {
+    public touch_result setE1(@org.apache.thrift.annotation.Nullable org.apache.amoro.api.AmoroException e1) {
       this.e1 = e1;
       return this;
     }
@@ -2037,7 +2037,7 @@ public class OptimizingService {
         if (value == null) {
           unsetE1();
         } else {
-          setE1((ArcticException)value);
+          setE1((org.apache.amoro.api.AmoroException)value);
         }
         break;
 
@@ -2196,7 +2196,7 @@ public class OptimizingService {
           switch (schemeField.id) {
             case 1: // E1
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.e1 = new ArcticException();
+                struct.e1 = new org.apache.amoro.api.AmoroException();
                 struct.e1.read(iprot);
                 struct.setE1IsSet(true);
               } else { 
@@ -2255,7 +2255,7 @@ public class OptimizingService {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet incoming = iprot.readBitSet(1);
         if (incoming.get(0)) {
-          struct.e1 = new ArcticException();
+          struct.e1 = new org.apache.amoro.api.AmoroException();
           struct.e1.read(iprot);
           struct.setE1IsSet(true);
         }
@@ -2744,7 +2744,7 @@ public class OptimizingService {
     private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new pollTask_resultTupleSchemeFactory();
 
     public @org.apache.thrift.annotation.Nullable OptimizingTask success; // required
-    public @org.apache.thrift.annotation.Nullable ArcticException e1; // required
+    public @org.apache.thrift.annotation.Nullable org.apache.amoro.api.AmoroException e1; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -2816,7 +2816,7 @@ public class OptimizingService {
       tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, OptimizingTask.class)));
       tmpMap.put(_Fields.E1, new org.apache.thrift.meta_data.FieldMetaData("e1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ArcticException.class)));
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.amoro.api.AmoroException.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
       org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(pollTask_result.class, metaDataMap);
     }
@@ -2826,7 +2826,7 @@ public class OptimizingService {
 
     public pollTask_result(
       OptimizingTask success,
-      ArcticException e1)
+      org.apache.amoro.api.AmoroException e1)
     {
       this();
       this.success = success;
@@ -2841,7 +2841,7 @@ public class OptimizingService {
         this.success = new OptimizingTask(other.success);
       }
       if (other.isSetE1()) {
-        this.e1 = new ArcticException(other.e1);
+        this.e1 = new org.apache.amoro.api.AmoroException(other.e1);
       }
     }
 
@@ -2881,11 +2881,11 @@ public class OptimizingService {
     }
 
     @org.apache.thrift.annotation.Nullable
-    public ArcticException getE1() {
+    public org.apache.amoro.api.AmoroException getE1() {
       return this.e1;
     }
 
-    public pollTask_result setE1(@org.apache.thrift.annotation.Nullable ArcticException e1) {
+    public pollTask_result setE1(@org.apache.thrift.annotation.Nullable org.apache.amoro.api.AmoroException e1) {
       this.e1 = e1;
       return this;
     }
@@ -2919,7 +2919,7 @@ public class OptimizingService {
         if (value == null) {
           unsetE1();
         } else {
-          setE1((ArcticException)value);
+          setE1((org.apache.amoro.api.AmoroException)value);
         }
         break;
 
@@ -3126,7 +3126,7 @@ public class OptimizingService {
               break;
             case 1: // E1
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.e1 = new ArcticException();
+                struct.e1 = new org.apache.amoro.api.AmoroException();
                 struct.e1.read(iprot);
                 struct.setE1IsSet(true);
               } else { 
@@ -3201,7 +3201,7 @@ public class OptimizingService {
           struct.setSuccessIsSet(true);
         }
         if (incoming.get(1)) {
-          struct.e1 = new ArcticException();
+          struct.e1 = new org.apache.amoro.api.AmoroException();
           struct.e1.read(iprot);
           struct.setE1IsSet(true);
         }
@@ -3798,7 +3798,7 @@ public class OptimizingService {
     private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new ackTask_resultStandardSchemeFactory();
     private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new ackTask_resultTupleSchemeFactory();
 
-    public @org.apache.thrift.annotation.Nullable ArcticException e1; // required
+    public @org.apache.thrift.annotation.Nullable org.apache.amoro.api.AmoroException e1; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -3865,7 +3865,7 @@ public class OptimizingService {
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.E1, new org.apache.thrift.meta_data.FieldMetaData("e1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ArcticException.class)));
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.amoro.api.AmoroException.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
       org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ackTask_result.class, metaDataMap);
     }
@@ -3874,7 +3874,7 @@ public class OptimizingService {
     }
 
     public ackTask_result(
-      ArcticException e1)
+      org.apache.amoro.api.AmoroException e1)
     {
       this();
       this.e1 = e1;
@@ -3885,7 +3885,7 @@ public class OptimizingService {
      */
     public ackTask_result(ackTask_result other) {
       if (other.isSetE1()) {
-        this.e1 = new ArcticException(other.e1);
+        this.e1 = new org.apache.amoro.api.AmoroException(other.e1);
       }
     }
 
@@ -3899,11 +3899,11 @@ public class OptimizingService {
     }
 
     @org.apache.thrift.annotation.Nullable
-    public ArcticException getE1() {
+    public org.apache.amoro.api.AmoroException getE1() {
       return this.e1;
     }
 
-    public ackTask_result setE1(@org.apache.thrift.annotation.Nullable ArcticException e1) {
+    public ackTask_result setE1(@org.apache.thrift.annotation.Nullable org.apache.amoro.api.AmoroException e1) {
       this.e1 = e1;
       return this;
     }
@@ -3929,7 +3929,7 @@ public class OptimizingService {
         if (value == null) {
           unsetE1();
         } else {
-          setE1((ArcticException)value);
+          setE1((org.apache.amoro.api.AmoroException)value);
         }
         break;
 
@@ -4088,7 +4088,7 @@ public class OptimizingService {
           switch (schemeField.id) {
             case 1: // E1
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.e1 = new ArcticException();
+                struct.e1 = new org.apache.amoro.api.AmoroException();
                 struct.e1.read(iprot);
                 struct.setE1IsSet(true);
               } else { 
@@ -4147,7 +4147,7 @@ public class OptimizingService {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet incoming = iprot.readBitSet(1);
         if (incoming.get(0)) {
-          struct.e1 = new ArcticException();
+          struct.e1 = new org.apache.amoro.api.AmoroException();
           struct.e1.read(iprot);
           struct.setE1IsSet(true);
         }
@@ -4644,7 +4644,7 @@ public class OptimizingService {
     private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new completeTask_resultStandardSchemeFactory();
     private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new completeTask_resultTupleSchemeFactory();
 
-    public @org.apache.thrift.annotation.Nullable ArcticException e1; // required
+    public @org.apache.thrift.annotation.Nullable org.apache.amoro.api.AmoroException e1; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -4711,7 +4711,7 @@ public class OptimizingService {
     static {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.E1, new org.apache.thrift.meta_data.FieldMetaData("e1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ArcticException.class)));
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.amoro.api.AmoroException.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
       org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(completeTask_result.class, metaDataMap);
     }
@@ -4720,7 +4720,7 @@ public class OptimizingService {
     }
 
     public completeTask_result(
-      ArcticException e1)
+      org.apache.amoro.api.AmoroException e1)
     {
       this();
       this.e1 = e1;
@@ -4731,7 +4731,7 @@ public class OptimizingService {
      */
     public completeTask_result(completeTask_result other) {
       if (other.isSetE1()) {
-        this.e1 = new ArcticException(other.e1);
+        this.e1 = new org.apache.amoro.api.AmoroException(other.e1);
       }
     }
 
@@ -4745,11 +4745,11 @@ public class OptimizingService {
     }
 
     @org.apache.thrift.annotation.Nullable
-    public ArcticException getE1() {
+    public org.apache.amoro.api.AmoroException getE1() {
       return this.e1;
     }
 
-    public completeTask_result setE1(@org.apache.thrift.annotation.Nullable ArcticException e1) {
+    public completeTask_result setE1(@org.apache.thrift.annotation.Nullable org.apache.amoro.api.AmoroException e1) {
       this.e1 = e1;
       return this;
     }
@@ -4775,7 +4775,7 @@ public class OptimizingService {
         if (value == null) {
           unsetE1();
         } else {
-          setE1((ArcticException)value);
+          setE1((org.apache.amoro.api.AmoroException)value);
         }
         break;
 
@@ -4934,7 +4934,7 @@ public class OptimizingService {
           switch (schemeField.id) {
             case 1: // E1
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.e1 = new ArcticException();
+                struct.e1 = new org.apache.amoro.api.AmoroException();
                 struct.e1.read(iprot);
                 struct.setE1IsSet(true);
               } else { 
@@ -4993,7 +4993,7 @@ public class OptimizingService {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         java.util.BitSet incoming = iprot.readBitSet(1);
         if (incoming.get(0)) {
-          struct.e1 = new ArcticException();
+          struct.e1 = new org.apache.amoro.api.AmoroException();
           struct.e1.read(iprot);
           struct.setE1IsSet(true);
         }
@@ -5387,7 +5387,7 @@ public class OptimizingService {
     private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new authenticate_resultTupleSchemeFactory();
 
     public @org.apache.thrift.annotation.Nullable java.lang.String success; // required
-    public @org.apache.thrift.annotation.Nullable ArcticException e1; // required
+    public @org.apache.thrift.annotation.Nullable org.apache.amoro.api.AmoroException e1; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -5459,7 +5459,7 @@ public class OptimizingService {
       tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       tmpMap.put(_Fields.E1, new org.apache.thrift.meta_data.FieldMetaData("e1", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ArcticException.class)));
+          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.amoro.api.AmoroException.class)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
       org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(authenticate_result.class, metaDataMap);
     }
@@ -5469,7 +5469,7 @@ public class OptimizingService {
 
     public authenticate_result(
       java.lang.String success,
-      ArcticException e1)
+      org.apache.amoro.api.AmoroException e1)
     {
       this();
       this.success = success;
@@ -5484,7 +5484,7 @@ public class OptimizingService {
         this.success = other.success;
       }
       if (other.isSetE1()) {
-        this.e1 = new ArcticException(other.e1);
+        this.e1 = new org.apache.amoro.api.AmoroException(other.e1);
       }
     }
 
@@ -5524,11 +5524,11 @@ public class OptimizingService {
     }
 
     @org.apache.thrift.annotation.Nullable
-    public ArcticException getE1() {
+    public org.apache.amoro.api.AmoroException getE1() {
       return this.e1;
     }
 
-    public authenticate_result setE1(@org.apache.thrift.annotation.Nullable ArcticException e1) {
+    public authenticate_result setE1(@org.apache.thrift.annotation.Nullable org.apache.amoro.api.AmoroException e1) {
       this.e1 = e1;
       return this;
     }
@@ -5562,7 +5562,7 @@ public class OptimizingService {
         if (value == null) {
           unsetE1();
         } else {
-          setE1((ArcticException)value);
+          setE1((org.apache.amoro.api.AmoroException)value);
         }
         break;
 
@@ -5765,7 +5765,7 @@ public class OptimizingService {
               break;
             case 1: // E1
               if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.e1 = new ArcticException();
+                struct.e1 = new org.apache.amoro.api.AmoroException();
                 struct.e1.read(iprot);
                 struct.setE1IsSet(true);
               } else { 
@@ -5839,7 +5839,7 @@ public class OptimizingService {
           struct.setSuccessIsSet(true);
         }
         if (incoming.get(1)) {
-          struct.e1 = new ArcticException();
+          struct.e1 = new org.apache.amoro.api.AmoroException();
           struct.e1.read(iprot);
           struct.setE1IsSet(true);
         }
diff --git a/amoro-core/src/main/gen-java/org/apache/amoro/api/OptimizingTask.java b/amoro-core/src/main/gen-java/org/apache/amoro/api/OptimizingTask.java
index 5aeec6432..adad611ef 100644
--- a/amoro-core/src/main/gen-java/org/apache/amoro/api/OptimizingTask.java
+++ b/amoro-core/src/main/gen-java/org/apache/amoro/api/OptimizingTask.java
@@ -7,7 +7,7 @@
 package org.apache.amoro.api;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
-@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-03-10")
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-04-29")
 public class OptimizingTask implements org.apache.thrift.TBase<OptimizingTask, OptimizingTask._Fields>, java.io.Serializable, Cloneable, Comparable<OptimizingTask> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("OptimizingTask");
 
diff --git a/amoro-core/src/main/gen-java/org/apache/amoro/api/OptimizingTaskId.java b/amoro-core/src/main/gen-java/org/apache/amoro/api/OptimizingTaskId.java
index 1a20542f4..4c3c876fc 100644
--- a/amoro-core/src/main/gen-java/org/apache/amoro/api/OptimizingTaskId.java
+++ b/amoro-core/src/main/gen-java/org/apache/amoro/api/OptimizingTaskId.java
@@ -7,7 +7,7 @@
 package org.apache.amoro.api;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
-@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-03-10")
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-04-29")
 public class OptimizingTaskId implements org.apache.thrift.TBase<OptimizingTaskId, OptimizingTaskId._Fields>, java.io.Serializable, Cloneable, Comparable<OptimizingTaskId> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("OptimizingTaskId");
 
diff --git a/amoro-core/src/main/gen-java/org/apache/amoro/api/OptimizingTaskResult.java b/amoro-core/src/main/gen-java/org/apache/amoro/api/OptimizingTaskResult.java
index 583150e43..fd11ae442 100644
--- a/amoro-core/src/main/gen-java/org/apache/amoro/api/OptimizingTaskResult.java
+++ b/amoro-core/src/main/gen-java/org/apache/amoro/api/OptimizingTaskResult.java
@@ -7,7 +7,7 @@
 package org.apache.amoro.api;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
-@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-03-10")
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-04-29")
 public class OptimizingTaskResult implements org.apache.thrift.TBase<OptimizingTaskResult, OptimizingTaskResult._Fields>, java.io.Serializable, Cloneable, Comparable<OptimizingTaskResult> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("OptimizingTaskResult");
 
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 024b85d58..ab0bba809 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"})
-@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-03-10")
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-04-29")
 public class PartitionFieldData implements org.apache.thrift.TBase<PartitionFieldData, PartitionFieldData._Fields>, java.io.Serializable, Cloneable, Comparable<PartitionFieldData> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 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 42d61f2e3..50f2dfc0a 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"})
-@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-03-10")
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-04-29")
 public class PrimaryKeySpec implements org.apache.thrift.TBase<PrimaryKeySpec, PrimaryKeySpec._Fields>, java.io.Serializable, Cloneable, Comparable<PrimaryKeySpec> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 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 055109289..dc683e6cb 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"})
-@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-03-10")
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-04-29")
 public class Schema implements org.apache.thrift.TBase<Schema, Schema._Fields>, java.io.Serializable, Cloneable, Comparable<Schema> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 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 c0bfccb82..6814215b9 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"})
-@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-03-10")
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-04-29")
 public class SchemaUpdateMeta implements org.apache.thrift.TBase<SchemaUpdateMeta, SchemaUpdateMeta._Fields>, java.io.Serializable, Cloneable, Comparable<SchemaUpdateMeta> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 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 2992d114e..54b618be2 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"})
-@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-03-10")
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-04-29")
 public class TableChange implements org.apache.thrift.TBase<TableChange, TableChange._Fields>, java.io.Serializable, Cloneable, Comparable<TableChange> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 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 6848cfd53..23d1a92ab 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"})
-@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-03-10")
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-04-29")
 public class TableCommitMeta implements org.apache.thrift.TBase<TableCommitMeta, TableCommitMeta._Fields>, java.io.Serializable, Cloneable, Comparable<TableCommitMeta> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TableCommitMeta");
 
@@ -22,7 +22,7 @@ public class TableCommitMeta implements org.apache.thrift.TBase<TableCommitMeta,
   private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new TableCommitMetaStandardSchemeFactory();
   private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new TableCommitMetaTupleSchemeFactory();
 
-  public @org.apache.thrift.annotation.Nullable TableIdentifier tableIdentifier; // required
+  public @org.apache.thrift.annotation.Nullable org.apache.amoro.api.TableIdentifier tableIdentifier; // required
   public @org.apache.thrift.annotation.Nullable java.lang.String action; // required
   public @org.apache.thrift.annotation.Nullable java.util.List<TableChange> changes; // required
   public long commitTime; // required
@@ -115,7 +115,7 @@ public class TableCommitMeta implements org.apache.thrift.TBase<TableCommitMeta,
   static {
     java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
     tmpMap.put(_Fields.TABLE_IDENTIFIER, new org.apache.thrift.meta_data.FieldMetaData("tableIdentifier", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TableIdentifier.class)));
+        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.amoro.api.TableIdentifier.class)));
     tmpMap.put(_Fields.ACTION, new org.apache.thrift.meta_data.FieldMetaData("action", org.apache.thrift.TFieldRequirementType.DEFAULT, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     tmpMap.put(_Fields.CHANGES, new org.apache.thrift.meta_data.FieldMetaData("changes", org.apache.thrift.TFieldRequirementType.DEFAULT, 
@@ -139,7 +139,7 @@ public class TableCommitMeta implements org.apache.thrift.TBase<TableCommitMeta,
   }
 
   public TableCommitMeta(
-    TableIdentifier tableIdentifier,
+    org.apache.amoro.api.TableIdentifier tableIdentifier,
     java.lang.String action,
     java.util.List<TableChange> changes,
     long commitTime,
@@ -164,7 +164,7 @@ public class TableCommitMeta implements org.apache.thrift.TBase<TableCommitMeta,
   public TableCommitMeta(TableCommitMeta other) {
     __isset_bitfield = other.__isset_bitfield;
     if (other.isSetTableIdentifier()) {
-      this.tableIdentifier = new TableIdentifier(other.tableIdentifier);
+      this.tableIdentifier = new org.apache.amoro.api.TableIdentifier(other.tableIdentifier);
     }
     if (other.isSetAction()) {
       this.action = other.action;
@@ -206,11 +206,11 @@ public class TableCommitMeta implements org.apache.thrift.TBase<TableCommitMeta,
   }
 
   @org.apache.thrift.annotation.Nullable
-  public TableIdentifier getTableIdentifier() {
+  public org.apache.amoro.api.TableIdentifier getTableIdentifier() {
     return this.tableIdentifier;
   }
 
-  public TableCommitMeta setTableIdentifier(@org.apache.thrift.annotation.Nullable TableIdentifier tableIdentifier) {
+  public TableCommitMeta setTableIdentifier(@org.apache.thrift.annotation.Nullable org.apache.amoro.api.TableIdentifier tableIdentifier) {
     this.tableIdentifier = tableIdentifier;
     return this;
   }
@@ -411,7 +411,7 @@ public class TableCommitMeta implements org.apache.thrift.TBase<TableCommitMeta,
       if (value == null) {
         unsetTableIdentifier();
       } else {
-        setTableIdentifier((TableIdentifier)value);
+        setTableIdentifier((org.apache.amoro.api.TableIdentifier)value);
       }
       break;
 
@@ -833,7 +833,7 @@ public class TableCommitMeta implements org.apache.thrift.TBase<TableCommitMeta,
         switch (schemeField.id) {
           case 1: // TABLE_IDENTIFIER
             if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-              struct.tableIdentifier = new TableIdentifier();
+              struct.tableIdentifier = new org.apache.amoro.api.TableIdentifier();
               struct.tableIdentifier.read(iprot);
               struct.setTableIdentifierIsSet(true);
             } else { 
@@ -897,7 +897,7 @@ public class TableCommitMeta implements org.apache.thrift.TBase<TableCommitMeta,
             break;
           case 6: // COMMIT_META_PRODUCER
             if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
-              struct.commitMetaProducer = CommitMetaProducer.findByValue(iprot.readI32());
+              struct.commitMetaProducer = org.apache.amoro.api.CommitMetaProducer.findByValue(iprot.readI32());
               struct.setCommitMetaProducerIsSet(true);
             } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
@@ -1056,7 +1056,7 @@ public class TableCommitMeta implements org.apache.thrift.TBase<TableCommitMeta,
       org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
       java.util.BitSet incoming = iprot.readBitSet(7);
       if (incoming.get(0)) {
-        struct.tableIdentifier = new TableIdentifier();
+        struct.tableIdentifier = new org.apache.amoro.api.TableIdentifier();
         struct.tableIdentifier.read(iprot);
         struct.setTableIdentifierIsSet(true);
       }
@@ -1098,7 +1098,7 @@ public class TableCommitMeta implements org.apache.thrift.TBase<TableCommitMeta,
         struct.setPropertiesIsSet(true);
       }
       if (incoming.get(5)) {
-        struct.commitMetaProducer = CommitMetaProducer.findByValue(iprot.readI32());
+        struct.commitMetaProducer = org.apache.amoro.api.CommitMetaProducer.findByValue(iprot.readI32());
         struct.setCommitMetaProducerIsSet(true);
       }
       if (incoming.get(6)) {
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 c65251364..f00985c2f 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"})
-@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-03-10")
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-04-29")
 public class TableIdentifier implements org.apache.thrift.TBase<TableIdentifier, TableIdentifier._Fields>, java.io.Serializable, Cloneable, Comparable<TableIdentifier> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 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 e21bf1fec..c9c16c740 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"})
-@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-03-10")
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-04-29")
 public class TableMeta implements org.apache.thrift.TBase<TableMeta, TableMeta._Fields>, java.io.Serializable, Cloneable, Comparable<TableMeta> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TableMeta");
 
@@ -20,7 +20,7 @@ public class TableMeta implements org.apache.thrift.TBase<TableMeta, TableMeta._
   private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new TableMetaStandardSchemeFactory();
   private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new TableMetaTupleSchemeFactory();
 
-  public @org.apache.thrift.annotation.Nullable TableIdentifier tableIdentifier; // required
+  public @org.apache.thrift.annotation.Nullable org.apache.amoro.api.TableIdentifier tableIdentifier; // required
   public @org.apache.thrift.annotation.Nullable PrimaryKeySpec keySpec; // required
   public @org.apache.thrift.annotation.Nullable java.util.Map<java.lang.String,java.lang.String> properties; // optional
   public @org.apache.thrift.annotation.Nullable java.util.Map<java.lang.String,java.lang.String> locations; // required
@@ -104,7 +104,7 @@ public class TableMeta implements org.apache.thrift.TBase<TableMeta, TableMeta._
   static {
     java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
     tmpMap.put(_Fields.TABLE_IDENTIFIER, new org.apache.thrift.meta_data.FieldMetaData("tableIdentifier", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TableIdentifier.class)));
+        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.amoro.api.TableIdentifier.class)));
     tmpMap.put(_Fields.KEY_SPEC, new org.apache.thrift.meta_data.FieldMetaData("keySpec", org.apache.thrift.TFieldRequirementType.DEFAULT, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT        , "PrimaryKeySpec")));
     tmpMap.put(_Fields.PROPERTIES, new org.apache.thrift.meta_data.FieldMetaData("properties", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
@@ -125,7 +125,7 @@ public class TableMeta implements org.apache.thrift.TBase<TableMeta, TableMeta._
   }
 
   public TableMeta(
-    TableIdentifier tableIdentifier,
+    org.apache.amoro.api.TableIdentifier tableIdentifier,
     PrimaryKeySpec keySpec,
     java.util.Map<java.lang.String,java.lang.String> locations,
     java.lang.String format)
@@ -142,7 +142,7 @@ public class TableMeta implements org.apache.thrift.TBase<TableMeta, TableMeta._
    */
   public TableMeta(TableMeta other) {
     if (other.isSetTableIdentifier()) {
-      this.tableIdentifier = new TableIdentifier(other.tableIdentifier);
+      this.tableIdentifier = new org.apache.amoro.api.TableIdentifier(other.tableIdentifier);
     }
     if (other.isSetKeySpec()) {
       this.keySpec = new PrimaryKeySpec(other.keySpec);
@@ -174,11 +174,11 @@ public class TableMeta implements org.apache.thrift.TBase<TableMeta, TableMeta._
   }
 
   @org.apache.thrift.annotation.Nullable
-  public TableIdentifier getTableIdentifier() {
+  public org.apache.amoro.api.TableIdentifier getTableIdentifier() {
     return this.tableIdentifier;
   }
 
-  public TableMeta setTableIdentifier(@org.apache.thrift.annotation.Nullable TableIdentifier tableIdentifier) {
+  public TableMeta setTableIdentifier(@org.apache.thrift.annotation.Nullable org.apache.amoro.api.TableIdentifier tableIdentifier) {
     this.tableIdentifier = tableIdentifier;
     return this;
   }
@@ -326,7 +326,7 @@ public class TableMeta implements org.apache.thrift.TBase<TableMeta, TableMeta._
       if (value == null) {
         unsetTableIdentifier();
       } else {
-        setTableIdentifier((TableIdentifier)value);
+        setTableIdentifier((org.apache.amoro.api.TableIdentifier)value);
       }
       break;
 
@@ -666,7 +666,7 @@ public class TableMeta implements org.apache.thrift.TBase<TableMeta, TableMeta._
         switch (schemeField.id) {
           case 1: // TABLE_IDENTIFIER
             if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-              struct.tableIdentifier = new TableIdentifier();
+              struct.tableIdentifier = new org.apache.amoro.api.TableIdentifier();
               struct.tableIdentifier.read(iprot);
               struct.setTableIdentifierIsSet(true);
             } else { 
@@ -858,7 +858,7 @@ public class TableMeta implements org.apache.thrift.TBase<TableMeta, TableMeta._
       org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
       java.util.BitSet incoming = iprot.readBitSet(5);
       if (incoming.get(0)) {
-        struct.tableIdentifier = new TableIdentifier();
+        struct.tableIdentifier = new org.apache.amoro.api.TableIdentifier();
         struct.tableIdentifier.read(iprot);
         struct.setTableIdentifierIsSet(true);
       }
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 25f56fbaa..aae573028 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"})
-@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-03-10")
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.13.0)", date = "2024-04-29")
 public class UpdateColumn implements org.apache.thrift.TBase<UpdateColumn, UpdateColumn._Fields>, java.io.Serializable, Cloneable, Comparable<UpdateColumn> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UpdateColumn");
 
diff --git a/amoro-core/src/main/java/org/apache/amoro/AmsClient.java b/amoro-core/src/main/java/org/apache/amoro/AmsClient.java
index e5bd0aba5..5dab22119 100644
--- a/amoro-core/src/main/java/org/apache/amoro/AmsClient.java
+++ b/amoro-core/src/main/java/org/apache/amoro/AmsClient.java
@@ -18,9 +18,9 @@
 
 package org.apache.amoro;
 
-import org.apache.amoro.api.ArcticTableMetastore;
+import org.apache.amoro.api.AmoroTableMetastore;
 
 import java.io.Serializable;
 
 /** Thrift client API to communicate with ams. */
-public interface AmsClient extends ArcticTableMetastore.Iface, Serializable {}
+public interface AmsClient extends AmoroTableMetastore.Iface, Serializable {}
diff --git a/amoro-core/src/main/java/org/apache/amoro/PooledAmsClient.java b/amoro-core/src/main/java/org/apache/amoro/PooledAmsClient.java
index 9ffe19d51..457919410 100644
--- a/amoro-core/src/main/java/org/apache/amoro/PooledAmsClient.java
+++ b/amoro-core/src/main/java/org/apache/amoro/PooledAmsClient.java
@@ -18,7 +18,7 @@
 
 package org.apache.amoro;
 
-import org.apache.amoro.api.ArcticTableMetastore;
+import org.apache.amoro.api.AmoroTableMetastore;
 import org.apache.amoro.api.BlockableOperation;
 import org.apache.amoro.api.Blocker;
 import org.apache.amoro.api.CatalogMeta;
@@ -39,7 +39,7 @@ public class PooledAmsClient implements AmsClient {
     this.metastoreUrl = metastoreUrl;
   }
 
-  private ArcticTableMetastore.Iface getIface() {
+  private AmoroTableMetastore.Iface getIface() {
     return AmsClientPools.getClientPool(metastoreUrl).iface();
   }
 
diff --git a/amoro-core/src/main/java/org/apache/amoro/client/AmsClientPools.java b/amoro-core/src/main/java/org/apache/amoro/client/AmsClientPools.java
index a1a07c613..87fa4487a 100644
--- a/amoro-core/src/main/java/org/apache/amoro/client/AmsClientPools.java
+++ b/amoro-core/src/main/java/org/apache/amoro/client/AmsClientPools.java
@@ -21,7 +21,7 @@ package org.apache.amoro.client;
 import com.github.benmanes.caffeine.cache.Caffeine;
 import com.github.benmanes.caffeine.cache.LoadingCache;
 import org.apache.amoro.Constants;
-import org.apache.amoro.api.ArcticTableMetastore;
+import org.apache.amoro.api.AmoroTableMetastore;
 import org.apache.thrift.TException;
 import org.apache.thrift.protocol.TBinaryProtocol;
 import org.apache.thrift.protocol.TMultiplexedProtocol;
@@ -34,10 +34,10 @@ public class AmsClientPools {
   private static final int CLIENT_POOL_MAX_IDLE = 5;
   private static final int CLIENT_POOL_MAX_WAIT_MS = 5000;
 
-  private static final LoadingCache<String, ThriftClientPool<ArcticTableMetastore.Client>>
+  private static final LoadingCache<String, ThriftClientPool<AmoroTableMetastore.Client>>
       CLIENT_POOLS = Caffeine.newBuilder().build(AmsClientPools::buildClientPool);
 
-  public static ThriftClientPool<ArcticTableMetastore.Client> getClientPool(String metastoreUrl) {
+  public static ThriftClientPool<AmoroTableMetastore.Client> getClientPool(String metastoreUrl) {
     return CLIENT_POOLS.get(metastoreUrl);
   }
 
@@ -45,7 +45,7 @@ public class AmsClientPools {
     CLIENT_POOLS.cleanUp();
   }
 
-  private static ThriftClientPool<ArcticTableMetastore.Client> buildClientPool(String url) {
+  private static ThriftClientPool<AmoroTableMetastore.Client> buildClientPool(String url) {
     PoolConfig poolConfig = new PoolConfig();
     poolConfig.setFailover(true);
     poolConfig.setMinIdle(CLIENT_POOL_MIN_IDLE);
@@ -55,14 +55,14 @@ public class AmsClientPools {
         url,
         s -> {
           TProtocol protocol = new TBinaryProtocol(s);
-          ArcticTableMetastore.Client tableMetastore =
-              new ArcticTableMetastore.Client(
+          AmoroTableMetastore.Client tableMetastore =
+              new AmoroTableMetastore.Client(
                   new TMultiplexedProtocol(protocol, Constants.THRIFT_TABLE_SERVICE_NAME));
           return tableMetastore;
         },
         c -> {
           try {
-            ((ArcticTableMetastore.Client) c).ping();
+            ((AmoroTableMetastore.Client) c).ping();
           } catch (TException e) {
             return false;
           }
diff --git a/amoro-core/src/main/java/org/apache/amoro/mixed/CatalogLoader.java b/amoro-core/src/main/java/org/apache/amoro/mixed/CatalogLoader.java
index 7025ffa41..7e5225de4 100644
--- a/amoro-core/src/main/java/org/apache/amoro/mixed/CatalogLoader.java
+++ b/amoro-core/src/main/java/org/apache/amoro/mixed/CatalogLoader.java
@@ -22,7 +22,7 @@ import org.apache.amoro.AmsClient;
 import org.apache.amoro.Constants;
 import org.apache.amoro.PooledAmsClient;
 import org.apache.amoro.TableFormat;
-import org.apache.amoro.api.ArcticTableMetastore;
+import org.apache.amoro.api.AmoroTableMetastore;
 import org.apache.amoro.api.CatalogMeta;
 import org.apache.amoro.api.NoSuchObjectException;
 import org.apache.amoro.client.AmsClientPools;
@@ -149,7 +149,7 @@ public class CatalogLoader {
    */
   public static List<String> catalogs(String metastoreUrl) {
     try {
-      return ((ArcticTableMetastore.Iface) AmsClientPools.getClientPool(metastoreUrl).iface())
+      return ((AmoroTableMetastore.Iface) AmsClientPools.getClientPool(metastoreUrl).iface())
           .getCatalogs().stream().map(CatalogMeta::getCatalogName).collect(Collectors.toList());
     } catch (TException e) {
       throw new IllegalStateException("failed when load catalogs", e);
diff --git a/amoro-core/src/main/thrift/arctic_commons.thrift b/amoro-core/src/main/thrift/amoro_commons.thrift
similarity index 98%
rename from amoro-core/src/main/thrift/arctic_commons.thrift
rename to amoro-core/src/main/thrift/amoro_commons.thrift
index 9263ad5eb..aa21f2fe7 100644
--- a/amoro-core/src/main/thrift/arctic_commons.thrift
+++ b/amoro-core/src/main/thrift/amoro_commons.thrift
@@ -47,7 +47,7 @@ exception OperationConflictException {
   1: string message
 }
 
-exception ArcticException {
+exception AmoroException {
   1: i32 errorCode
   2: string errorName
   3: string message
diff --git a/amoro-core/src/main/thrift/arctic_optimizing_service.thrift b/amoro-core/src/main/thrift/amoro_optimizing_service.thrift
similarity index 83%
rename from amoro-core/src/main/thrift/arctic_optimizing_service.thrift
rename to amoro-core/src/main/thrift/amoro_optimizing_service.thrift
index 4d0225af2..360ab6b6b 100644
--- a/amoro-core/src/main/thrift/arctic_optimizing_service.thrift
+++ b/amoro-core/src/main/thrift/amoro_optimizing_service.thrift
@@ -18,7 +18,7 @@
 
 namespace java org.apache.amoro.api
 
-include "arctic_commons.thrift"
+include "amoro_commons.thrift"
 
 struct OptimizingTask {
     1: OptimizingTaskId taskId;
@@ -52,17 +52,17 @@ service OptimizingService {
 
     void ping()
 
-    void touch(1: string authToken) throws(1: arctic_commons.ArcticException e1)
+    void touch(1: string authToken) throws(1: amoro_commons.AmoroException e1)
 
     OptimizingTask pollTask(1: string authToken, 2: i32 threadId)
-            throws (1: arctic_commons.ArcticException e1)
+            throws (1: amoro_commons.AmoroException e1)
 
     void ackTask(1: string authToken, 2: i32 threadId, 3: OptimizingTaskId taskId)
-            throws(1: arctic_commons.ArcticException e1)
+            throws(1: amoro_commons.AmoroException e1)
 
     void completeTask(1: string authToken, 2: OptimizingTaskResult taskResult)
-            throws (1: arctic_commons.ArcticException e1)
+            throws (1: amoro_commons.AmoroException e1)
 
     string authenticate(1: OptimizerRegisterInfo registerInfo)
-            throws (1: arctic_commons.ArcticException e1)
-}
\ No newline at end of file
+            throws (1: amoro_commons.AmoroException e1)
+}
diff --git a/amoro-core/src/main/thrift/arctic_table_metastore.thrift b/amoro-core/src/main/thrift/amoro_table_metastore.thrift
similarity index 63%
rename from amoro-core/src/main/thrift/arctic_table_metastore.thrift
rename to amoro-core/src/main/thrift/amoro_table_metastore.thrift
index fb6ef8d1e..bdf18722b 100644
--- a/amoro-core/src/main/thrift/arctic_table_metastore.thrift
+++ b/amoro-core/src/main/thrift/amoro_table_metastore.thrift
@@ -18,7 +18,7 @@
 
 namespace java org.apache.amoro.api
 
-include "arctic_commons.thrift"
+include "amoro_commons.thrift"
 
 struct CatalogMeta {
   1: required string catalogName;
@@ -60,7 +60,7 @@ struct TableChange {
 
 // task commit info
 struct TableCommitMeta {
-    1: arctic_commons.TableIdentifier tableIdentifier;
+    1: amoro_commons.TableIdentifier tableIdentifier;
     2: string action;
     3: list<TableChange> changes;
     4: i64 commitTime;
@@ -85,7 +85,7 @@ struct SchemaUpdateMeta {
 }
 
 struct TableMeta {
-    1:arctic_commons.TableIdentifier tableIdentifier;
+    1:amoro_commons.TableIdentifier tableIdentifier;
     2:PrimaryKeySpec keySpec;
     3:optional map<string, string> properties;
     4:map<string, string> locations ;
@@ -115,55 +115,55 @@ enum BlockableOperation {
 
 
 /**
-* replace TableContainer、ArcticTableItem
+* replace TableContainer、AmoroTableItem
 **/
-service ArcticTableMetastore {
+service AmoroTableMetastore {
 
     void ping()
 
     // catalog api
     list<CatalogMeta> getCatalogs()
 
-    CatalogMeta getCatalog(1: string name) throws (1: arctic_commons.NoSuchObjectException e1)
+    CatalogMeta getCatalog(1: string name) throws (1: amoro_commons.NoSuchObjectException e1)
 
-    list<string> getDatabases(1: string catalogName) throws (1: arctic_commons.NoSuchObjectException e)
+    list<string> getDatabases(1: string catalogName) throws (1: amoro_commons.NoSuchObjectException e)
 
     void createDatabase(1: string catalogName, 2: string database) throws (
-          1: arctic_commons.NoSuchObjectException e1,
-          2: arctic_commons.AlreadyExistsException e2)
+          1: amoro_commons.NoSuchObjectException e1,
+          2: amoro_commons.AlreadyExistsException e2)
 
     void dropDatabase(1: string catalogName, 2: string database) throws (
-          1: arctic_commons.NoSuchObjectException e1,
-          2: arctic_commons.NotSupportedException e2)
+          1: amoro_commons.NoSuchObjectException e1,
+          2: amoro_commons.NotSupportedException e2)
 
     void createTableMeta(1: TableMeta tableMeta)
           throws(
-          1: arctic_commons.AlreadyExistsException e1,
-          2: arctic_commons.InvalidObjectException e2
-          3: arctic_commons.MetaException e3)
+          1: amoro_commons.AlreadyExistsException e1,
+          2: amoro_commons.InvalidObjectException e2
+          3: amoro_commons.MetaException e3)
 
     list<TableMeta> listTables(1: string catalogName, 2: string database)
-        throws(1: arctic_commons.NoSuchObjectException e);
+        throws(1: amoro_commons.NoSuchObjectException e);
 
-    TableMeta getTable(1:arctic_commons.TableIdentifier tableIdentifier)
-            throws(1: arctic_commons.NoSuchObjectException e);
+    TableMeta getTable(1:amoro_commons.TableIdentifier tableIdentifier)
+            throws(1: amoro_commons.NoSuchObjectException e);
 
-    void removeTable(1:arctic_commons.TableIdentifier tableIdentifier, 2:bool deleteData)
+    void removeTable(1:amoro_commons.TableIdentifier tableIdentifier, 2:bool deleteData)
         throws(
-        1:arctic_commons.NoSuchObjectException e1,
-        2:arctic_commons.MetaException e2)
+        1:amoro_commons.NoSuchObjectException e1,
+        2:amoro_commons.MetaException e2)
 
-    void tableCommit(1: TableCommitMeta commit) throws (1: arctic_commons.MetaException e1)
+    void tableCommit(1: TableCommitMeta commit) throws (1: amoro_commons.MetaException e1)
 
-    i64 allocateTransactionId(1:arctic_commons.TableIdentifier tableIdentifier, 2:string transactionSignature)
+    i64 allocateTransactionId(1:amoro_commons.TableIdentifier tableIdentifier, 2:string transactionSignature)
 
-    Blocker block(1:arctic_commons.TableIdentifier tableIdentifier, 2:list<BlockableOperation> operations, 3:map<string, string> properties)
-            throws (1: arctic_commons.OperationConflictException e1)
+    Blocker block(1:amoro_commons.TableIdentifier tableIdentifier, 2:list<BlockableOperation> operations, 3:map<string, string> properties)
+            throws (1: amoro_commons.OperationConflictException e1)
 
-    void releaseBlocker(1:arctic_commons.TableIdentifier tableIdentifier, 2:string blockerId)
+    void releaseBlocker(1:amoro_commons.TableIdentifier tableIdentifier, 2:string blockerId)
 
-    i64 renewBlocker(1:arctic_commons.TableIdentifier tableIdentifier, 2:string blockerId)
-        throws(1: arctic_commons.NoSuchObjectException e)
+    i64 renewBlocker(1:amoro_commons.TableIdentifier tableIdentifier, 2:string blockerId)
+        throws(1: amoro_commons.NoSuchObjectException e)
 
-    list<Blocker> getBlockers(1:arctic_commons.TableIdentifier tableIdentifier)
+    list<Blocker> getBlockers(1:amoro_commons.TableIdentifier tableIdentifier)
 }


Test patch:
diff --git a/amoro-core/src/test/java/org/apache/amoro/MockAmoroManagementServer.java b/amoro-core/src/test/java/org/apache/amoro/MockAmoroManagementServer.java
index b1f5cf43f..1c60d3150 100644
--- a/amoro-core/src/test/java/org/apache/amoro/MockAmoroManagementServer.java
+++ b/amoro-core/src/test/java/org/apache/amoro/MockAmoroManagementServer.java
@@ -19,8 +19,8 @@
 package org.apache.amoro;
 
 import org.apache.amoro.api.AlreadyExistsException;
-import org.apache.amoro.api.ArcticException;
-import org.apache.amoro.api.ArcticTableMetastore;
+import org.apache.amoro.api.AmoroException;
+import org.apache.amoro.api.AmoroTableMetastore;
 import org.apache.amoro.api.BlockableOperation;
 import org.apache.amoro.api.Blocker;
 import org.apache.amoro.api.CatalogMeta;
@@ -152,8 +152,8 @@ public class MockAmoroManagementServer implements Runnable {
     try {
       TServerSocket socket = new TServerSocket(port);
       TMultiplexedProcessor processor = new TMultiplexedProcessor();
-      ArcticTableMetastore.Processor<AmsHandler> amsProcessor =
-          new ArcticTableMetastore.Processor<>(amsHandler);
+      AmoroTableMetastore.Processor<AmsHandler> amsProcessor =
+          new AmoroTableMetastore.Processor<>(amsHandler);
       processor.registerProcessor("TableMetastore", amsProcessor);
 
       OptimizingService.Processor<OptimizerManagerHandler> optimizerManProcessor =
@@ -210,7 +210,7 @@ public class MockAmoroManagementServer implements Runnable {
     }
   }
 
-  public static class AmsHandler implements ArcticTableMetastore.Iface {
+  public static class AmsHandler implements AmoroTableMetastore.Iface {
     private static final long DEFAULT_BLOCKER_TIMEOUT = 60_000;
     private final ConcurrentLinkedQueue<CatalogMeta> catalogs = new ConcurrentLinkedQueue<>();
     private final ConcurrentLinkedQueue<TableMeta> tables = new ConcurrentLinkedQueue<>();
@@ -437,7 +437,7 @@ public class MockAmoroManagementServer implements Runnable {
       }
       Map<Integer, OptimizingTaskId> executingTasksMap = executingTasks.get(authToken);
       if (executingTasksMap.containsKey(threadId)) {
-        throw new ArcticException(
+        throw new AmoroException(
             ErrorCodes.TASK_RUNTIME_ERROR_CODE,
             "DuplicateTask",
             String.format(
@@ -484,9 +484,9 @@ public class MockAmoroManagementServer implements Runnable {
       return completedTasks;
     }
 
-    private void checkToken(String token) throws ArcticException {
+    private void checkToken(String token) throws AmoroException {
       if (!registeredOptimizers.containsKey(token)) {
-        throw new ArcticException(
+        throw new AmoroException(
             ErrorCodes.PLUGIN_RETRY_AUTH_ERROR_CODE, "unknown token", "unknown token");
       }
     }