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

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

commit bd364897d42e484755acbe5096c00ec3a8e9afbd
Author: wuwenchi <wuwenchi...@hotmail.com>
AuthorDate: Tue Mar 26 17:09:53 2024 +0800

    [feature](hive/iceberg)add doris's version in table properties (#32774)
    
    issue #31442
    when create a external table, we can add doris's version in table's 
properties.
---
 .../src/main/java/org/apache/doris/datasource/ExternalCatalog.java   | 3 +++
 .../src/main/java/org/apache/doris/datasource/hive/HiveUtil.java     | 5 ++++-
 .../java/org/apache/doris/datasource/iceberg/IcebergMetadataOps.java | 2 ++
 3 files changed, 9 insertions(+), 1 deletion(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalCatalog.java 
b/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalCatalog.java
index d9af5557117..2238ee5de95 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalCatalog.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalCatalog.java
@@ -32,6 +32,7 @@ import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.Config;
 import org.apache.doris.common.DdlException;
 import org.apache.doris.common.UserException;
+import org.apache.doris.common.Version;
 import org.apache.doris.common.io.Text;
 import org.apache.doris.common.io.Writable;
 import org.apache.doris.common.util.Util;
@@ -85,6 +86,8 @@ public abstract class ExternalCatalog
     private static final Logger LOG = 
LogManager.getLogger(ExternalCatalog.class);
 
     public static final String ENABLE_AUTO_ANALYZE = "enable.auto.analyze";
+    public static final String DORIS_VERSION = "doris.version";
+    public static final String DORIS_VERSION_VALUE = 
Version.DORIS_BUILD_VERSION + "-" + Version.DORIS_BUILD_SHORT_HASH;
 
     // Unique id of this catalog, will be assigned after catalog is loaded.
     @SerializedName(value = "id")
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HiveUtil.java 
b/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HiveUtil.java
index cc834894076..e6b5c1095f3 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HiveUtil.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HiveUtil.java
@@ -20,6 +20,7 @@ package org.apache.doris.datasource.hive;
 import org.apache.doris.catalog.Column;
 import org.apache.doris.common.Pair;
 import org.apache.doris.common.UserException;
+import org.apache.doris.datasource.ExternalCatalog;
 import org.apache.doris.fs.remote.BrokerFileSystem;
 import org.apache.doris.fs.remote.RemoteFileSystem;
 
@@ -192,7 +193,9 @@ public final class HiveUtil {
         // table.setViewOriginalText(hiveTable.getViewSql());
         // table.setViewExpandedText(hiveTable.getViewSql());
         table.setTableType("MANAGED_TABLE");
-        table.setParameters(hiveTable.getProperties());
+        Map<String, String> props = new HashMap<>(hiveTable.getProperties());
+        props.put(ExternalCatalog.DORIS_VERSION, 
ExternalCatalog.DORIS_VERSION_VALUE);
+        table.setParameters(props);
         return table;
     }
 
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergMetadataOps.java
 
b/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergMetadataOps.java
index 2caf3c1d16d..0f43ef21c43 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergMetadataOps.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergMetadataOps.java
@@ -27,6 +27,7 @@ import org.apache.doris.catalog.StructType;
 import org.apache.doris.common.DdlException;
 import org.apache.doris.common.UserException;
 import org.apache.doris.datasource.DorisTypeVisitor;
+import org.apache.doris.datasource.ExternalCatalog;
 import org.apache.doris.datasource.ExternalDatabase;
 import org.apache.doris.datasource.operations.ExternalMetadataOps;
 
@@ -117,6 +118,7 @@ public class IcebergMetadataOps implements 
ExternalMetadataOps {
                 DorisTypeVisitor.visit(structType, new 
DorisTypeToIcebergType(structType));
         Schema schema = new 
Schema(visit.asNestedType().asStructType().fields());
         Map<String, String> properties = stmt.getProperties();
+        properties.put(ExternalCatalog.DORIS_VERSION, 
ExternalCatalog.DORIS_VERSION_VALUE);
         PartitionSpec partitionSpec = 
IcebergUtils.solveIcebergPartitionSpec(properties, schema);
         catalog.createTable(TableIdentifier.of(dbName, tableName), schema, 
partitionSpec, properties);
         db.setUnInitialized(true);


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

Reply via email to