From beafb796fccd8a9faef29cd373cae91aa7ff40fd Mon Sep 17 00:00:00 2001 From: slothever <18522955+wsjz@users.noreply.github.com> Date: Thu, 28 Dec 2023 15:43:28 +0800 Subject: [PATCH] [fix](multi-catalog)unsupported hive input format should throw an exception and remove useless method (#29087) introduce from: #28644 --- .../main/java/org/apache/doris/common/Config.java | 6 ------ .../doris/catalog/external/HMSExternalTable.java | 12 +++++++++++- .../main/java/org/apache/doris/common/util/Util.java | 10 ---------- 3 files changed, 11 insertions(+), 17 deletions(-) diff --git a/fe/fe-common/src/main/java/org/apache/doris/common/Config.java b/fe/fe-common/src/main/java/org/apache/doris/common/Config.java index eae58ddaafd4abf..0f4d0193470efe0 100644 --- a/fe/fe-common/src/main/java/org/apache/doris/common/Config.java +++ b/fe/fe-common/src/main/java/org/apache/doris/common/Config.java @@ -1679,12 +1679,6 @@ public class Config extends ConfigBase { @ConfField(mutable = true) public static boolean enable_decimal_conversion = true; - /** - * List of S3 API compatible object storage systems. - */ - @ConfField - public static String s3_compatible_object_storages = "s3,oss,cos,bos"; - /** * Support complex data type ARRAY. */ diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/external/HMSExternalTable.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/external/HMSExternalTable.java index 8d86ea72afcfa62..0528194b64fff09 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/external/HMSExternalTable.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/external/HMSExternalTable.java @@ -203,12 +203,22 @@ public boolean isHoodieCowTable() { * Support managed_table and external_table. */ private boolean supportedHiveTable() { + // we will return false if null, which means that the table type maybe unsupported. + if (remoteTable.getSd() == null) { + return false; + } String inputFileFormat = remoteTable.getSd().getInputFormat(); if (inputFileFormat == null) { return false; } + boolean supportedFileFormat = SUPPORTED_HIVE_FILE_FORMATS.contains(inputFileFormat); + if (!supportedFileFormat) { + // for easier debugging, need return error message if unsupported input format is used. + // NotSupportedException is required by some operation. + throw new NotSupportedException("Unsupported hive input format: " + inputFileFormat); + } LOG.debug("hms table {} is {} with file format: {}", name, remoteTable.getTableType(), inputFileFormat); - return SUPPORTED_HIVE_FILE_FORMATS.contains(inputFileFormat); + return true; } /** diff --git a/fe/fe-core/src/main/java/org/apache/doris/common/util/Util.java b/fe/fe-core/src/main/java/org/apache/doris/common/util/Util.java index 58de5133c6b5f3e..87b67dfa28d5ec2 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/common/util/Util.java +++ b/fe/fe-core/src/main/java/org/apache/doris/common/util/Util.java @@ -20,7 +20,6 @@ import org.apache.doris.catalog.Column; import org.apache.doris.catalog.PrimitiveType; import org.apache.doris.common.AnalysisException; -import org.apache.doris.common.Config; import org.apache.doris.common.FeNameFormat; import org.apache.doris.datasource.InternalCatalog; import org.apache.doris.qe.ConnectContext; @@ -513,15 +512,6 @@ public static void prohibitExternalCatalog(String catalog, String msg) throws An } } - public static boolean isS3CompatibleStorageSchema(String schema) { - for (String objectStorage : Config.s3_compatible_object_storages.split(",")) { - if (objectStorage.equalsIgnoreCase(schema)) { - return true; - } - } - return false; - } - private static final char[] HEX_ARRAY = "0123456789ABCDEF".toCharArray(); public static String bytesToHex(byte[] bytes) {