This is an automated email from the ASF dual-hosted git repository. kxiao pushed a commit to branch branch-2.0 in repository https://gitbox.apache.org/repos/asf/doris.git
commit 8ed610fd75b90c4203d64ad7cfacea92c1245c71 Author: Chuang Li <64473732+codecooke...@users.noreply.github.com> AuthorDate: Sun Sep 3 11:16:46 2023 +0800 [fix](hive external) support set hive version when create hive external table (#20622) --- fe/fe-core/src/main/java/org/apache/doris/catalog/HiveTable.java | 6 ++++++ .../main/java/org/apache/doris/datasource/InternalCatalog.java | 3 +++ .../src/test/java/org/apache/doris/catalog/HiveTableTest.java | 8 ++++++++ 3 files changed, 17 insertions(+) diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/HiveTable.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/HiveTable.java index 9f9dadbbe7..550be96f74 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/HiveTable.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/HiveTable.java @@ -106,6 +106,12 @@ public class HiveTable extends Table { } copiedProps.remove(HMSProperties.HIVE_METASTORE_URIS); hiveProperties.put(HMSProperties.HIVE_METASTORE_URIS, hiveMetaStoreUris); + // support multi hive version + String hiveVersion = copiedProps.get(HMSProperties.HIVE_VERSION); + if (!Strings.isNullOrEmpty(hiveVersion)) { + copiedProps.remove(HMSProperties.HIVE_VERSION); + hiveProperties.put(HMSProperties.HIVE_VERSION, hiveVersion); + } // check auth type String authType = copiedProps.get(HdfsResource.HADOOP_SECURITY_AUTHENTICATION); diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java index b0fcd4f486..cef2bcf676 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java @@ -2640,6 +2640,9 @@ public class InternalCatalog implements CatalogIf<Database> { HiveConf hiveConf = new HiveConf(); hiveConf.set(HMSProperties.HIVE_METASTORE_URIS, hiveTable.getHiveProperties().get(HMSProperties.HIVE_METASTORE_URIS)); + if (!Strings.isNullOrEmpty(hiveTable.getHiveProperties().get(HMSProperties.HIVE_VERSION))) { + hiveConf.set(HMSProperties.HIVE_VERSION, hiveTable.getHiveProperties().get(HMSProperties.HIVE_VERSION)); + } PooledHiveMetaStoreClient client = new PooledHiveMetaStoreClient(hiveConf, 1); if (!client.tableExists(hiveTable.getHiveDb(), hiveTable.getHiveTable())) { throw new DdlException(String.format("Table [%s] dose not exist in Hive.", hiveTable.getHiveDbTable())); diff --git a/fe/fe-core/src/test/java/org/apache/doris/catalog/HiveTableTest.java b/fe/fe-core/src/test/java/org/apache/doris/catalog/HiveTableTest.java index 983cd2736e..abfcc68790 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/catalog/HiveTableTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/catalog/HiveTableTest.java @@ -18,6 +18,7 @@ package org.apache.doris.catalog; import org.apache.doris.common.DdlException; +import org.apache.doris.datasource.property.constants.HMSProperties; import com.google.common.collect.Lists; import com.google.common.collect.Maps; @@ -77,4 +78,11 @@ public class HiveTableTest { new HiveTable(1000, "hive_table", columns, properties); Assert.fail("No exception throws."); } + + @Test() + public void testVersion() throws DdlException { + properties.put(HMSProperties.HIVE_VERSION, "2.1.2"); + HiveTable table = new HiveTable(1000, "hive_table", columns, properties); + Assert.assertEquals("2.1.2", table.getHiveProperties().get(HMSProperties.HIVE_VERSION)); + } } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org