This is an automated email from the ASF dual-hosted git repository. hellostephen pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push: new fa511851863 Revert "[enhancement](hive)Initial support for Hive org.openx.data.jsonserde.JsonSerDe" (#49928) fa511851863 is described below commit fa511851863e883487faead5e0bccc2876671523 Author: Dongyang Li <lidongy...@selectdb.com> AuthorDate: Thu Apr 10 09:52:46 2025 +0800 Revert "[enhancement](hive)Initial support for Hive org.openx.data.jsonserde.JsonSerDe" (#49928) Reverts apache/doris#49209 --- be/src/vec/exec/format/json/new_json_reader.cpp | 33 +------- be/src/vec/exec/format/json/new_json_reader.h | 8 +- .../hive/scripts/auxlib/json-serde-1.3.9.tar.gz | Bin 78992 -> 0 bytes .../scripts/create_preinstalled_scripts/run76.hql | 56 -------------- .../docker-compose/hive/scripts/hive-metastore.sh | 11 --- .../json/openx_json/json_data_arrays_tb/1 | 2 - .../json/openx_json/json_one_column_table/1 | 5 -- .../preinstalled_data/json/openx_json/json_table/1 | 2 - .../preinstalled_data/json/openx_json/json_table/2 | 11 --- .../json/openx_json/scalar_to_array_tb/1 | 1 - .../doris/datasource/hive/HMSExternalTable.java | 8 -- .../datasource/hive/HiveMetaStoreClientHelper.java | 1 - .../doris/datasource/hive/HiveProperties.java | 12 --- .../doris/datasource/hive/source/HiveScanNode.java | 48 +----------- .../java/org/apache/doris/qe/SessionVariable.java | 21 ------ gensrc/thrift/PlanNodes.thrift | 3 - .../hive/test_hive_openx_json.out | Bin 709 -> 0 bytes .../hive/test_hive_openx_json.groovy | 84 --------------------- 18 files changed, 9 insertions(+), 297 deletions(-) diff --git a/be/src/vec/exec/format/json/new_json_reader.cpp b/be/src/vec/exec/format/json/new_json_reader.cpp index a125654eada..5820174e7fa 100644 --- a/be/src/vec/exec/format/json/new_json_reader.cpp +++ b/be/src/vec/exec/format/json/new_json_reader.cpp @@ -399,20 +399,6 @@ Status NewJsonReader::_get_range_params() { if (_range.table_format_params.table_format_type == "hive") { _is_hive_table = true; } - if (_params.file_attributes.__isset.openx_json_ignore_malformed) { - _openx_json_ignore_malformed = _params.file_attributes.openx_json_ignore_malformed; - } - return Status::OK(); -} - -static Status ignore_malformed_json_append_null(Block& block) { - for (auto& column : block.get_columns()) { - if (!column->is_nullable()) [[unlikely]] { - return Status::DataQualityError("malformed json, but the column `{}` is not nullable.", - column->get_name()); - } - static_cast<ColumnNullable*>(column->assume_mutable().get())->insert_default(); - } return Status::OK(); } @@ -500,13 +486,8 @@ Status NewJsonReader::_vhandle_simple_json(RuntimeState* /*state*/, Block& block bool valid = false; if (_next_row >= _total_rows) { // parse json and generic document Status st = _parse_json(is_empty_row, eof); - if (st.is<DATA_QUALITY_ERROR>()) { - if (_is_load) { - continue; // continue to read next (for load, after this , already append error to file.) - } else if (_openx_json_ignore_malformed) { - RETURN_IF_ERROR(ignore_malformed_json_append_null(block)); - continue; - } + if (_is_load && st.is<DATA_QUALITY_ERROR>()) { + continue; // continue to read next (for load, after this , already append error to file.) } RETURN_IF_ERROR(st); if (*is_empty_row) { @@ -1315,15 +1296,9 @@ Status NewJsonReader::_simdjson_handle_simple_json(RuntimeState* /*state*/, Bloc // step2: get json value by json doc Status st = _get_json_value(&size, eof, &error, is_empty_row); - if (st.is<DATA_QUALITY_ERROR>()) { - if (_is_load) { - return Status::OK(); - } else if (_openx_json_ignore_malformed) { - RETURN_IF_ERROR(ignore_malformed_json_append_null(block)); - return Status::OK(); - } + if (_is_load && st.is<DATA_QUALITY_ERROR>()) { + return Status::OK(); } - RETURN_IF_ERROR(st); if (*is_empty_row || *eof) { return Status::OK(); diff --git a/be/src/vec/exec/format/json/new_json_reader.h b/be/src/vec/exec/format/json/new_json_reader.h index 6b42ca23b4f..430f8c7af18 100644 --- a/be/src/vec/exec/format/json/new_json_reader.h +++ b/be/src/vec/exec/format/json/new_json_reader.h @@ -293,22 +293,18 @@ private: int32_t skip_bitmap_col_idx {-1}; + bool _is_load = true; //Used to indicate whether it is a stream load. When loading, only data will be inserted into columnString. //If an illegal value is encountered during the load process, `_append_error_msg` should be called //instead of directly returning `Status::DataQualityError` - bool _is_load = true; + bool _is_hive_table = false; // In hive : create table xxx ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe'; // Hive will not allow you to create columns with the same name but different case, including field names inside // structs, and will automatically convert uppercase names in create sql to lowercase.However, when Hive loads data // to table, the column names in the data may be uppercase,and there may be multiple columns with // the same name but different capitalization.We refer to the behavior of hive, convert all column names // in the data to lowercase,and use the last one as the insertion value - bool _is_hive_table = false; - - // hive : org.openx.data.jsonserde.JsonSerDe, `ignore.malformed.json` prop. - // If the variable is true, `null` will be inserted for llegal json format instead of return error. - bool _openx_json_ignore_malformed = false; DataTypeSerDeSPtrs _serdes; vectorized::DataTypeSerDe::FormatOptions _serde_options; diff --git a/docker/thirdparties/docker-compose/hive/scripts/auxlib/json-serde-1.3.9.tar.gz b/docker/thirdparties/docker-compose/hive/scripts/auxlib/json-serde-1.3.9.tar.gz deleted file mode 100644 index 1eb63aa7727..00000000000 Binary files a/docker/thirdparties/docker-compose/hive/scripts/auxlib/json-serde-1.3.9.tar.gz and /dev/null differ diff --git a/docker/thirdparties/docker-compose/hive/scripts/create_preinstalled_scripts/run76.hql b/docker/thirdparties/docker-compose/hive/scripts/create_preinstalled_scripts/run76.hql deleted file mode 100644 index 1f83f932445..00000000000 --- a/docker/thirdparties/docker-compose/hive/scripts/create_preinstalled_scripts/run76.hql +++ /dev/null @@ -1,56 +0,0 @@ -create database if not exists openx_json; -use openx_json; - - -CREATE TABLE IF NOT EXISTS json_table ( - id INT, - name STRING, - numbers ARRAY<INT>, - scores MAP<STRING, INT>, - details STRUCT<a:INT, b:STRING, c:BIGINT> -) -ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' -LOCATION '/user/doris/preinstalled_data/json/openx_json/json_table'; - - -CREATE TABLE IF NOT EXISTS json_table_ignore_malformed ( - id INT, - name STRING, - numbers ARRAY<INT>, - scores MAP<STRING, INT>, - details STRUCT<a:INT, b:STRING, c:BIGINT> -) -ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' -WITH SERDEPROPERTIES ("ignore.malformed.json" = "true" ) -LOCATION '/user/doris/preinstalled_data/json/openx_json/json_table'; - - -CREATE TABLE json_data_arrays_tb ( - name string, age int) -ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' -LOCATION '/user/doris/preinstalled_data/json/openx_json/json_data_arrays_tb'; - - -CREATE TABLE IF NOT EXISTS scalar_to_array_tb( - id INT, - name STRING, - tags ARRAY<STRING> -)ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' -LOCATION '/user/doris/preinstalled_data/json/openx_json/scalar_to_array_tb'; - - -CREATE TABLE IF NOT EXISTS json_one_column_table ( - name STRING, - id INT, - numbers ARRAY<INT>, - scores MAP<STRING, INT>, - details STRUCT<a:INT, b:STRING, c:BIGINT> -) -ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' -LOCATION '/user/doris/preinstalled_data/json/openx_json/json_one_column_table'; - -msck repair table json_table; -msck repair table json_table_ignore_malformed; -msck repair table json_data_arrays_tb; -msck repair table scalar_to_array_tb; -msck repair table json_one_column_table; \ No newline at end of file diff --git a/docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh b/docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh index 04ddf42c70c..ac4c9ae4480 100755 --- a/docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh +++ b/docker/thirdparties/docker-compose/hive/scripts/hive-metastore.sh @@ -20,17 +20,6 @@ set -e -x parallel=$(getconf _NPROCESSORS_ONLN) - - -AUX_LIB="/mnt/scripts/auxlib" -for file in "${AUX_LIB}"/*.tar.gz; do - [ -e "$file" ] || continue - tar -xzvf "$file" -C "$AUX_LIB" - echo "file = ${file}" -done -ls "${AUX_LIB}/" -mv "${AUX_LIB}"/ /opt/hive - nohup /opt/hive/bin/hive --service metastore & # wait lockfile diff --git a/docker/thirdparties/docker-compose/hive/scripts/preinstalled_data/json/openx_json/json_data_arrays_tb/1 b/docker/thirdparties/docker-compose/hive/scripts/preinstalled_data/json/openx_json/json_data_arrays_tb/1 deleted file mode 100644 index 098bb346b50..00000000000 --- a/docker/thirdparties/docker-compose/hive/scripts/preinstalled_data/json/openx_json/json_data_arrays_tb/1 +++ /dev/null @@ -1,2 +0,0 @@ -["John", 26 ] -["Mary", 23 ] \ No newline at end of file diff --git a/docker/thirdparties/docker-compose/hive/scripts/preinstalled_data/json/openx_json/json_one_column_table/1 b/docker/thirdparties/docker-compose/hive/scripts/preinstalled_data/json/openx_json/json_one_column_table/1 deleted file mode 100644 index d396f66a079..00000000000 --- a/docker/thirdparties/docker-compose/hive/scripts/preinstalled_data/json/openx_json/json_one_column_table/1 +++ /dev/null @@ -1,5 +0,0 @@ - -{"name":"bad1","id":5,"numbers":[1,2,3] -[1,2,3] -"just a string" -{"name":"bad2","id":6,"numbers":"not an array","scores":{"key4":40},"details":{"a":4,"b":"text","c":4000000}} diff --git a/docker/thirdparties/docker-compose/hive/scripts/preinstalled_data/json/openx_json/json_table/1 b/docker/thirdparties/docker-compose/hive/scripts/preinstalled_data/json/openx_json/json_table/1 deleted file mode 100644 index 11a3edf6e80..00000000000 --- a/docker/thirdparties/docker-compose/hive/scripts/preinstalled_data/json/openx_json/json_table/1 +++ /dev/null @@ -1,2 +0,0 @@ -{"id": 1, "name": "Alice", "numbers": [1, 2, 3], "scores": {"math": 90, "english": 85}, "details": {"a": 100, "b": "test1", "c": 1234567890}} -{"id": 2, "name": "Bob", "numbers": [4, 5], "scores": {"math": 80, "science": 95}, "details": {"a": 200, "b": "test2", "c": 9876543210}} \ No newline at end of file diff --git a/docker/thirdparties/docker-compose/hive/scripts/preinstalled_data/json/openx_json/json_table/2 b/docker/thirdparties/docker-compose/hive/scripts/preinstalled_data/json/openx_json/json_table/2 deleted file mode 100644 index e77c1f49d85..00000000000 --- a/docker/thirdparties/docker-compose/hive/scripts/preinstalled_data/json/openx_json/json_table/2 +++ /dev/null @@ -1,11 +0,0 @@ -{"id" 3 "name" "Bob", -"numbers": [ - 4 5 -], -"scores": { -"math": 80 -}, -"details" -: { -"a": 200 , "b" } "test2", "c": 9876543210 -}} \ No newline at end of file diff --git a/docker/thirdparties/docker-compose/hive/scripts/preinstalled_data/json/openx_json/scalar_to_array_tb/1 b/docker/thirdparties/docker-compose/hive/scripts/preinstalled_data/json/openx_json/scalar_to_array_tb/1 deleted file mode 100644 index 24a9acc63a3..00000000000 --- a/docker/thirdparties/docker-compose/hive/scripts/preinstalled_data/json/openx_json/scalar_to_array_tb/1 +++ /dev/null @@ -1 +0,0 @@ -{"name":"Charlie","id":4,"tags":"flink"} \ No newline at end of file diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HMSExternalTable.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HMSExternalTable.java index 33c945272e7..dfd7d6fe4b8 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HMSExternalTable.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HMSExternalTable.java @@ -1084,14 +1084,6 @@ public class HMSExternalTable extends ExternalTable implements MTMVRelatedTableI public void beforeMTMVRefresh(MTMV mtmv) throws DdlException { } - public boolean firstColumnIsString() { - List<Column> columns = getColumns(); - if (columns == null || columns.isEmpty()) { - return false; - } - return columns.get(0).getType().isScalarType(PrimitiveType.STRING); - } - public HoodieTableMetaClient getHudiClient() { return Env.getCurrentEnv() .getExtMetaCacheMgr() diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HiveMetaStoreClientHelper.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HiveMetaStoreClientHelper.java index d98bf8227e1..9bb09225607 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HiveMetaStoreClientHelper.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HiveMetaStoreClientHelper.java @@ -95,7 +95,6 @@ public class HiveMetaStoreClientHelper { public static final String HIVE_JSON_SERDE = "org.apache.hive.hcatalog.data.JsonSerDe"; public static final String LEGACY_HIVE_JSON_SERDE = "org.apache.hadoop.hive.serde2.JsonSerDe"; - public static final String OPENX_JSON_SERDE = "org.openx.data.jsonserde.JsonSerDe"; public enum HiveFileFormat { TEXT_FILE(0, "text"), diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HiveProperties.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HiveProperties.java index b06ea772fab..74f3dcc1a9d 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HiveProperties.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HiveProperties.java @@ -55,11 +55,6 @@ public class HiveProperties { public static final String PROP_ESCAPE_CHAR = OpenCSVSerde.ESCAPECHAR; public static final String DEFAULT_ESCAPE_CHAR = "\\"; - // org.openx.data.jsonserde.JsonSerDe - public static final String PROP_OPENX_IGNORE_MALFORMED_JSON = "ignore.malformed.json"; - public static final String DEFAULT_OPENX_IGNORE_MALFORMED_JSON = "false"; - - public static final Set<String> HIVE_SERDE_PROPERTIES = ImmutableSet.of( PROP_FIELD_DELIMITER, PROP_COLLECTION_DELIMITER_HIVE2, @@ -136,13 +131,6 @@ public class HiveProperties { return HiveMetaStoreClientHelper.firstPresentOrDefault(DEFAULT_ESCAPE_CHAR, escapeChar); } - public static String getOpenxJsonIgnoreMalformed(Table table) { - Optional<String> escapeChar = HiveMetaStoreClientHelper.getSerdeProperty(table, - PROP_OPENX_IGNORE_MALFORMED_JSON); - return HiveMetaStoreClientHelper.firstPresentOrDefault(DEFAULT_OPENX_IGNORE_MALFORMED_JSON, escapeChar); - } - - // Set properties to table public static void setTableProperties(Table table, Map<String, String> properties) { HashMap<String, String> serdeProps = new HashMap<>(); diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/source/HiveScanNode.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/source/HiveScanNode.java index c2503789580..890f6147f33 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/source/HiveScanNode.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/source/HiveScanNode.java @@ -125,7 +125,7 @@ public class HiveScanNode extends FileQueryScanNode { this.hiveTransaction = new HiveTransaction(DebugUtil.printId(ConnectContext.get().queryId()), ConnectContext.get().getQualifiedUser(), hmsTable, hmsTable.isFullAcidTable()); Env.getCurrentHiveTransactionMgr().register(hiveTransaction); - skipCheckingAcidVersionFile = sessionVariable.skipCheckingAcidVersionFile; + skipCheckingAcidVersionFile = ConnectContext.get().getSessionVariable().skipCheckingAcidVersionFile; } } @@ -413,17 +413,6 @@ public class HiveScanNode extends FileQueryScanNode { if (serDeLib.equals(HiveMetaStoreClientHelper.HIVE_JSON_SERDE) || serDeLib.equals(HiveMetaStoreClientHelper.LEGACY_HIVE_JSON_SERDE)) { type = TFileFormatType.FORMAT_JSON; - } else if (serDeLib.equals(HiveMetaStoreClientHelper.OPENX_JSON_SERDE)) { - if (!sessionVariable.isReadHiveJsonInOneColumn()) { - type = TFileFormatType.FORMAT_JSON; - } else if (sessionVariable.isReadHiveJsonInOneColumn() - && hmsTable.firstColumnIsString()) { - type = TFileFormatType.FORMAT_CSV_PLAIN; - } else { - throw new UserException("You set read_hive_json_in_one_column = true, but the first column of " - + "table " + hmsTable.getName() - + " is not a string column."); - } } else { type = TFileFormatType.FORMAT_CSV_PLAIN; } @@ -460,7 +449,7 @@ public class HiveScanNode extends FileQueryScanNode { fileAttributes.setTextParams(textParams); fileAttributes.setHeaderType(""); fileAttributes.setEnableTextValidateUtf8( - sessionVariable.enableTextValidateUtf8); + ConnectContext.get().getSessionVariable().enableTextValidateUtf8); } else if (serDeLib.equals("org.apache.hadoop.hive.serde2.OpenCSVSerde")) { TFileTextScanRangeParams textParams = new TFileTextScanRangeParams(); // set set properties of OpenCSVSerde @@ -478,7 +467,7 @@ public class HiveScanNode extends FileQueryScanNode { fileAttributes.setTrimDoubleQuotes(true); } fileAttributes.setEnableTextValidateUtf8( - sessionVariable.enableTextValidateUtf8); + ConnectContext.get().getSessionVariable().enableTextValidateUtf8); } else if (serDeLib.equals("org.apache.hive.hcatalog.data.JsonSerDe")) { TFileTextScanRangeParams textParams = new TFileTextScanRangeParams(); textParams.setColumnSeparator("\t"); @@ -492,37 +481,6 @@ public class HiveScanNode extends FileQueryScanNode { fileAttributes.setReadJsonByLine(true); fileAttributes.setStripOuterArray(false); fileAttributes.setHeaderType(""); - } else if (serDeLib.equals("org.openx.data.jsonserde.JsonSerDe")) { - if (!sessionVariable.isReadHiveJsonInOneColumn()) { - TFileTextScanRangeParams textParams = new TFileTextScanRangeParams(); - textParams.setColumnSeparator("\t"); - textParams.setLineDelimiter("\n"); - fileAttributes.setTextParams(textParams); - - fileAttributes.setJsonpaths(""); - fileAttributes.setJsonRoot(""); - fileAttributes.setNumAsString(true); - fileAttributes.setFuzzyParse(false); - fileAttributes.setReadJsonByLine(true); - fileAttributes.setStripOuterArray(false); - fileAttributes.setHeaderType(""); - - fileAttributes.setOpenxJsonIgnoreMalformed( - Boolean.parseBoolean(HiveProperties.getOpenxJsonIgnoreMalformed(table))); - } else if (sessionVariable.isReadHiveJsonInOneColumn() - && hmsTable.firstColumnIsString()) { - TFileTextScanRangeParams textParams = new TFileTextScanRangeParams(); - textParams.setLineDelimiter("\n"); - textParams.setColumnSeparator("\n"); - //First, perform row splitting according to `\n`. When performing column splitting, - // since there is no `\n`, only one column of data will be generated. - fileAttributes.setTextParams(textParams); - fileAttributes.setHeaderType(""); - } else { - throw new UserException("You set read_hive_json_in_one_column = true, but the first column of table " - + hmsTable.getName() - + " is not a string column."); - } } else { throw new UserException( "unsupported hive table serde: " + serDeLib); diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java b/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java index 48ac010e830..86c47de612f 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java +++ b/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java @@ -708,8 +708,6 @@ public class SessionVariable implements Serializable, Writable { "enable_cooldown_replica_affinity"; public static final String SKIP_CHECKING_ACID_VERSION_FILE = "skip_checking_acid_version_file"; - public static final String READ_HIVE_JSON_IN_ONE_COLUMN = "read_hive_json_in_one_column"; - /** * Inserting overwrite for auto partition table allows creating partition for * datas which cannot find partition to overwrite. @@ -1222,17 +1220,6 @@ public class SessionVariable implements Serializable, Writable { @VariableMgr.VarAttr(name = PARALLEL_PREPARE_THRESHOLD, fuzzy = true) public int parallelPrepareThreshold = 32; - @VariableMgr.VarAttr(name = READ_HIVE_JSON_IN_ONE_COLUMN, - description = {"在读取hive json的时候,由于存在一些不支持的json格式,我们默认会报错。为了让用户使用体验更好," - + "当该变量为true的时候,将一整行json读取到第一列中,用户可以自行选择对一整行json进行处理,例如JSON_PARSE。" - + "需要表的第一列的数据类型为string.", - "When reading hive json, we will report an error by default because there are some unsupported " - + "json formats. In order to provide users with a better experience, when this variable is true," - + "a whole line of json is read into the first column. Users can choose to process a whole line" - + "of json, such as JSON_PARSE. The data type of the first column of the table needs to" - + "be string."}) - private boolean readHiveJsonInOneColumn = false; - @VariableMgr.VarAttr(name = ENABLE_COST_BASED_JOIN_REORDER) private boolean enableJoinReorderBasedCost = false; @@ -3784,14 +3771,6 @@ public class SessionVariable implements Serializable, Writable { this.keepCarriageReturn = keepCarriageReturn; } - public boolean isReadHiveJsonInOneColumn() { - return readHiveJsonInOneColumn; - } - - public void setReadHiveJsonInOneColumn(boolean readHiveJsonInOneColumn) { - this.readHiveJsonInOneColumn = readHiveJsonInOneColumn; - } - public boolean isDropTableIfCtasFailed() { return dropTableIfCtasFailed; } diff --git a/gensrc/thrift/PlanNodes.thrift b/gensrc/thrift/PlanNodes.thrift index 3165a6ac764..407c77fc340 100644 --- a/gensrc/thrift/PlanNodes.thrift +++ b/gensrc/thrift/PlanNodes.thrift @@ -271,9 +271,6 @@ struct TFileAttributes { 11: optional i32 skip_lines; //For text type file reading, whether to enable utf8 encoding check.(Catalog && TVF) 12: optional bool enable_text_validate_utf8 = true; - // org.openx.data.jsonserde.JsonSerDe - 13: optional bool openx_json_ignore_malformed = false; - // for cloud copy into 1001: optional bool ignore_csv_redundant_col; } diff --git a/regression-test/data/external_table_p0/hive/test_hive_openx_json.out b/regression-test/data/external_table_p0/hive/test_hive_openx_json.out deleted file mode 100644 index 6eadea56694..00000000000 Binary files a/regression-test/data/external_table_p0/hive/test_hive_openx_json.out and /dev/null differ diff --git a/regression-test/suites/external_table_p0/hive/test_hive_openx_json.groovy b/regression-test/suites/external_table_p0/hive/test_hive_openx_json.groovy deleted file mode 100644 index b9698809c4d..00000000000 --- a/regression-test/suites/external_table_p0/hive/test_hive_openx_json.groovy +++ /dev/null @@ -1,84 +0,0 @@ -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -suite("test_hive_openx_json", "p0,external,hive,external_docker,external_docker_hive") { - - - String enabled = context.config.otherConfigs.get("enableHiveTest") - if (enabled == null || !enabled.equalsIgnoreCase("true")) { - logger.info("diable Hive test.") - return; - } - - for (String hivePrefix : ["hive3"]) { - try { - sql """set enable_fallback_to_original_planner=false""" - String externalEnvIp = context.config.otherConfigs.get("externalEnvIp") - String hms_port = context.config.otherConfigs.get(hivePrefix + "HmsPort") - String catalog_name = "${hivePrefix}_test_hive_openx_json" - String broker_name = "hdfs" - - sql """drop catalog if exists ${catalog_name}""" - sql """create catalog if not exists ${catalog_name} properties ( - 'type'='hms', - 'hive.metastore.uris'='thrift://${externalEnvIp}:${hms_port}' - );""" - sql """use `${catalog_name}`.`openx_json`""" - - try { - sql """ select * from json_table """; - } catch (Exception e) { - log.info(e.getMessage()) - assertTrue(e.getMessage().contains("DATA_QUALITY_ERROR")) - } - - order_qt_q1 """ select * from json_table_ignore_malformed """ - - - try{ - sql """ select * from json_data_arrays_tb """; - } catch (Exception e) { - log.info(e.getMessage()) - assertTrue(e.getMessage().contains("DATA_QUALITY_ERROR")) - } - - - try{ - sql """ select * from scalar_to_array_tb """; - } catch (Exception e) { - log.info(e.getMessage()) - assertTrue(e.getMessage().contains("DATA_QUALITY_ERROR")) - } - - sql """ set read_hive_json_in_one_column = true; """ - - order_qt_2 """ select * from json_data_arrays_tb """ - order_qt_3 """ select * from json_one_column_table """ - - try{ - sql """ select * from scalar_to_array_tb """; - } catch (Exception e) { - log.info(e.getMessage()) - assertTrue(e.getMessage().contains("is not a string column.")) - } - - - sql """drop catalog if exists ${catalog_name}""" - } finally { - } - } -} --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org