diff --git a/be/src/apache-orc b/be/src/apache-orc index a7c0af50f8..e52ba9094d 160000 --- a/be/src/apache-orc +++ b/be/src/apache-orc @@ -1 +1 @@ -Subproject commit a7c0af50f8ca8ff7cddaf8675473a037f8b13143 +Subproject commit e52ba9094dd8fa3e86e6043e42d6d561fe092d7c diff --git a/docker/thirdparties/docker-compose/hive/scripts/create_preinstalled_table.hql b/docker/thirdparties/docker-compose/hive/scripts/create_preinstalled_table.hql index d7e93bb74f..2fbdbbe6db 100644 --- a/docker/thirdparties/docker-compose/hive/scripts/create_preinstalled_table.hql +++ b/docker/thirdparties/docker-compose/hive/scripts/create_preinstalled_table.hql @@ -1743,5 +1743,24 @@ LOCATION msck repair table parquet_timestamp_nanos; +CREATE TABLE `orc_decimal_table`( + id INT, + decimal_col1 DECIMAL(8, 4), + decimal_col2 DECIMAL(18, 6), + decimal_col3 DECIMAL(38, 12), + decimal_col4 DECIMAL(9, 0), + decimal_col5 DECIMAL(27, 9), + decimal_col6 DECIMAL(9, 0)) +ROW FORMAT SERDE + 'org.apache.hadoop.hive.ql.io.orc.OrcSerde' +STORED AS INPUTFORMAT + 'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat' +OUTPUTFORMAT + 'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat' +LOCATION + '/user/doris/preinstalled_data/orc_table/orc_decimal_table'; + +msck repair table orc_decimal_table; + show tables; diff --git a/docker/thirdparties/docker-compose/hive/scripts/preinstalled_data/orc_table/orc_decimal_table/orc_decimal_table b/docker/thirdparties/docker-compose/hive/scripts/preinstalled_data/orc_table/orc_decimal_table/orc_decimal_table new file mode 100644 index 0000000000..c63a5e8ea3 Binary files /dev/null and b/docker/thirdparties/docker-compose/hive/scripts/preinstalled_data/orc_table/orc_decimal_table/orc_decimal_table differ diff --git a/regression-test/data/external_table_p0/hive/test_hive_orc.out b/regression-test/data/external_table_p0/hive/test_hive_orc.out index 4f1841c7d3..aff1b185cf 100644 --- a/regression-test/data/external_table_p0/hive/test_hive_orc.out +++ b/regression-test/data/external_table_p0/hive/test_hive_orc.out @@ -83,6 +83,24 @@ tablets tinyint_col 179 182 182 187 183 181 177 183 177 187 183 202 202 186 528 -- !only_partition_col -- 3600 3600 +-- !decimals1 -- +1 1.1234 12.123456 123.123456789876 12 1234.123456789 123 +2 1234.1234 123456789123.123456 12345678912345678912345678.123456789876 123456789 123456789123456789.123456780 987654321 +3 1234.0000 123456789123.000000 12345678912345678912345678.000000000000 123456789 123456789123456789.000000000 987654321 +4 0.0000 0.000000 123.123456789876 12 0E-9 123 +5 1.1234 12.123456 0E-12 0 1234.123456789 0 + +-- !decimals2 -- +3 1234.0000 123456789123.000000 12345678912345678912345678.000000000000 123456789 123456789123456789.000000000 987654321 + +-- !decimals3 -- +1 1.1234 12.123456 123.123456789876 12 1234.123456789 123 +2 1234.1234 123456789123.123456 12345678912345678912345678.123456789876 123456789 123456789123456789.123456780 987654321 + +-- !decimals4 -- +4 0.0000 0.000000 123.123456789876 12 0E-9 123 +5 1.1234 12.123456 0E-12 0 1234.123456789 0 + -- !select_top50 -- 4 55 999742610 400899305488827731 false 6.5976813E8 7.8723304616937395E17 \N base tennis pit vertical friday 2022-08-19T07:29:58 \N tablets smallint_col 2019-02-07 [7.53124931825377e+17] ["NbSSBtwzpxNSkkwga"] tablets smallint_col 2 49 999613702 105493714032727452 \N 6.3322381E8 9.8642324410240179E17 Unveil bright recruit participate. Suspect impression camera mathematical revelation. Fault live2 elbow debt west hydrogen current. how literary 2022-09-03T17:20:21 481707.1065 tablets boolean_col 2020-01-12 [] ["HoMrAnn", "wteEFvIwoZsVpVQdscMb", NULL, "zcGFmv", "kGEBBckbMtX", "hrEtCGFdPWZK"] tablets boolean_col diff --git a/regression-test/suites/external_table_p0/hive/test_hive_orc.groovy b/regression-test/suites/external_table_p0/hive/test_hive_orc.groovy index e971d82340..b6bccfb286 100644 --- a/regression-test/suites/external_table_p0/hive/test_hive_orc.groovy +++ b/regression-test/suites/external_table_p0/hive/test_hive_orc.groovy @@ -66,6 +66,14 @@ suite("test_hive_orc", "all_types,p0,external,hive,external_docker,external_dock qt_only_partition_col """select count(p1_col), count(p2_col) from orc_all_types;""" } + // decimals + def decimals = { + qt_decimals1 """select * from orc_decimal_table order by id;""" + qt_decimals2 """select * from orc_decimal_table where id = 3 order by id;""" + qt_decimals3 """select * from orc_decimal_table where id < 3 order by id;""" + qt_decimals4 """select * from orc_decimal_table where id > 3 order by id;""" + } + String enabled = context.config.otherConfigs.get("enableHiveTest") if (enabled != null && enabled.equalsIgnoreCase("true")) { try { @@ -86,6 +94,7 @@ suite("test_hive_orc", "all_types,p0,external,hive,external_docker,external_dock search_in_int() search_mix() only_partition_col() + decimals() sql """drop catalog if exists ${catalog_name}""" @@ -103,3 +112,4 @@ suite("test_hive_orc", "all_types,p0,external,hive,external_docker,external_dock } } } +