diff --git a/docker/thirdparties/docker-compose/hive/scripts/create_preinstalled_scripts/run74.hql b/docker/thirdparties/docker-compose/hive/scripts/create_preinstalled_scripts/run74.hql new file mode 100644 index 00000000000000..31e98f370d5009 --- /dev/null +++ b/docker/thirdparties/docker-compose/hive/scripts/create_preinstalled_scripts/run74.hql @@ -0,0 +1,53 @@ +create database if not exists partition_tables; +use partition_tables; + +CREATE TABLE decimal_partition_table ( + id INT, + name STRING, + value FLOAT +) +PARTITIONED BY (partition_col DECIMAL(10, 2)) +STORED AS PARQUET +LOCATION '/user/doris/preinstalled_data/partition_tables/decimal_partition_table'; + +CREATE TABLE int_partition_table ( + id INT, + name STRING, + value FLOAT +) +PARTITIONED BY (partition_col INT) +STORED AS PARQUET +LOCATION '/user/doris/preinstalled_data/partition_tables/int_partition_table'; + +CREATE TABLE string_partition_table ( + id INT, + name STRING, + value FLOAT +) +PARTITIONED BY (partition_col STRING) +STORED AS PARQUET +LOCATION '/user/doris/preinstalled_data/partition_tables/string_partition_table'; + +CREATE TABLE date_partition_table ( + id INT, + name STRING, + value FLOAT +) +PARTITIONED BY (partition_col DATE) +STORED AS PARQUET +LOCATION '/user/doris/preinstalled_data/partition_tables/date_partition_table'; + +CREATE TABLE string_partition_table_with_comma ( + id INT, + name STRING, + value FLOAT +) +PARTITIONED BY (partition_col STRING) +STORED AS PARQUET +LOCATION '/user/doris/preinstalled_data/partition_tables/string_partition_table_with_comma'; + +msck repair table decimal_partition_table; +msck repair table int_partition_table; +msck repair table string_partition_table; +msck repair table date_partition_table; +msck repair table string_partition_table_with_comma; diff --git a/docker/thirdparties/docker-compose/hive/scripts/preinstalled_data/partition_tables/string_partition_table_with_comma/partition_col=,/000000_0 b/docker/thirdparties/docker-compose/hive/scripts/preinstalled_data/partition_tables/string_partition_table_with_comma/partition_col=,/000000_0 new file mode 100644 index 00000000000000..a93ce013162c20 Binary files /dev/null and b/docker/thirdparties/docker-compose/hive/scripts/preinstalled_data/partition_tables/string_partition_table_with_comma/partition_col=,/000000_0 differ diff --git a/docker/thirdparties/docker-compose/hive/scripts/preinstalled_data/partition_tables/string_partition_table_with_comma/partition_col=a, b, c/000000_0 b/docker/thirdparties/docker-compose/hive/scripts/preinstalled_data/partition_tables/string_partition_table_with_comma/partition_col=a, b, c/000000_0 new file mode 100644 index 00000000000000..4e6e043ccf509a Binary files /dev/null and b/docker/thirdparties/docker-compose/hive/scripts/preinstalled_data/partition_tables/string_partition_table_with_comma/partition_col=a, b, c/000000_0 differ diff --git a/docker/thirdparties/docker-compose/hive/scripts/preinstalled_data/partition_tables/string_partition_table_with_comma/partition_col=a, b/000000_0 b/docker/thirdparties/docker-compose/hive/scripts/preinstalled_data/partition_tables/string_partition_table_with_comma/partition_col=a, b/000000_0 new file mode 100644 index 00000000000000..63b7f592e7bac3 Binary files /dev/null and b/docker/thirdparties/docker-compose/hive/scripts/preinstalled_data/partition_tables/string_partition_table_with_comma/partition_col=a, b/000000_0 differ diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HiveMetaStoreCache.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HiveMetaStoreCache.java index 48a625c35a7599..751919e85f4abb 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HiveMetaStoreCache.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HiveMetaStoreCache.java @@ -404,7 +404,8 @@ private FileCacheValue loadFiles(FileCacheKey key) { } catch (Exception e) { LOG.warn("unknown scheme in path: " + finalLocation, e); } - FileInputFormat.setInputPaths(jobConf, finalLocation.get()); + // NOTICE: the setInputPaths has 2 overloads, the 2nd arg should be Path not String + FileInputFormat.setInputPaths(jobConf, finalLocation.getPath()); try { FileCacheValue result = getFileCache(finalLocation.get(), key.inputFormat, jobConf, key.getPartitionValues(), key.bindBrokerName); diff --git a/regression-test/data/external_table_p0/hive/test_hive_partitions.out b/regression-test/data/external_table_p0/hive/test_hive_partitions.out index 904eb6eda301ca..ea0c8f1518c5e0 100644 --- a/regression-test/data/external_table_p0/hive/test_hive_partitions.out +++ b/regression-test/data/external_table_p0/hive/test_hive_partitions.out @@ -120,6 +120,11 @@ nation=us/city=washington -- !q21 -- +-- !string_partition_table_with_comma -- +1 a 1.1 , +2 b 2.2 a, b +3 c 3.3 a, b, c + -- !q01 -- 33 1.11xyz 34 1.11XYZ @@ -241,3 +246,8 @@ nation=us/city=washington -- !q21 -- +-- !string_partition_table_with_comma -- +1 a 1.1 , +2 b 2.2 a, b +3 c 3.3 a, b, c + diff --git a/regression-test/suites/external_table_p0/hive/test_hive_partitions.groovy b/regression-test/suites/external_table_p0/hive/test_hive_partitions.groovy index 0e41adc31278c5..cc3425106a59a0 100644 --- a/regression-test/suites/external_table_p0/hive/test_hive_partitions.groovy +++ b/regression-test/suites/external_table_p0/hive/test_hive_partitions.groovy @@ -91,6 +91,10 @@ suite("test_hive_partitions", "p0,external,hive,external_docker,external_docker_ q01() + qt_string_partition_table_with_comma """ + select * from partition_tables.string_partition_table_with_comma order by id; + """ + sql """set num_partitions_in_batch_mode=1""" explain { sql ("select * from partition_table") @@ -99,8 +103,6 @@ suite("test_hive_partitions", "p0,external,hive,external_docker,external_docker_ contains "(approximate)inputSplitNum=60" } sql """unset variable num_partitions_in_batch_mode""" - - // sql """drop catalog if exists ${catalog_name}""" } finally { } }