From 17413486dc2f19567c2bd76ec75d8f4cce3efc4d Mon Sep 17 00:00:00 2001 From: gaoxin Date: Wed, 21 Feb 2024 14:56:58 +0800 Subject: [PATCH] [test](regression) add regression test for schange change of complex type --- .../hive/scripts/create_preinstalled_table.hql | 14 ++++++++++++++ .../hive/test_hive_parquet.groovy | 10 ++++++++++ 2 files changed, 24 insertions(+) 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 9baf13020f630e..00d2a699410b92 100644 --- a/docker/thirdparties/docker-compose/hive/scripts/create_preinstalled_table.hql +++ b/docker/thirdparties/docker-compose/hive/scripts/create_preinstalled_table.hql @@ -1937,3 +1937,17 @@ with serdeproperties ,'seperatorChar'=','); insert into employee_gz values ('a', '1.1'), ('b', '2.2'); + +create database hive_schema_change; +use hive_schema_change; + +create table struct_test ( + id int, + sf struct>) stored as parquet; + +insert into struct_test values +(1, named_struct('f1', 1, 'f2', str_to_map('1:s2,2:s2'))), +(2, named_struct('f1', 2, 'f2', str_to_map('k1:s3,k2:s4'))), +(3, named_struct('f1', 3, 'f2', str_to_map('k1:s5,k2:s6'))); + +alter table struct_test change sf sf struct; diff --git a/regression-test/suites/external_table_p0/hive/test_hive_parquet.groovy b/regression-test/suites/external_table_p0/hive/test_hive_parquet.groovy index c381a3c236b105..dff86e77285391 100644 --- a/regression-test/suites/external_table_p0/hive/test_hive_parquet.groovy +++ b/regression-test/suites/external_table_p0/hive/test_hive_parquet.groovy @@ -169,6 +169,15 @@ suite("test_hive_parquet", "p0,external,hive,external_docker,external_docker_hiv """ } + def q23 = { + sql """use hive_schema_change""" + // not support the schema change of complex type + test { + sql "select * from struct_test" + exception "Wrong data type for column 'f2'" + } + } + String enabled = context.config.otherConfigs.get("enableHiveTest") if (enabled != null && enabled.equalsIgnoreCase("true")) { try { @@ -207,6 +216,7 @@ suite("test_hive_parquet", "p0,external,hive,external_docker,external_docker_hiv q20() q21() q22() + q23() sql """explain physical plan select l_partkey from partition_table where (nation != 'cn' or city !='beijing') and (l_quantity > 28 or l_extendedprice > 30000)