[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.
This commit is contained in:
@ -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")
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
Reference in New Issue
Block a user