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

morningman pushed a commit to branch branch-1.2-lts
in repository https://gitbox.apache.org/repos/asf/doris.git

commit 6912b20dadcc682f7369a60b340413e7fe38dd14
Author: Mingyu Chen <morning...@163.com>
AuthorDate: Thu Feb 2 09:30:25 2023 +0800

    [fix](iceberg) fix meta persist bug of iceberg catalog (#16344)
    
    This PR #16082 forgot to update the GsonUtil for Iceberg 
Catalog/Database/Table
---
 .../doris/catalog/external/IcebergExternalTable.java       |  7 ++-----
 .../main/java/org/apache/doris/persist/gson/GsonUtils.java | 14 +++++++++++---
 .../planner/external/iceberg/IcebergScanProvider.java      | 10 +++++-----
 3 files changed, 18 insertions(+), 13 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/catalog/external/IcebergExternalTable.java
 
b/fe/fe-core/src/main/java/org/apache/doris/catalog/external/IcebergExternalTable.java
index 389ba8dc55..7653efcefb 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/catalog/external/IcebergExternalTable.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/catalog/external/IcebergExternalTable.java
@@ -29,15 +29,12 @@ import java.util.List;
 
 public class IcebergExternalTable extends ExternalTable {
 
-    IcebergExternalCatalog icebergCatalog;
-
     public IcebergExternalTable(long id, String name, String dbName, 
IcebergExternalCatalog catalog) {
         super(id, name, catalog, dbName, TableType.ICEBERG_EXTERNAL_TABLE);
-        icebergCatalog = catalog;
     }
 
     public String getIcebergCatalogType() {
-        return icebergCatalog.getIcebergCatalogType();
+        return ((IcebergExternalCatalog) catalog).getIcebergCatalogType();
     }
 
     protected synchronized void makeSureInitialized() {
@@ -49,7 +46,7 @@ public class IcebergExternalTable extends ExternalTable {
     @Override
     public TTableDescriptor toThrift() {
         List<Column> schema = getFullSchema();
-        if (icebergCatalog.getIcebergCatalogType().equals("hms")) {
+        if (getIcebergCatalogType().equals("hms")) {
             THiveTable tHiveTable = new THiveTable(dbName, name, new 
HashMap<>());
             TTableDescriptor tTableDescriptor = new TTableDescriptor(getId(), 
TTableType.HIVE_TABLE, schema.size(), 0,
                     getName(), dbName);
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/persist/gson/GsonUtils.java 
b/fe/fe-core/src/main/java/org/apache/doris/persist/gson/GsonUtils.java
index f690ded337..f613d6f986 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/persist/gson/GsonUtils.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/persist/gson/GsonUtils.java
@@ -43,6 +43,8 @@ import org.apache.doris.catalog.external.ExternalDatabase;
 import org.apache.doris.catalog.external.ExternalTable;
 import org.apache.doris.catalog.external.HMSExternalDatabase;
 import org.apache.doris.catalog.external.HMSExternalTable;
+import org.apache.doris.catalog.external.IcebergExternalDatabase;
+import org.apache.doris.catalog.external.IcebergExternalTable;
 import org.apache.doris.catalog.external.JdbcExternalDatabase;
 import org.apache.doris.catalog.external.JdbcExternalTable;
 import org.apache.doris.datasource.CatalogIf;
@@ -50,6 +52,8 @@ import org.apache.doris.datasource.EsExternalCatalog;
 import org.apache.doris.datasource.HMSExternalCatalog;
 import org.apache.doris.datasource.InternalCatalog;
 import org.apache.doris.datasource.JdbcExternalCatalog;
+import org.apache.doris.datasource.iceberg.IcebergHMSExternalCatalog;
+import org.apache.doris.datasource.iceberg.IcebergRestExternalCatalog;
 import org.apache.doris.load.loadv2.LoadJob.LoadJobStateUpdateInfo;
 import org.apache.doris.load.loadv2.SparkLoadJob.SparkLoadJobStateUpdateInfo;
 import org.apache.doris.load.sync.SyncJob;
@@ -167,21 +171,25 @@ public class GsonUtils {
             .registerSubtype(InternalCatalog.class, 
InternalCatalog.class.getSimpleName())
             .registerSubtype(HMSExternalCatalog.class, 
HMSExternalCatalog.class.getSimpleName())
             .registerSubtype(EsExternalCatalog.class, 
EsExternalCatalog.class.getSimpleName())
-            .registerSubtype(JdbcExternalCatalog.class, 
JdbcExternalCatalog.class.getSimpleName());
+            .registerSubtype(JdbcExternalCatalog.class, 
JdbcExternalCatalog.class.getSimpleName())
+            .registerSubtype(IcebergHMSExternalCatalog.class, 
IcebergHMSExternalCatalog.class.getSimpleName())
+            .registerSubtype(IcebergRestExternalCatalog.class, 
IcebergRestExternalCatalog.class.getSimpleName());
 
     private static RuntimeTypeAdapterFactory<DatabaseIf> dbTypeAdapterFactory 
= RuntimeTypeAdapterFactory.of(
                     DatabaseIf.class, "clazz")
             .registerSubtype(ExternalDatabase.class, 
ExternalDatabase.class.getSimpleName())
             .registerSubtype(EsExternalDatabase.class, 
EsExternalDatabase.class.getSimpleName())
             .registerSubtype(HMSExternalDatabase.class, 
HMSExternalDatabase.class.getSimpleName())
-            .registerSubtype(JdbcExternalDatabase.class, 
JdbcExternalDatabase.class.getSimpleName());
+            .registerSubtype(JdbcExternalDatabase.class, 
JdbcExternalDatabase.class.getSimpleName())
+            .registerSubtype(IcebergExternalDatabase.class, 
IcebergExternalDatabase.class.getSimpleName());
 
     private static RuntimeTypeAdapterFactory<TableIf> tblTypeAdapterFactory = 
RuntimeTypeAdapterFactory.of(
                     TableIf.class, "clazz")
             .registerSubtype(ExternalTable.class, 
ExternalTable.class.getSimpleName())
             .registerSubtype(EsExternalTable.class, 
EsExternalTable.class.getSimpleName())
             .registerSubtype(HMSExternalTable.class, 
HMSExternalTable.class.getSimpleName())
-            .registerSubtype(JdbcExternalTable.class, 
JdbcExternalTable.class.getSimpleName());
+            .registerSubtype(JdbcExternalTable.class, 
JdbcExternalTable.class.getSimpleName())
+            .registerSubtype(IcebergExternalTable.class, 
IcebergExternalTable.class.getSimpleName());
 
     // the builder of GSON instance.
     // Add any other adapters if necessary.
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/planner/external/iceberg/IcebergScanProvider.java
 
b/fe/fe-core/src/main/java/org/apache/doris/planner/external/iceberg/IcebergScanProvider.java
index 550151d2cf..6c4fb85055 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/planner/external/iceberg/IcebergScanProvider.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/planner/external/iceberg/IcebergScanProvider.java
@@ -170,13 +170,13 @@ public class IcebergScanProvider extends 
QueryScanProvider {
         List<InputSplit> splits = new ArrayList<>();
         int formatVersion = ((BaseTable) 
table).operations().current().formatVersion();
         for (FileScanTask task : scan.planFiles()) {
-            for (FileScanTask spitTask : task.split(128 * 1024 * 1024)) {
-                String dataFilePath = spitTask.file().path().toString();
-                IcebergSplit split = new IcebergSplit(new Path(dataFilePath), 
spitTask.start(),
-                        spitTask.length(), new String[0]);
+            for (FileScanTask splitTask : task.split(128 * 1024 * 1024)) {
+                String dataFilePath = splitTask.file().path().toString();
+                IcebergSplit split = new IcebergSplit(new Path(dataFilePath), 
splitTask.start(),
+                        splitTask.length(), new String[0]);
                 split.setFormatVersion(formatVersion);
                 if (formatVersion >= MIN_DELETE_FILE_SUPPORT_VERSION) {
-                    split.setDeleteFileFilters(getDeleteFileFilters(spitTask));
+                    
split.setDeleteFileFilters(getDeleteFileFilters(splitTask));
                 }
                 split.setTableFormatType(TableFormatType.ICEBERG);
                 split.setAnalyzer(analyzer);


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to