This is an automated email from the ASF dual-hosted git repository.

dataroaring 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 86dddbe8858 [enhancement](regression-test) duplicate model by drop a 
value column with other type (#36680)
86dddbe8858 is described below

commit 86dddbe8858875ec1e115f3695db60a6ca68a94f
Author: kkop <[email protected]>
AuthorDate: Fri Jun 21 20:25:10 2024 +0800

    [enhancement](regression-test) duplicate model by drop a value column with 
other type (#36680)
    
    Co-authored-by: cjj2010 <[email protected]>
---
 .../test_dup_schema_value_drop.groovy              | 1069 ++++++++++++++++++++
 1 file changed, 1069 insertions(+)

diff --git 
a/regression-test/suites/schema_change_p0/test_dup_schema_value_drop.groovy 
b/regression-test/suites/schema_change_p0/test_dup_schema_value_drop.groovy
new file mode 100644
index 00000000000..4f5d15eb8ec
--- /dev/null
+++ b/regression-test/suites/schema_change_p0/test_dup_schema_value_drop.groovy
@@ -0,0 +1,1069 @@
+// 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_dup_schema_value_drop", "p0") {
+    def tbName1 = "test_dup_schema_value_drop"
+    def tbName2 = "test_dup_schema_value_drop_1"
+    sql """ DROP TABLE IF EXISTS ${tbName1} """
+    def initTable1 = ""
+    def initTableData1 = ""
+    def getTableStatusSql = " SHOW ALTER TABLE COLUMN WHERE 
IndexName='${tbName1}' ORDER BY createtime DESC LIMIT 1  "
+    def errorMessage = ""
+    def insertSql = "insert into ${tbName1} values(123456689, 'Alice', '四川省', 
'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00');"
+
+
+    /**
+     *  Test the duplicate model by drop a value type
+     */
+
+
+    sql """ DROP TABLE IF EXISTS ${tbName1} """
+    def initTable = " CREATE TABLE IF NOT EXISTS ${tbName1}\n" +
+            "          (\n" +
+            "              `user_id` LARGEINT NOT NULL COMMENT \"用户id\",\n" +
+            "              `username` VARCHAR(50) NOT NULL COMMENT 
\"用户昵称\",\n" +
+            "              `score` DECIMAL(38,10) COMMENT \"分数\",\n" +
+            "              `city` CHAR(20) COMMENT \"用户所在城市\",\n" +
+            "              `age` SMALLINT COMMENT \"用户年龄\",\n" +
+            "              `sex` TINYINT COMMENT \"用户性别\",\n" +
+            "              `phone` LARGEINT COMMENT \"用户电话\",\n" +
+            "              `is_ok` BOOLEAN COMMENT \"是否完成\",\n" +
+            "              `t_int` INT COMMENT \"测试int\",\n" +
+            "              `t_bigint` BIGINT COMMENT \"测试BIGINT\",\n" +
+            "              `t_date` DATE COMMENT \"测试DATE\",\n" +
+            "              `t_datev2` DATEV2 COMMENT \"测试DATEV2\",\n" +
+            "              `t_datetimev2` DATETIMEV2 COMMENT 
\"测试DATETIMEV2\",\n" +
+            "              `t_datetime` DATETIME COMMENT \"用户注册时间\",\n" +
+            "              `t_string` STRING COMMENT \"测试string\",\n" +
+            "              `m` Map<STRING, INT> NULL COMMENT \"\",\n" +
+            "              `j` JSON NULL COMMENT \"\"\n" +
+            "          )\n" +
+            "          duplicate KEY(`user_id`)\n" +
+            "          DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
+            "          PROPERTIES (\n" +
+            "          \"replication_allocation\" = \"tag.location.default: 
1\"\n" +
+            "          );"
+
+    def initTableData = "insert into ${tbName1} values(1, 'John Doe', 95.5, 
'New York', 25, 1, 1234567890, true, 10, 1000000000, '2024-06-11', 
'2024-06-11', '2024-06-11 08:30:00', '2024-06-11 08:30:00', 'Test String 1', 
{'a': 100, 'b': 200}, '[\"abc\", \"def\"]')," +
+            "               (2, 'Jane Smith', 85.2, 'Los Angeles', 30, 2, 
9876543210, false, 20, 2000000000, '2024-06-12', '2024-06-12', '2024-06-12 
09:45:00', '2024-06-12 09:45:00', 'Test String 2', {'a': 200, 'b': 200}, 
'[\"abc\", \"def\"]')," +
+            "               (3, 'Mike Johnson', 77.8, 'Chicago', 35, 1, 
1112223334, true, 30, 3000000000, '2024-06-13', '2024-06-13', '2024-06-13 
11:15:00', '2024-06-13 11:15:00', 'Test String 3', {'a': 300, 'b': 200}, 
'[\"abc\", \"def\"]')," +
+            "               (4, 'Emily Brown', 92.0, 'San Francisco', 28, 2, 
5556667778, true, 40, 4000000000, '2024-06-14', '2024-06-14', '2024-06-14 
13:30:00', '2024-06-14 13:30:00', 'Test String 4', {'a': 400, 'b': 200}, 
'[\"abc\", \"def\"]')," +
+            "               (5, 'David Wilson', 88.9, 'Seattle', 32, 1, 
9998887776, false, 50, 5000000000, '2024-06-15', '2024-06-15', '2024-06-15 
15:45:00', '2024-06-15 15:45:00', 'Test String 5', {'a': 500, 'b': 200}, 
'[\"abc\", \"def\"]');"
+
+    // Test the duplicate model by drop a value type from BOOLEAN
+    sql initTable
+    sql initTableData
+    sql """ alter  table ${tbName1} DROP  column is_ok  """
+    insertSql = "insert into ${tbName1} values(6, 'Sophia Lee', 91.3, 
'Boston', 29, 2, 7778889990,  60, 6000000000, '2024-06-16', '2024-06-16', 
'2024-06-16 17:00:00', '2024-06-16 17:00:00', 'Test String 6', {'a': 500, 'b': 
200}, '{\"k1\":\"v1\", \"k2\": 200}'); "
+    waitForSchemaChangeDone({
+        sql getTableStatusSql
+        time 60
+    }, insertSql, false, "${tbName1}")
+
+
+    sql """ DROP TABLE IF EXISTS ${tbName2} """
+    initTable1 = " CREATE TABLE IF NOT EXISTS ${tbName2}\n" +
+            "          (\n" +
+            "              `user_id` LARGEINT NOT NULL COMMENT \"用户id\",\n" +
+            "              `username` VARCHAR(50) NOT NULL COMMENT 
\"用户昵称\",\n" +
+            "              `score` DECIMAL(38,10) COMMENT \"分数\",\n" +
+            "              `city` CHAR(20) COMMENT \"用户所在城市\",\n" +
+            "              `age` SMALLINT COMMENT \"用户年龄\",\n" +
+            "              `sex` TINYINT COMMENT \"用户性别\",\n" +
+            "              `phone` LARGEINT COMMENT \"用户电话\",\n" +
+            "              `t_int` INT COMMENT \"测试int\",\n" +
+            "              `t_bigint` BIGINT COMMENT \"测试BIGINT\",\n" +
+            "              `t_date` DATE COMMENT \"测试DATE\",\n" +
+            "              `t_datev2` DATEV2 COMMENT \"测试DATEV2\",\n" +
+            "              `t_datetimev2` DATETIMEV2 COMMENT 
\"测试DATETIMEV2\",\n" +
+            "              `t_datetime` DATETIME COMMENT \"用户注册时间\",\n" +
+            "              `t_string` STRING COMMENT \"测试string\",\n" +
+            "              `m` Map<STRING, INT> NULL COMMENT \"\",\n" +
+            "              `j` JSON NULL COMMENT \"\"\n" +
+            "          )\n" +
+            "          duplicate KEY(`user_id`)\n" +
+            "          DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
+            "          PROPERTIES (\n" +
+            "          \"replication_allocation\" = \"tag.location.default: 
1\"\n" +
+            "          );"
+
+    initTableData1 = "insert into ${tbName2} values(1, 'John Doe', 95.5, 'New 
York', 25, 1, 1234567890,  10, 1000000000, '2024-06-11', '2024-06-11', 
'2024-06-11 08:30:00', '2024-06-11 08:30:00', 'Test String 1', {'a': 100, 'b': 
200}, '[\"abc\", \"def\"]')," +
+            "               (2, 'Jane Smith', 85.2, 'Los Angeles', 30, 2, 
9876543210,  20, 2000000000, '2024-06-12', '2024-06-12', '2024-06-12 09:45:00', 
'2024-06-12 09:45:00', 'Test String 2', {'a': 200, 'b': 200}, '[\"abc\", 
\"def\"]')," +
+            "               (3, 'Mike Johnson', 77.8, 'Chicago', 35, 1, 
1112223334,  30, 3000000000, '2024-06-13', '2024-06-13', '2024-06-13 11:15:00', 
'2024-06-13 11:15:00', 'Test String 3', {'a': 300, 'b': 200}, '[\"abc\", 
\"def\"]')," +
+            "               (4, 'Emily Brown', 92.0, 'San Francisco', 28, 2, 
5556667778,  40, 4000000000, '2024-06-14', '2024-06-14', '2024-06-14 13:30:00', 
'2024-06-14 13:30:00', 'Test String 4', {'a': 400, 'b': 200}, '[\"abc\", 
\"def\"]')," +
+            "               (6, 'Sophia Lee', 91.3, 'Boston', 29, 2, 
7778889990,  60, 6000000000, '2024-06-16', '2024-06-16', '2024-06-16 17:00:00', 
'2024-06-16 17:00:00', 'Test String 6', {'a': 500, 'b': 200}, 
'{\\\"k1\\\":\\\"v1\\\", \\\"k2\\\": 200}')," +
+            "               (5, 'David Wilson', 88.9, 'Seattle', 32, 1, 
9998887776,  50, 5000000000, '2024-06-15', '2024-06-15', '2024-06-15 15:45:00', 
'2024-06-15 15:45:00', 'Test String 5', {'a': 500, 'b': 200}, '[\"abc\", 
\"def\"]');"
+
+    sql initTable1
+    sql initTableData1
+    checkTableData("${tbName1}", "${tbName2}", "t_int")
+    sql """ DROP TABLE IF EXISTS ${tbName1} """
+
+
+    // Test the duplicate model by drop a value type from TINYINT
+    sql initTable
+    sql initTableData
+    sql """ alter  table ${tbName1} DROP  column sex  """
+    insertSql = "insert into ${tbName1} values(6, 'Sophia Lee', 91.3, 
'Boston', 29,  7778889990, true, 60, 6000000000, '2024-06-16', '2024-06-16', 
'2024-06-16 17:00:00', '2024-06-16 17:00:00', 'Test String 6', {'a': 500, 'b': 
200}, '{\"k1\":\"v1\", \"k2\": 200}'); "
+    waitForSchemaChangeDone({
+        sql getTableStatusSql
+        time 60
+    }, insertSql, false, "${tbName1}")
+
+
+    sql """ DROP TABLE IF EXISTS ${tbName2} """
+    initTable1 = " CREATE TABLE IF NOT EXISTS ${tbName2}\n" +
+            "          (\n" +
+            "              `user_id` LARGEINT NOT NULL COMMENT \"用户id\",\n" +
+            "              `username` VARCHAR(50) NOT NULL COMMENT 
\"用户昵称\",\n" +
+            "              `score` DECIMAL(38,10) COMMENT \"分数\",\n" +
+            "              `city` CHAR(20) COMMENT \"用户所在城市\",\n" +
+            "              `age` SMALLINT COMMENT \"用户年龄\",\n" +
+            "              `phone` LARGEINT COMMENT \"用户电话\",\n" +
+            "              `is_ok` BOOLEAN COMMENT \"是否完成\",\n" +
+            "              `t_int` INT COMMENT \"测试int\",\n" +
+            "              `t_bigint` BIGINT COMMENT \"测试BIGINT\",\n" +
+            "              `t_date` DATE COMMENT \"测试DATE\",\n" +
+            "              `t_datev2` DATEV2 COMMENT \"测试DATEV2\",\n" +
+            "              `t_datetimev2` DATETIMEV2 COMMENT 
\"测试DATETIMEV2\",\n" +
+            "              `t_datetime` DATETIME COMMENT \"用户注册时间\",\n" +
+            "              `t_string` STRING COMMENT \"测试string\",\n" +
+            "              `m` Map<STRING, INT> NULL COMMENT \"\",\n" +
+            "              `j` JSON NULL COMMENT \"\"\n" +
+            "          )\n" +
+            "          duplicate KEY(`user_id`)\n" +
+            "          DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
+            "          PROPERTIES (\n" +
+            "          \"replication_allocation\" = \"tag.location.default: 
1\"\n" +
+            "          );"
+
+    initTableData1 = "insert into ${tbName2} values(1, 'John Doe', 95.5, 'New 
York', 25,  1234567890, true, 10, 1000000000, '2024-06-11', '2024-06-11', 
'2024-06-11 08:30:00', '2024-06-11 08:30:00', 'Test String 1', {'a': 100, 'b': 
200}, '[\"abc\", \"def\"]')," +
+            "               (2, 'Jane Smith', 85.2, 'Los Angeles', 30,  
9876543210, false, 20, 2000000000, '2024-06-12', '2024-06-12', '2024-06-12 
09:45:00', '2024-06-12 09:45:00', 'Test String 2', {'a': 200, 'b': 200}, 
'[\"abc\", \"def\"]')," +
+            "               (3, 'Mike Johnson', 77.8, 'Chicago', 35,  
1112223334, true, 30, 3000000000, '2024-06-13', '2024-06-13', '2024-06-13 
11:15:00', '2024-06-13 11:15:00', 'Test String 3', {'a': 300, 'b': 200}, 
'[\"abc\", \"def\"]')," +
+            "               (4, 'Emily Brown', 92.0, 'San Francisco', 28,  
5556667778, true, 40, 4000000000, '2024-06-14', '2024-06-14', '2024-06-14 
13:30:00', '2024-06-14 13:30:00', 'Test String 4', {'a': 400, 'b': 200}, 
'[\"abc\", \"def\"]')," +
+            "               (6, 'Sophia Lee', 91.3, 'Boston', 29,  7778889990, 
true, 60, 6000000000, '2024-06-16', '2024-06-16', '2024-06-16 17:00:00', 
'2024-06-16 17:00:00', 'Test String 6', {'a': 400, 'b': 200}, '[\"abc\", 
\"def\"]')," +
+            "               (5, 'David Wilson', 88.9, 'Seattle', 32,  
9998887776, false, 50, 5000000000, '2024-06-15', '2024-06-15', '2024-06-15 
15:45:00', '2024-06-15 15:45:00', 'Test String 5', {'a': 500, 'b': 200}, 
'[\"abc\", \"def\"]');"
+
+    sql initTable1
+    sql initTableData1
+    checkTableData("${tbName1}", "${tbName2}", "phone")
+    sql """ DROP TABLE IF EXISTS ${tbName1} """
+
+
+    // Test the duplicate model by drop a value type from SMALLINT
+    sql initTable
+    sql initTableData
+    sql """ alter  table ${tbName1} DROP  column age  """
+    insertSql = "insert into ${tbName1} values(6, 'Sophia Lee', 91.3, 
'Boston', 2, 7778889990, true, 60, 6000000000, '2024-06-16', '2024-06-16', 
'2024-06-16 17:00:00', '2024-06-16 17:00:00', 'Test String 6', {'a': 500, 'b': 
200}, '{\"k1\":\"v1\", \"k2\": 200}'); "
+    waitForSchemaChangeDone({
+        sql getTableStatusSql
+        time 60
+    }, insertSql, false, "${tbName1}")
+
+
+    sql """ DROP TABLE IF EXISTS ${tbName2} """
+    initTable1 = " CREATE TABLE IF NOT EXISTS ${tbName2}\n" +
+            "          (\n" +
+            "              `user_id` LARGEINT NOT NULL COMMENT \"用户id\",\n" +
+            "              `username` VARCHAR(50) NOT NULL COMMENT 
\"用户昵称\",\n" +
+            "              `score` DECIMAL(38,10) COMMENT \"分数\",\n" +
+            "              `city` CHAR(20) COMMENT \"用户所在城市\",\n" +
+            "              `sex` TINYINT COMMENT \"用户性别\",\n" +
+            "              `phone` LARGEINT COMMENT \"用户电话\",\n" +
+            "              `is_ok` BOOLEAN COMMENT \"是否完成\",\n" +
+            "              `t_int` INT COMMENT \"测试int\",\n" +
+            "              `t_bigint` BIGINT COMMENT \"测试BIGINT\",\n" +
+            "              `t_date` DATE COMMENT \"测试DATE\",\n" +
+            "              `t_datev2` DATEV2 COMMENT \"测试DATEV2\",\n" +
+            "              `t_datetimev2` DATETIMEV2 COMMENT 
\"测试DATETIMEV2\",\n" +
+            "              `t_datetime` DATETIME COMMENT \"用户注册时间\",\n" +
+            "              `t_string` STRING COMMENT \"测试string\",\n" +
+            "              `m` Map<STRING, INT> NULL COMMENT \"\",\n" +
+            "              `j` JSON NULL COMMENT \"\"\n" +
+            "          )\n" +
+            "          duplicate KEY(`user_id`)\n" +
+            "          DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
+            "          PROPERTIES (\n" +
+            "          \"replication_allocation\" = \"tag.location.default: 
1\"\n" +
+            "          );"
+
+    initTableData1 = "insert into ${tbName2} values(1, 'John Doe', 95.5, 'New 
York',  1, 1234567890, true, 10, 1000000000, '2024-06-11', '2024-06-11', 
'2024-06-11 08:30:00', '2024-06-11 08:30:00', 'Test String 1', {'a': 100, 'b': 
200}, '[\"abc\", \"def\"]')," +
+            "               (2, 'Jane Smith', 85.2, 'Los Angeles',  2, 
9876543210, false, 20, 2000000000, '2024-06-12', '2024-06-12', '2024-06-12 
09:45:00', '2024-06-12 09:45:00', 'Test String 2', {'a': 200, 'b': 200}, 
'[\"abc\", \"def\"]')," +
+            "               (3, 'Mike Johnson', 77.8, 'Chicago',  1, 
1112223334, true, 30, 3000000000, '2024-06-13', '2024-06-13', '2024-06-13 
11:15:00', '2024-06-13 11:15:00', 'Test String 3', {'a': 300, 'b': 200}, 
'[\"abc\", \"def\"]')," +
+            "               (4, 'Emily Brown', 92.0, 'San Francisco',  2, 
5556667778, true, 40, 4000000000, '2024-06-14', '2024-06-14', '2024-06-14 
13:30:00', '2024-06-14 13:30:00', 'Test String 4', {'a': 400, 'b': 200}, 
'[\"abc\", \"def\"]')," +
+            "               (6, 'Sophia Lee', 91.3, 'Boston',  2, 7778889990, 
true, 60, 6000000000, '2024-06-16', '2024-06-16', '2024-06-16 17:00:00', 
'2024-06-16 17:00:00', 'Test String 6', {'a': 400, 'b': 200}, '[\"abc\", 
\"def\"]')," +
+            "               (5, 'David Wilson', 88.9, 'Seattle',  1, 
9998887776, false, 50, 5000000000, '2024-06-15', '2024-06-15', '2024-06-15 
15:45:00', '2024-06-15 15:45:00', 'Test String 5', {'a': 500, 'b': 200}, 
'[\"abc\", \"def\"]');"
+
+    sql initTable1
+    sql initTableData1
+    checkTableData("${tbName1}", "${tbName2}", "sex")
+    sql """ DROP TABLE IF EXISTS ${tbName1} """
+
+
+    // Test the duplicate model by drop a value type from INT
+    sql initTable
+    sql initTableData
+    sql """ alter  table ${tbName1} DROP  column t_int  """
+    insertSql = "insert into ${tbName1} values(6, 'Sophia Lee', 91.3, 
'Boston', 29, 2, 7778889990, true,  6000000000, '2024-06-16', '2024-06-16', 
'2024-06-16 17:00:00', '2024-06-16 17:00:00', 'Test String 6', {'a': 500, 'b': 
200}, '{\"k1\":\"v1\", \"k2\": 200}'); "
+    waitForSchemaChangeDone({
+        sql getTableStatusSql
+        time 60
+    }, insertSql, false, "${tbName1}")
+
+
+    sql """ DROP TABLE IF EXISTS ${tbName2} """
+    initTable1 = " CREATE TABLE IF NOT EXISTS ${tbName2}\n" +
+            "          (\n" +
+            "              `user_id` LARGEINT NOT NULL COMMENT \"用户id\",\n" +
+            "              `username` VARCHAR(50) NOT NULL COMMENT 
\"用户昵称\",\n" +
+            "              `score` DECIMAL(38,10) COMMENT \"分数\",\n" +
+            "              `city` CHAR(20) COMMENT \"用户所在城市\",\n" +
+            "              `age` SMALLINT COMMENT \"用户年龄\",\n" +
+            "              `sex` TINYINT COMMENT \"用户性别\",\n" +
+            "              `phone` LARGEINT COMMENT \"用户电话\",\n" +
+            "              `is_ok` BOOLEAN COMMENT \"是否完成\",\n" +
+            "              `t_bigint` BIGINT COMMENT \"测试BIGINT\",\n" +
+            "              `t_date` DATE COMMENT \"测试DATE\",\n" +
+            "              `t_datev2` DATEV2 COMMENT \"测试DATEV2\",\n" +
+            "              `t_datetimev2` DATETIMEV2 COMMENT 
\"测试DATETIMEV2\",\n" +
+            "              `t_datetime` DATETIME COMMENT \"用户注册时间\",\n" +
+            "              `t_string` STRING COMMENT \"测试string\",\n" +
+            "              `m` Map<STRING, INT> NULL COMMENT \"\",\n" +
+            "              `j` JSON NULL COMMENT \"\"\n" +
+            "          )\n" +
+            "          duplicate KEY(`user_id`)\n" +
+            "          DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
+            "          PROPERTIES (\n" +
+            "          \"replication_allocation\" = \"tag.location.default: 
1\"\n" +
+            "          );"
+
+    initTableData1 = "insert into ${tbName2} values(1, 'John Doe', 95.5, 'New 
York', 25, 1, 1234567890, true,  1000000000, '2024-06-11', '2024-06-11', 
'2024-06-11 08:30:00', '2024-06-11 08:30:00', 'Test String 1', {'a': 100, 'b': 
200}, '[\"abc\", \"def\"]')," +
+            "               (2, 'Jane Smith', 85.2, 'Los Angeles', 30, 2, 
9876543210, false,  2000000000, '2024-06-12', '2024-06-12', '2024-06-12 
09:45:00', '2024-06-12 09:45:00', 'Test String 2', {'a': 200, 'b': 200}, 
'[\"abc\", \"def\"]')," +
+            "               (3, 'Mike Johnson', 77.8, 'Chicago', 35, 1, 
1112223334, true,  3000000000, '2024-06-13', '2024-06-13', '2024-06-13 
11:15:00', '2024-06-13 11:15:00', 'Test String 3', {'a': 300, 'b': 200}, 
'[\"abc\", \"def\"]')," +
+            "               (4, 'Emily Brown', 92.0, 'San Francisco', 28, 2, 
5556667778, true,  4000000000, '2024-06-14', '2024-06-14', '2024-06-14 
13:30:00', '2024-06-14 13:30:00', 'Test String 4', {'a': 400, 'b': 200}, 
'[\"abc\", \"def\"]')," +
+            "               (6, 'Sophia Lee', 91.3, 'Boston', 29, 2, 
7778889990, true,  6000000000, '2024-06-16', '2024-06-16', '2024-06-16 
17:00:00', '2024-06-16 17:00:00', 'Test String 6', {'a': 500, 'b': 200}, 
'{\\\"k1\\\":\\\"v1\\\", \\\"k2\\\": 200}')," +
+            "               (5, 'David Wilson', 88.9, 'Seattle', 32, 1, 
9998887776, false,  5000000000, '2024-06-15', '2024-06-15', '2024-06-15 
15:45:00', '2024-06-15 15:45:00', 'Test String 5', {'a': 500, 'b': 200}, 
'[\"abc\", \"def\"]');"
+
+    sql initTable1
+    sql initTableData1
+    checkTableData("${tbName1}", "${tbName2}", "t_bigint")
+    sql """ DROP TABLE IF EXISTS ${tbName1} """
+
+
+    // Test the duplicate model by drop a value type from BIGINT
+    sql initTable
+    sql initTableData
+    sql """ alter  table ${tbName1} DROP  column t_bigint  """
+    insertSql = "insert into ${tbName1} values(6, 'Sophia Lee', 91.3, 
'Boston', 29, 2, 7778889990, true, 60,  '2024-06-16', '2024-06-16', '2024-06-16 
17:00:00', '2024-06-16 17:00:00', 'Test String 6', {'a': 500, 'b': 200}, 
'{\"k1\":\"v1\", \"k2\": 200}'); "
+    waitForSchemaChangeDone({
+        sql getTableStatusSql
+        time 60
+    }, insertSql, false, "${tbName1}")
+
+
+    sql """ DROP TABLE IF EXISTS ${tbName2} """
+    initTable1 = " CREATE TABLE IF NOT EXISTS ${tbName2}\n" +
+            "          (\n" +
+            "              `user_id` LARGEINT NOT NULL COMMENT \"用户id\",\n" +
+            "              `username` VARCHAR(50) NOT NULL COMMENT 
\"用户昵称\",\n" +
+            "              `score` DECIMAL(38,10) COMMENT \"分数\",\n" +
+            "              `city` CHAR(20) COMMENT \"用户所在城市\",\n" +
+            "              `age` SMALLINT COMMENT \"用户年龄\",\n" +
+            "              `sex` TINYINT COMMENT \"用户性别\",\n" +
+            "              `phone` LARGEINT COMMENT \"用户电话\",\n" +
+            "              `is_ok` BOOLEAN COMMENT \"是否完成\",\n" +
+            "              `t_int` INT COMMENT \"测试int\",\n" +
+            "              `t_date` DATE COMMENT \"测试DATE\",\n" +
+            "              `t_datev2` DATEV2 COMMENT \"测试DATEV2\",\n" +
+            "              `t_datetimev2` DATETIMEV2 COMMENT 
\"测试DATETIMEV2\",\n" +
+            "              `t_datetime` DATETIME COMMENT \"用户注册时间\",\n" +
+            "              `t_string` STRING COMMENT \"测试string\",\n" +
+            "              `m` Map<STRING, INT> NULL COMMENT \"\",\n" +
+            "              `j` JSON NULL COMMENT \"\"\n" +
+            "          )\n" +
+            "          duplicate KEY(`user_id`)\n" +
+            "          DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
+            "          PROPERTIES (\n" +
+            "          \"replication_allocation\" = \"tag.location.default: 
1\"\n" +
+            "          );"
+
+    initTableData1 = "insert into ${tbName2} values(1, 'John Doe', 95.5, 'New 
York', 25, 1, 1234567890, true, 10,  '2024-06-11', '2024-06-11', '2024-06-11 
08:30:00', '2024-06-11 08:30:00', 'Test String 1', {'a': 100, 'b': 200}, 
'[\"abc\", \"def\"]')," +
+            "               (2, 'Jane Smith', 85.2, 'Los Angeles', 30, 2, 
9876543210, false, 20,  '2024-06-12', '2024-06-12', '2024-06-12 09:45:00', 
'2024-06-12 09:45:00', 'Test String 2', {'a': 200, 'b': 200}, '[\"abc\", 
\"def\"]')," +
+            "               (3, 'Mike Johnson', 77.8, 'Chicago', 35, 1, 
1112223334, true, 30,  '2024-06-13', '2024-06-13', '2024-06-13 11:15:00', 
'2024-06-13 11:15:00', 'Test String 3', {'a': 300, 'b': 200}, '[\"abc\", 
\"def\"]')," +
+            "               (4, 'Emily Brown', 92.0, 'San Francisco', 28, 2, 
5556667778, true, 40,  '2024-06-14', '2024-06-14', '2024-06-14 13:30:00', 
'2024-06-14 13:30:00', 'Test String 4', {'a': 400, 'b': 200}, '[\"abc\", 
\"def\"]')," +
+            "               (6, 'Sophia Lee', 91.3, 'Boston', 29, 2, 
7778889990, true, 60,  '2024-06-16', '2024-06-16', '2024-06-16 17:00:00', 
'2024-06-16 17:00:00', 'Test String 6', {'a': 500, 'b': 200}, 
'{\\\"k1\\\":\\\"v1\\\", \\\"k2\\\": 200}')," +
+            "               (5, 'David Wilson', 88.9, 'Seattle', 32, 1, 
9998887776, false, 50,  '2024-06-15', '2024-06-15', '2024-06-15 15:45:00', 
'2024-06-15 15:45:00', 'Test String 5', {'a': 500, 'b': 200}, '[\"abc\", 
\"def\"]');"
+
+    sql initTable1
+    sql initTableData1
+    checkTableData("${tbName1}", "${tbName2}", "t_date")
+    sql """ DROP TABLE IF EXISTS ${tbName1} """
+
+
+    // Test the duplicate model by drop a value type from LARGEINT
+    sql initTable
+    sql initTableData
+    sql """ alter  table ${tbName1} DROP  column phone  """
+    insertSql = "insert into ${tbName1} values(6, 'Sophia Lee', 91.3, 
'Boston', 29, 2, true, 60, 6000000000, '2024-06-16', '2024-06-16', '2024-06-16 
17:00:00', '2024-06-16 17:00:00', 'Test String 6', {'a': 500, 'b': 200}, 
'{\"k1\":\"v1\", \"k2\": 200}'); "
+    waitForSchemaChangeDone({
+        sql getTableStatusSql
+        time 60
+    }, insertSql, false, "${tbName1}")
+
+
+    sql """ DROP TABLE IF EXISTS ${tbName2} """
+    initTable1 = " CREATE TABLE IF NOT EXISTS ${tbName2}\n" +
+            "          (\n" +
+            "              `user_id` LARGEINT NOT NULL COMMENT \"用户id\",\n" +
+            "              `username` VARCHAR(50) NOT NULL COMMENT 
\"用户昵称\",\n" +
+            "              `score` DECIMAL(38,10) COMMENT \"分数\",\n" +
+            "              `city` CHAR(20) COMMENT \"用户所在城市\",\n" +
+            "              `age` SMALLINT COMMENT \"用户年龄\",\n" +
+            "              `sex` TINYINT COMMENT \"用户性别\",\n" +
+            "              `is_ok` BOOLEAN COMMENT \"是否完成\",\n" +
+            "              `t_int` INT COMMENT \"测试int\",\n" +
+            "              `t_bigint` BIGINT COMMENT \"测试BIGINT\",\n" +
+            "              `t_date` DATE COMMENT \"测试DATE\",\n" +
+            "              `t_datev2` DATEV2 COMMENT \"测试DATEV2\",\n" +
+            "              `t_datetimev2` DATETIMEV2 COMMENT 
\"测试DATETIMEV2\",\n" +
+            "              `t_datetime` DATETIME COMMENT \"用户注册时间\",\n" +
+            "              `t_string` STRING COMMENT \"测试string\",\n" +
+            "              `m` Map<STRING, INT> NULL COMMENT \"\",\n" +
+            "              `j` JSON NULL COMMENT \"\"\n" +
+            "          )\n" +
+            "          duplicate KEY(`user_id`)\n" +
+            "          DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
+            "          PROPERTIES (\n" +
+            "          \"replication_allocation\" = \"tag.location.default: 
1\"\n" +
+            "          );"
+
+    initTableData1 = "insert into ${tbName2} values(1, 'John Doe', 95.5, 'New 
York', 25, 1,  true, 10, 1000000000, '2024-06-11', '2024-06-11', '2024-06-11 
08:30:00', '2024-06-11 08:30:00', 'Test String 1', {'a': 100, 'b': 200}, 
'[\"abc\", \"def\"]')," +
+            "               (2, 'Jane Smith', 85.2, 'Los Angeles', 30, 2,  
false, 20, 2000000000, '2024-06-12', '2024-06-12', '2024-06-12 09:45:00', 
'2024-06-12 09:45:00', 'Test String 2', {'a': 200, 'b': 200}, '[\"abc\", 
\"def\"]')," +
+            "               (3, 'Mike Johnson', 77.8, 'Chicago', 35, 1,  true, 
30, 3000000000, '2024-06-13', '2024-06-13', '2024-06-13 11:15:00', '2024-06-13 
11:15:00', 'Test String 3', {'a': 300, 'b': 200}, '[\"abc\", \"def\"]')," +
+            "               (4, 'Emily Brown', 92.0, 'San Francisco', 28, 2,  
true, 40, 4000000000, '2024-06-14', '2024-06-14', '2024-06-14 13:30:00', 
'2024-06-14 13:30:00', 'Test String 4', {'a': 400, 'b': 200}, '[\"abc\", 
\"def\"]')," +
+            "               (6, 'Sophia Lee', 91.3, 'Boston', 29, 2, true, 60, 
6000000000, '2024-06-16', '2024-06-16', '2024-06-16 17:00:00', '2024-06-16 
17:00:00', 'Test String 6', {'a': 500, 'b': 200}, '{\\\"k1\\\":\\\"v1\\\", 
\\\"k2\\\": 200}')," +
+            "               (5, 'David Wilson', 88.9, 'Seattle', 32, 1,  
false, 50, 5000000000, '2024-06-15', '2024-06-15', '2024-06-15 15:45:00', 
'2024-06-15 15:45:00', 'Test String 5', {'a': 500, 'b': 200}, '[\"abc\", 
\"def\"]');"
+
+    sql initTable1
+    sql initTableData1
+    checkTableData("${tbName1}", "${tbName2}", "is_ok")
+    sql """ DROP TABLE IF EXISTS ${tbName1} """
+
+
+    // Test the duplicate model by drop a value type from DATE
+    sql initTable
+    sql initTableData
+    sql """ alter  table ${tbName1} DROP  column t_date  """
+    insertSql = "insert into ${tbName1} values(6, 'Sophia Lee', 91.3, 
'Boston', 29, 2, 7778889990, true, 60, 6000000000,  '2024-06-16', '2024-06-16 
17:00:00', '2024-06-16 17:00:00', 'Test String 6', {'a': 500, 'b': 200}, 
'{\"k1\":\"v1\", \"k2\": 200}'); "
+    waitForSchemaChangeDone({
+        sql getTableStatusSql
+        time 60
+    }, insertSql, false, "${tbName1}")
+
+
+    sql """ DROP TABLE IF EXISTS ${tbName2} """
+    initTable1 = " CREATE TABLE IF NOT EXISTS ${tbName2}\n" +
+            "          (\n" +
+            "              `user_id` LARGEINT NOT NULL COMMENT \"用户id\",\n" +
+            "              `username` VARCHAR(50) NOT NULL COMMENT 
\"用户昵称\",\n" +
+            "              `score` DECIMAL(38,10) COMMENT \"分数\",\n" +
+            "              `city` CHAR(20) COMMENT \"用户所在城市\",\n" +
+            "              `age` SMALLINT COMMENT \"用户年龄\",\n" +
+            "              `sex` TINYINT COMMENT \"用户性别\",\n" +
+            "              `phone` LARGEINT COMMENT \"用户电话\",\n" +
+            "              `is_ok` BOOLEAN COMMENT \"是否完成\",\n" +
+            "              `t_int` INT COMMENT \"测试int\",\n" +
+            "              `t_bigint` BIGINT COMMENT \"测试BIGINT\",\n" +
+            "              `t_datev2` DATEV2 COMMENT \"测试DATEV2\",\n" +
+            "              `t_datetimev2` DATETIMEV2 COMMENT 
\"测试DATETIMEV2\",\n" +
+            "              `t_datetime` DATETIME COMMENT \"用户注册时间\",\n" +
+            "              `t_string` STRING COMMENT \"测试string\",\n" +
+            "              `m` Map<STRING, INT> NULL COMMENT \"\",\n" +
+            "              `j` JSON NULL COMMENT \"\"\n" +
+            "          )\n" +
+            "          duplicate KEY(`user_id`)\n" +
+            "          DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
+            "          PROPERTIES (\n" +
+            "          \"replication_allocation\" = \"tag.location.default: 
1\"\n" +
+            "          );"
+
+    initTableData1 = "insert into ${tbName2} values(1, 'John Doe', 95.5, 'New 
York', 25, 1, 1234567890, true, 10, 1000000000,  '2024-06-11', '2024-06-11 
08:30:00', '2024-06-11 08:30:00', 'Test String 1', {'a': 100, 'b': 200}, 
'[\"abc\", \"def\"]')," +
+            "               (2, 'Jane Smith', 85.2, 'Los Angeles', 30, 2, 
9876543210, false, 20, 2000000000,  '2024-06-12', '2024-06-12 09:45:00', 
'2024-06-12 09:45:00', 'Test String 2', {'a': 200, 'b': 200}, '[\"abc\", 
\"def\"]')," +
+            "               (3, 'Mike Johnson', 77.8, 'Chicago', 35, 1, 
1112223334, true, 30, 3000000000,  '2024-06-13', '2024-06-13 11:15:00', 
'2024-06-13 11:15:00', 'Test String 3', {'a': 300, 'b': 200}, '[\"abc\", 
\"def\"]')," +
+            "               (4, 'Emily Brown', 92.0, 'San Francisco', 28, 2, 
5556667778, true, 40, 4000000000,  '2024-06-14', '2024-06-14 13:30:00', 
'2024-06-14 13:30:00', 'Test String 4', {'a': 400, 'b': 200}, '[\"abc\", 
\"def\"]')," +
+            "               (6, 'Sophia Lee', 91.3, 'Boston', 29, 2, 
7778889990, true, 60, 6000000000,  '2024-06-16', '2024-06-16 17:00:00', 
'2024-06-16 17:00:00', 'Test String 6', {'a': 500, 'b': 200}, 
'{\\\"k1\\\":\\\"v1\\\", \\\"k2\\\": 200}')," +
+            "               (5, 'David Wilson', 88.9, 'Seattle', 32, 1, 
9998887776, false, 50, 5000000000,  '2024-06-15', '2024-06-15 15:45:00', 
'2024-06-15 15:45:00', 'Test String 5', {'a': 500, 'b': 200}, '[\"abc\", 
\"def\"]');"
+
+    sql initTable1
+    sql initTableData1
+    checkTableData("${tbName1}", "${tbName2}", "t_datev2")
+    sql """ DROP TABLE IF EXISTS ${tbName1} """
+
+
+    // Test the duplicate model by drop a value type from DATEV2
+    sql initTable
+    sql initTableData
+    sql """ alter  table ${tbName1} DROP  column t_datev2  """
+    insertSql = "insert into ${tbName1} values(6, 'Sophia Lee', 91.3, 
'Boston', 29, 2, 7778889990, true, 60, 6000000000,  '2024-06-16', '2024-06-16 
17:00:00', '2024-06-16 17:00:00', 'Test String 6', {'a': 500, 'b': 200}, 
'{\"k1\":\"v1\", \"k2\": 200}'); "
+    waitForSchemaChangeDone({
+        sql getTableStatusSql
+        time 60
+    }, insertSql, false, "${tbName1}")
+
+
+    sql """ DROP TABLE IF EXISTS ${tbName2} """
+    initTable1 = " CREATE TABLE IF NOT EXISTS ${tbName2}\n" +
+            "          (\n" +
+            "              `user_id` LARGEINT NOT NULL COMMENT \"用户id\",\n" +
+            "              `username` VARCHAR(50) NOT NULL COMMENT 
\"用户昵称\",\n" +
+            "              `score` DECIMAL(38,10) COMMENT \"分数\",\n" +
+            "              `city` CHAR(20) COMMENT \"用户所在城市\",\n" +
+            "              `age` SMALLINT COMMENT \"用户年龄\",\n" +
+            "              `sex` TINYINT COMMENT \"用户性别\",\n" +
+            "              `phone` LARGEINT COMMENT \"用户电话\",\n" +
+            "              `is_ok` BOOLEAN COMMENT \"是否完成\",\n" +
+            "              `t_int` INT COMMENT \"测试int\",\n" +
+            "              `t_bigint` BIGINT COMMENT \"测试BIGINT\",\n" +
+            "              `t_date` DATE COMMENT \"测试DATEV2\",\n" +
+            "              `t_datetimev2` DATETIMEV2 COMMENT 
\"测试DATETIMEV2\",\n" +
+            "              `t_datetime` DATETIME COMMENT \"用户注册时间\",\n" +
+            "              `t_string` STRING COMMENT \"测试string\",\n" +
+            "              `m` Map<STRING, INT> NULL COMMENT \"\",\n" +
+            "              `j` JSON NULL COMMENT \"\"\n" +
+            "          )\n" +
+            "          duplicate KEY(`user_id`)\n" +
+            "          DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
+            "          PROPERTIES (\n" +
+            "          \"replication_allocation\" = \"tag.location.default: 
1\"\n" +
+            "          );"
+
+    initTableData1 = "insert into ${tbName2} values(1, 'John Doe', 95.5, 'New 
York', 25, 1, 1234567890, true, 10, 1000000000,  '2024-06-11', '2024-06-11 
08:30:00', '2024-06-11 08:30:00', 'Test String 1', {'a': 100, 'b': 200}, 
'[\"abc\", \"def\"]')," +
+            "               (2, 'Jane Smith', 85.2, 'Los Angeles', 30, 2, 
9876543210, false, 20, 2000000000,  '2024-06-12', '2024-06-12 09:45:00', 
'2024-06-12 09:45:00', 'Test String 2', {'a': 200, 'b': 200}, '[\"abc\", 
\"def\"]')," +
+            "               (3, 'Mike Johnson', 77.8, 'Chicago', 35, 1, 
1112223334, true, 30, 3000000000,  '2024-06-13', '2024-06-13 11:15:00', 
'2024-06-13 11:15:00', 'Test String 3', {'a': 300, 'b': 200}, '[\"abc\", 
\"def\"]')," +
+            "               (4, 'Emily Brown', 92.0, 'San Francisco', 28, 2, 
5556667778, true, 40, 4000000000,  '2024-06-14', '2024-06-14 13:30:00', 
'2024-06-14 13:30:00', 'Test String 4', {'a': 400, 'b': 200}, '[\"abc\", 
\"def\"]')," +
+            "               (6, 'Sophia Lee', 91.3, 'Boston', 29, 2, 
7778889990, true, 60, 6000000000,  '2024-06-16', '2024-06-16 17:00:00', 
'2024-06-16 17:00:00', 'Test String 6', {'a': 500, 'b': 200}, 
'{\\\"k1\\\":\\\"v1\\\", \\\"k2\\\": 200}')," +
+            "               (5, 'David Wilson', 88.9, 'Seattle', 32, 1, 
9998887776, false, 50, 5000000000,  '2024-06-15', '2024-06-15 15:45:00', 
'2024-06-15 15:45:00', 'Test String 5', {'a': 500, 'b': 200}, '[\"abc\", 
\"def\"]');"
+
+    sql initTable1
+    sql initTableData1
+    checkTableData("${tbName1}", "${tbName2}", "t_datetimev2")
+    sql """ DROP TABLE IF EXISTS ${tbName1} """
+
+
+    // Test the duplicate model by drop a value type from t_datetimev2
+    sql initTable
+    sql initTableData
+    sql """ alter  table ${tbName1} DROP  column t_datetimev2  """
+    insertSql = "insert into ${tbName1} values(6, 'Sophia Lee', 91.3, 
'Boston', 29, 2, 7778889990, true, 60, 6000000000,  '2024-06-16', '2024-06-16', 
 '2024-06-16 17:00:00', 'Test String 6', {'a': 500, 'b': 200}, '{\"k1\":\"v1\", 
\"k2\": 200}'); "
+    waitForSchemaChangeDone({
+        sql getTableStatusSql
+        time 60
+    }, insertSql, false, "${tbName1}")
+
+
+    sql """ DROP TABLE IF EXISTS ${tbName2} """
+    initTable1 = " CREATE TABLE IF NOT EXISTS ${tbName2}\n" +
+            "          (\n" +
+            "              `user_id` LARGEINT NOT NULL COMMENT \"用户id\",\n" +
+            "              `username` VARCHAR(50) NOT NULL COMMENT 
\"用户昵称\",\n" +
+            "              `score` DECIMAL(38,10) COMMENT \"分数\",\n" +
+            "              `city` CHAR(20) COMMENT \"用户所在城市\",\n" +
+            "              `age` SMALLINT COMMENT \"用户年龄\",\n" +
+            "              `sex` TINYINT COMMENT \"用户性别\",\n" +
+            "              `phone` LARGEINT COMMENT \"用户电话\",\n" +
+            "              `is_ok` BOOLEAN COMMENT \"是否完成\",\n" +
+            "              `t_int` INT COMMENT \"测试int\",\n" +
+            "              `t_bigint` BIGINT COMMENT \"测试BIGINT\",\n" +
+            "              `t_date` DATE COMMENT \"测试DATE\",\n" +
+            "              `t_datev2` DATEV2 COMMENT \"测试DATEV2\",\n" +
+            "              `t_datetime` DATETIME COMMENT \"用户注册时间\",\n" +
+            "              `t_string` STRING COMMENT \"测试string\",\n" +
+            "              `m` Map<STRING, INT> NULL COMMENT \"\",\n" +
+            "              `j` JSON NULL COMMENT \"\"\n" +
+            "          )\n" +
+            "          duplicate KEY(`user_id`)\n" +
+            "          DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
+            "          PROPERTIES (\n" +
+            "          \"replication_allocation\" = \"tag.location.default: 
1\"\n" +
+            "          );"
+
+    initTableData1 = "insert into ${tbName2} values(1, 'John Doe', 95.5, 'New 
York', 25, 1, 1234567890, true, 10, 1000000000, '2024-06-11', '2024-06-11',  
'2024-06-11 08:30:00', 'Test String 1', {'a': 100, 'b': 200}, '[\"abc\", 
\"def\"]')," +
+            "               (2, 'Jane Smith', 85.2, 'Los Angeles', 30, 2, 
9876543210, false, 20, 2000000000, '2024-06-12', '2024-06-12',  '2024-06-12 
09:45:00', 'Test String 2', {'a': 200, 'b': 200}, '[\"abc\", \"def\"]')," +
+            "               (3, 'Mike Johnson', 77.8, 'Chicago', 35, 1, 
1112223334, true, 30, 3000000000, '2024-06-13', '2024-06-13',  '2024-06-13 
11:15:00', 'Test String 3', {'a': 300, 'b': 200}, '[\"abc\", \"def\"]')," +
+            "               (4, 'Emily Brown', 92.0, 'San Francisco', 28, 2, 
5556667778, true, 40, 4000000000, '2024-06-14', '2024-06-14',  '2024-06-14 
13:30:00', 'Test String 4', {'a': 400, 'b': 200}, '[\"abc\", \"def\"]')," +
+            "               (6, 'Sophia Lee', 91.3, 'Boston', 29, 2, 
7778889990, true, 60, 6000000000,  '2024-06-16', '2024-06-16',  '2024-06-16 
17:00:00', 'Test String 6', {'a': 500, 'b': 200}, '{\\\"k1\\\":\\\"v1\\\", 
\\\"k2\\\": 200}')," +
+            "               (5, 'David Wilson', 88.9, 'Seattle', 32, 1, 
9998887776, false, 50, 5000000000, '2024-06-15', '2024-06-15',  '2024-06-15 
15:45:00', 'Test String 5', {'a': 500, 'b': 200}, '[\"abc\", \"def\"]');"
+
+    sql initTable1
+    sql initTableData1
+    checkTableData("${tbName1}", "${tbName2}", "t_datetime")
+    sql """ DROP TABLE IF EXISTS ${tbName1} """
+
+
+    // Test the duplicate model by drop a value type from t_datetimev2
+    sql initTable
+    sql initTableData
+    sql """ alter  table ${tbName1} DROP  column t_datetimev2  """
+    insertSql = "insert into ${tbName1} values(6, 'Sophia Lee', 91.3, 
'Boston', 29, 2, 7778889990, true, 60, 6000000000,  '2024-06-16', '2024-06-16', 
 '2024-06-16 17:00:00', 'Test String 6', {'a': 500, 'b': 200}, '{\"k1\":\"v1\", 
\"k2\": 200}'); "
+    waitForSchemaChangeDone({
+        sql getTableStatusSql
+        time 60
+    }, insertSql, false, "${tbName1}")
+
+
+    sql """ DROP TABLE IF EXISTS ${tbName2} """
+    initTable1 = " CREATE TABLE IF NOT EXISTS ${tbName2}\n" +
+            "          (\n" +
+            "              `user_id` LARGEINT NOT NULL COMMENT \"用户id\",\n" +
+            "              `username` VARCHAR(50) NOT NULL COMMENT 
\"用户昵称\",\n" +
+            "              `score` DECIMAL(38,10) COMMENT \"分数\",\n" +
+            "              `city` CHAR(20) COMMENT \"用户所在城市\",\n" +
+            "              `age` SMALLINT COMMENT \"用户年龄\",\n" +
+            "              `sex` TINYINT COMMENT \"用户性别\",\n" +
+            "              `phone` LARGEINT COMMENT \"用户电话\",\n" +
+            "              `is_ok` BOOLEAN COMMENT \"是否完成\",\n" +
+            "              `t_int` INT COMMENT \"测试int\",\n" +
+            "              `t_bigint` BIGINT COMMENT \"测试BIGINT\",\n" +
+            "              `t_date` DATE COMMENT \"测试DATE\",\n" +
+            "              `t_datev2` DATEV2 COMMENT \"测试DATEV2\",\n" +
+            "              `t_datetimev2` DATETIMEv2 COMMENT \"用户注册时间\",\n" +
+            "              `t_string` STRING COMMENT \"测试string\",\n" +
+            "              `m` Map<STRING, INT> NULL COMMENT \"\",\n" +
+            "              `j` JSON NULL COMMENT \"\"\n" +
+            "          )\n" +
+            "          duplicate KEY(`user_id`)\n" +
+            "          DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
+            "          PROPERTIES (\n" +
+            "          \"replication_allocation\" = \"tag.location.default: 
1\"\n" +
+            "          );"
+
+    initTableData1 = "insert into ${tbName2} values(1, 'John Doe', 95.5, 'New 
York', 25, 1, 1234567890, true, 10, 1000000000, '2024-06-11', '2024-06-11',  
'2024-06-11 08:30:00', 'Test String 1', {'a': 100, 'b': 200}, '[\"abc\", 
\"def\"]')," +
+            "               (2, 'Jane Smith', 85.2, 'Los Angeles', 30, 2, 
9876543210, false, 20, 2000000000, '2024-06-12', '2024-06-12',  '2024-06-12 
09:45:00', 'Test String 2', {'a': 200, 'b': 200}, '[\"abc\", \"def\"]')," +
+            "               (3, 'Mike Johnson', 77.8, 'Chicago', 35, 1, 
1112223334, true, 30, 3000000000, '2024-06-13', '2024-06-13',  '2024-06-13 
11:15:00', 'Test String 3', {'a': 300, 'b': 200}, '[\"abc\", \"def\"]')," +
+            "               (4, 'Emily Brown', 92.0, 'San Francisco', 28, 2, 
5556667778, true, 40, 4000000000, '2024-06-14', '2024-06-14',  '2024-06-14 
13:30:00', 'Test String 4', {'a': 400, 'b': 200}, '[\"abc\", \"def\"]')," +
+            "               (6, 'Sophia Lee', 91.3, 'Boston', 29, 2, 
7778889990, true, 60, 6000000000,  '2024-06-16', '2024-06-16',  '2024-06-16 
17:00:00', 'Test String 6', {'a': 500, 'b': 200}, '{\\\"k1\\\":\\\"v1\\\", 
\\\"k2\\\": 200}')," +
+            "               (5, 'David Wilson', 88.9, 'Seattle', 32, 1, 
9998887776, false, 50, 5000000000, '2024-06-15', '2024-06-15',  '2024-06-15 
15:45:00', 'Test String 5', {'a': 500, 'b': 200}, '[\"abc\", \"def\"]');"
+
+    sql initTable1
+    sql initTableData1
+    checkTableData("${tbName1}", "${tbName2}", "t_string")
+    sql """ DROP TABLE IF EXISTS ${tbName1} """
+
+
+    // Test the duplicate model by drop a value type from t_datetime
+    sql initTable
+    sql initTableData
+    sql """ alter  table ${tbName1} DROP  column t_datetime  """
+    insertSql = "insert into ${tbName1} values(6, 'Sophia Lee', 91.3, 
'Boston', 29, 2, 7778889990, true, 60, 6000000000,  '2024-06-16', '2024-06-16', 
 '2024-06-16 17:00:00', 'Test String 6', {'a': 500, 'b': 200}, '{\"k1\":\"v1\", 
\"k2\": 200}'); "
+    waitForSchemaChangeDone({
+        sql getTableStatusSql
+        time 60
+    }, insertSql, false, "${tbName1}")
+
+
+    sql """ DROP TABLE IF EXISTS ${tbName2} """
+    initTable1 = " CREATE TABLE IF NOT EXISTS ${tbName2}\n" +
+            "          (\n" +
+            "              `user_id` LARGEINT NOT NULL COMMENT \"用户id\",\n" +
+            "              `username` VARCHAR(50) NOT NULL COMMENT 
\"用户昵称\",\n" +
+            "              `score` DECIMAL(38,10) COMMENT \"分数\",\n" +
+            "              `city` CHAR(20) COMMENT \"用户所在城市\",\n" +
+            "              `age` SMALLINT COMMENT \"用户年龄\",\n" +
+            "              `sex` TINYINT COMMENT \"用户性别\",\n" +
+            "              `phone` LARGEINT COMMENT \"用户电话\",\n" +
+            "              `is_ok` BOOLEAN COMMENT \"是否完成\",\n" +
+            "              `t_int` INT COMMENT \"测试int\",\n" +
+            "              `t_bigint` BIGINT COMMENT \"测试BIGINT\",\n" +
+            "              `t_date` DATE COMMENT \"测试DATE\",\n" +
+            "              `t_datev2` DATEV2 COMMENT \"测试DATEV2\",\n" +
+            "              `t_datetimev2` DATETIMEv2 COMMENT \"用户注册时间\",\n" +
+            "              `t_string` STRING COMMENT \"测试string\",\n" +
+            "              `m` Map<STRING, INT> NULL COMMENT \"\",\n" +
+            "              `j` JSON NULL COMMENT \"\"\n" +
+            "          )\n" +
+            "          duplicate KEY(`user_id`)\n" +
+            "          DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
+            "          PROPERTIES (\n" +
+            "          \"replication_allocation\" = \"tag.location.default: 
1\"\n" +
+            "          );"
+
+    initTableData1 = "insert into ${tbName2} values(1, 'John Doe', 95.5, 'New 
York', 25, 1, 1234567890, true, 10, 1000000000, '2024-06-11', '2024-06-11',  
'2024-06-11 08:30:00', 'Test String 1', {'a': 100, 'b': 200}, '[\"abc\", 
\"def\"]')," +
+            "               (2, 'Jane Smith', 85.2, 'Los Angeles', 30, 2, 
9876543210, false, 20, 2000000000, '2024-06-12', '2024-06-12',  '2024-06-12 
09:45:00', 'Test String 2', {'a': 200, 'b': 200}, '[\"abc\", \"def\"]')," +
+            "               (3, 'Mike Johnson', 77.8, 'Chicago', 35, 1, 
1112223334, true, 30, 3000000000, '2024-06-13', '2024-06-13',  '2024-06-13 
11:15:00', 'Test String 3', {'a': 300, 'b': 200}, '[\"abc\", \"def\"]')," +
+            "               (4, 'Emily Brown', 92.0, 'San Francisco', 28, 2, 
5556667778, true, 40, 4000000000, '2024-06-14', '2024-06-14',  '2024-06-14 
13:30:00', 'Test String 4', {'a': 400, 'b': 200}, '[\"abc\", \"def\"]')," +
+            "               (6, 'Sophia Lee', 91.3, 'Boston', 29, 2, 
7778889990, true, 60, 6000000000,  '2024-06-16', '2024-06-16',  '2024-06-16 
17:00:00', 'Test String 6', {'a': 500, 'b': 200}, '{\\\"k1\\\":\\\"v1\\\", 
\\\"k2\\\": 200}')," +
+            "               (5, 'David Wilson', 88.9, 'Seattle', 32, 1, 
9998887776, false, 50, 5000000000, '2024-06-15', '2024-06-15',  '2024-06-15 
15:45:00', 'Test String 5', {'a': 500, 'b': 200}, '[\"abc\", \"def\"]');"
+
+    sql initTable1
+    sql initTableData1
+    checkTableData("${tbName1}", "${tbName2}", "t_string")
+    sql """ DROP TABLE IF EXISTS ${tbName1} """
+
+
+    // Test the duplicate model by drop a value type from CHAR
+    sql initTable
+    sql initTableData
+    sql """ alter  table ${tbName1} DROP  column city  """
+    insertSql = "insert into ${tbName1} values(6, 'Sophia Lee', 91.3, 29, 2, 
7778889990, true, 60, 6000000000, '2024-06-16', '2024-06-16', '2024-06-16 
17:00:00', '2024-06-16 17:00:00', 'Test String 6', {'a': 500, 'b': 200}, 
'{\"k1\":\"v1\", \"k2\": 200}'); "
+    waitForSchemaChangeDone({
+        sql getTableStatusSql
+        time 60
+    }, insertSql, false, "${tbName1}")
+
+
+    sql """ DROP TABLE IF EXISTS ${tbName2} """
+    initTable1 = " CREATE TABLE IF NOT EXISTS ${tbName2}\n" +
+            "          (\n" +
+            "              `user_id` LARGEINT NOT NULL COMMENT \"用户id\",\n" +
+            "              `username` VARCHAR(50) NOT NULL COMMENT 
\"用户昵称\",\n" +
+            "              `score` DECIMAL(38,10) COMMENT \"分数\",\n" +
+            "              `age` SMALLINT COMMENT \"用户年龄\",\n" +
+            "              `sex` TINYINT COMMENT \"用户性别\",\n" +
+            "              `phone` LARGEINT COMMENT \"用户电话\",\n" +
+            "              `is_ok` BOOLEAN COMMENT \"是否完成\",\n" +
+            "              `t_int` INT COMMENT \"测试int\",\n" +
+            "              `t_bigint` BIGINT COMMENT \"测试BIGINT\",\n" +
+            "              `t_date` DATE COMMENT \"测试DATE\",\n" +
+            "              `t_datev2` DATEV2 COMMENT \"测试DATEV2\",\n" +
+            "              `t_datetimev2` DATETIMEV2 COMMENT 
\"测试DATETIMEV2\",\n" +
+            "              `t_datetime` DATETIME COMMENT \"用户注册时间\",\n" +
+            "              `t_string` STRING COMMENT \"测试string\",\n" +
+            "              `m` Map<STRING, INT> NULL COMMENT \"\",\n" +
+            "              `j` JSON NULL COMMENT \"\"\n" +
+            "          )\n" +
+            "          duplicate KEY(`user_id`)\n" +
+            "          DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
+            "          PROPERTIES (\n" +
+            "          \"replication_allocation\" = \"tag.location.default: 
1\"\n" +
+            "          );"
+
+    initTableData1 = "insert into ${tbName2} values(1, 'John Doe', 95.5,  25, 
1, 1234567890, true, 10, 1000000000, '2024-06-11', '2024-06-11', '2024-06-11 
08:30:00', '2024-06-11 08:30:00', 'Test String 1', {'a': 100, 'b': 200}, 
'[\"abc\", \"def\"]')," +
+            "               (2, 'Jane Smith', 85.2,  30, 2, 9876543210, false, 
20, 2000000000, '2024-06-12', '2024-06-12', '2024-06-12 09:45:00', '2024-06-12 
09:45:00', 'Test String 2', {'a': 200, 'b': 200}, '[\"abc\", \"def\"]')," +
+            "               (3, 'Mike Johnson', 77.8,  35, 1, 1112223334, 
true, 30, 3000000000, '2024-06-13', '2024-06-13', '2024-06-13 11:15:00', 
'2024-06-13 11:15:00', 'Test String 3', {'a': 300, 'b': 200}, '[\"abc\", 
\"def\"]')," +
+            "               (4, 'Emily Brown', 92.0,  28, 2, 5556667778, true, 
40, 4000000000, '2024-06-14', '2024-06-14', '2024-06-14 13:30:00', '2024-06-14 
13:30:00', 'Test String 4', {'a': 400, 'b': 200}, '[\"abc\", \"def\"]')," +
+            "               (6, 'Sophia Lee', 91.3, 29, 2, 7778889990, true, 
60, 6000000000, '2024-06-16', '2024-06-16', '2024-06-16 17:00:00', '2024-06-16 
17:00:00', 'Test String 6', {'a': 500, 'b': 200}, '{\\\"k1\\\":\\\"v1\\\", 
\\\"k2\\\": 200}')," +
+            "               (5, 'David Wilson', 88.9,  32, 1, 9998887776, 
false, 50, 5000000000, '2024-06-15', '2024-06-15', '2024-06-15 15:45:00', 
'2024-06-15 15:45:00', 'Test String 5', {'a': 500, 'b': 200}, '[\"abc\", 
\"def\"]');"
+
+    sql initTable1
+    sql initTableData1
+    checkTableData("${tbName1}", "${tbName2}", "age")
+    sql """ DROP TABLE IF EXISTS ${tbName1} """
+
+
+    // Test the duplicate model by drop a value type from VARCHAR
+    sql initTable
+    sql initTableData
+    sql """ alter  table ${tbName1} DROP  column username  """
+    insertSql = "insert into ${tbName1} values(6, 91.3, 'Boston', 29, 2, 
7778889990, true, 60, 6000000000, '2024-06-16', '2024-06-16', '2024-06-16 
17:00:00', '2024-06-16 17:00:00', 'Test String 6', {'a': 500, 'b': 200}, 
'{\"k1\":\"v1\", \"k2\": 200}'); "
+    waitForSchemaChangeDone({
+        sql getTableStatusSql
+        time 60
+    }, insertSql, false, "${tbName1}")
+
+
+    sql """ DROP TABLE IF EXISTS ${tbName2} """
+    initTable1 = " CREATE TABLE IF NOT EXISTS ${tbName2}\n" +
+            "          (\n" +
+            "              `user_id` LARGEINT NOT NULL COMMENT \"用户id\",\n" +
+            "              `score` DECIMAL(38,10) COMMENT \"分数\",\n" +
+            "              `city` CHAR(20) COMMENT \"用户所在城市\",\n" +
+            "              `age` SMALLINT COMMENT \"用户年龄\",\n" +
+            "              `sex` TINYINT COMMENT \"用户性别\",\n" +
+            "              `phone` LARGEINT COMMENT \"用户电话\",\n" +
+            "              `is_ok` BOOLEAN COMMENT \"是否完成\",\n" +
+            "              `t_int` INT COMMENT \"测试int\",\n" +
+            "              `t_bigint` BIGINT COMMENT \"测试BIGINT\",\n" +
+            "              `t_date` DATE COMMENT \"测试DATE\",\n" +
+            "              `t_datev2` DATEV2 COMMENT \"测试DATEV2\",\n" +
+            "              `t_datetimev2` DATETIMEV2 COMMENT 
\"测试DATETIMEV2\",\n" +
+            "              `t_datetime` DATETIME COMMENT \"用户注册时间\",\n" +
+            "              `t_string` STRING COMMENT \"测试string\",\n" +
+            "              `m` Map<STRING, INT> NULL COMMENT \"\",\n" +
+            "              `j` JSON NULL COMMENT \"\"\n" +
+            "          )\n" +
+            "          duplicate KEY(`user_id`)\n" +
+            "          DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
+            "          PROPERTIES (\n" +
+            "          \"replication_allocation\" = \"tag.location.default: 
1\"\n" +
+            "          );"
+
+    initTableData1 = "insert into ${tbName2} values(1, 95.5, 'New York', 25, 
1, 1234567890, true, 10, 1000000000, '2024-06-11', '2024-06-11', '2024-06-11 
08:30:00', '2024-06-11 08:30:00', 'Test String 1', {'a': 100, 'b': 200}, 
'[\"abc\", \"def\"]')," +
+            "               (2, 85.2, 'Los Angeles', 30, 2, 9876543210, false, 
20, 2000000000, '2024-06-12', '2024-06-12', '2024-06-12 09:45:00', '2024-06-12 
09:45:00', 'Test String 2', {'a': 200, 'b': 200}, '[\"abc\", \"def\"]')," +
+            "               (3, 77.8, 'Chicago', 35, 1, 1112223334, true, 30, 
3000000000, '2024-06-13', '2024-06-13', '2024-06-13 11:15:00', '2024-06-13 
11:15:00', 'Test String 3', {'a': 300, 'b': 200}, '[\"abc\", \"def\"]')," +
+            "               (4, 92.0, 'San Francisco', 28, 2, 5556667778, 
true, 40, 4000000000, '2024-06-14', '2024-06-14', '2024-06-14 13:30:00', 
'2024-06-14 13:30:00', 'Test String 4', {'a': 400, 'b': 200}, '[\"abc\", 
\"def\"]')," +
+            "               (6, 91.3, 'Boston', 29, 2, 7778889990, true, 60, 
6000000000, '2024-06-16', '2024-06-16', '2024-06-16 17:00:00', '2024-06-16 
17:00:00', 'Test String 6', {'a': 500, 'b': 200}, '{\\\"k1\\\":\\\"v1\\\", 
\\\"k2\\\": 200}')," +
+            "               (5, 88.9, 'Seattle', 32, 1, 9998887776, false, 50, 
5000000000, '2024-06-15', '2024-06-15', '2024-06-15 15:45:00', '2024-06-15 
15:45:00', 'Test String 5', {'a': 500, 'b': 200}, '[\"abc\", \"def\"]');"
+
+    sql initTable1
+    sql initTableData1
+    checkTableData("${tbName1}", "${tbName2}", "score")
+    sql """ DROP TABLE IF EXISTS ${tbName1} """
+
+
+    // Test the duplicate model by drop a value type from STRING
+    sql initTable
+    sql initTableData
+    sql """ alter  table ${tbName1} DROP  column t_string  """
+    insertSql = "insert into ${tbName1} values(6, 'Sophia Lee', 91.3, 
'Boston', 29, 2, 7778889990, true, 60, 6000000000, '2024-06-16', '2024-06-16', 
'2024-06-16 17:00:00', '2024-06-16 17:00:00', {'a': 500, 'b': 200}, 
'{\"k1\":\"v1\", \"k2\": 200}'); "
+    waitForSchemaChangeDone({
+        sql getTableStatusSql
+        time 60
+    }, insertSql, false, "${tbName1}")
+
+
+    sql """ DROP TABLE IF EXISTS ${tbName2} """
+    initTable1 = " CREATE TABLE IF NOT EXISTS ${tbName2}\n" +
+            "          (\n" +
+            "              `user_id` LARGEINT NOT NULL COMMENT \"用户id\",\n" +
+            "              `username` VARCHAR(50) NOT NULL COMMENT 
\"用户昵称\",\n" +
+            "              `score` DECIMAL(38,10) COMMENT \"分数\",\n" +
+            "              `city` CHAR(20) COMMENT \"用户所在城市\",\n" +
+            "              `age` SMALLINT COMMENT \"用户年龄\",\n" +
+            "              `sex` TINYINT COMMENT \"用户性别\",\n" +
+            "              `phone` LARGEINT COMMENT \"用户电话\",\n" +
+            "              `is_ok` BOOLEAN COMMENT \"是否完成\",\n" +
+            "              `t_int` INT COMMENT \"测试int\",\n" +
+            "              `t_bigint` BIGINT COMMENT \"测试BIGINT\",\n" +
+            "              `t_date` DATE COMMENT \"测试DATE\",\n" +
+            "              `t_datev2` DATEV2 COMMENT \"测试DATEV2\",\n" +
+            "              `t_datetimev2` DATETIMEV2 COMMENT 
\"测试DATETIMEV2\",\n" +
+            "              `t_datetime` DATETIME COMMENT \"用户注册时间\",\n" +
+            "              `m` Map<STRING, INT> NULL COMMENT \"\",\n" +
+            "              `j` JSON NULL COMMENT \"\"\n" +
+            "          )\n" +
+            "          duplicate KEY(`user_id`)\n" +
+            "          DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
+            "          PROPERTIES (\n" +
+            "          \"replication_allocation\" = \"tag.location.default: 
1\"\n" +
+            "          );"
+
+    initTableData1 = "insert into ${tbName2} values(1, 'John Doe', 95.5, 'New 
York', 25, 1, 1234567890, true, 10, 1000000000, '2024-06-11', '2024-06-11', 
'2024-06-11 08:30:00', '2024-06-11 08:30:00', {'a': 100, 'b': 200}, '[\"abc\", 
\"def\"]')," +
+            "               (2, 'Jane Smith', 85.2, 'Los Angeles', 30, 2, 
9876543210, false, 20, 2000000000, '2024-06-12', '2024-06-12', '2024-06-12 
09:45:00', '2024-06-12 09:45:00', {'a': 200, 'b': 200}, '[\"abc\", \"def\"]')," 
+
+            "               (3, 'Mike Johnson', 77.8, 'Chicago', 35, 1, 
1112223334, true, 30, 3000000000, '2024-06-13', '2024-06-13', '2024-06-13 
11:15:00', '2024-06-13 11:15:00', {'a': 300, 'b': 200}, '[\"abc\", \"def\"]')," 
+
+            "               (4, 'Emily Brown', 92.0, 'San Francisco', 28, 2, 
5556667778, true, 40, 4000000000, '2024-06-14', '2024-06-14', '2024-06-14 
13:30:00', '2024-06-14 13:30:00', {'a': 400, 'b': 200}, '[\"abc\", \"def\"]')," 
+
+            "               (6, 'Sophia Lee', 91.3, 'Boston', 29, 2, 
7778889990, true, 60, 6000000000, '2024-06-16', '2024-06-16', '2024-06-16 
17:00:00', '2024-06-16 17:00:00', {'a': 500, 'b': 200}, 
'{\\\"k1\\\":\\\"v1\\\", \\\"k2\\\": 200}')," +
+            "               (5, 'David Wilson', 88.9, 'Seattle', 32, 1, 
9998887776, false, 50, 5000000000, '2024-06-15', '2024-06-15', '2024-06-15 
15:45:00', '2024-06-15 15:45:00', {'a': 500, 'b': 200}, '[\"abc\", \"def\"]');"
+
+    sql initTable1
+    sql initTableData1
+    checkTableData("${tbName1}", "${tbName2}", "score")
+    sql """ DROP TABLE IF EXISTS ${tbName1} """
+
+
+    // Test the duplicate model by drop a value type from Map
+    sql initTable
+    sql initTableData
+    sql """ alter  table ${tbName1} DROP  column m  """
+    insertSql = "insert into ${tbName1} values(6, 'Sophia Lee', 91.3, 
'Boston', 29, 2, 7778889990, true, 60, 6000000000, '2024-06-16', '2024-06-16', 
'2024-06-16 17:00:00', '2024-06-16 17:00:00', 'Test String 6', '{\"k1\":\"v1\", 
\"k2\": 200}'); "
+    waitForSchemaChangeDone({
+        sql getTableStatusSql
+        time 60
+    }, insertSql, false, "${tbName1}")
+
+
+    sql """ DROP TABLE IF EXISTS ${tbName2} """
+    initTable1 = " CREATE TABLE IF NOT EXISTS ${tbName2}\n" +
+            "          (\n" +
+            "              `user_id` LARGEINT NOT NULL COMMENT \"用户id\",\n" +
+            "              `username` VARCHAR(50) NOT NULL COMMENT 
\"用户昵称\",\n" +
+            "              `score` DECIMAL(38,10) COMMENT \"分数\",\n" +
+            "              `city` CHAR(20) COMMENT \"用户所在城市\",\n" +
+            "              `age` SMALLINT COMMENT \"用户年龄\",\n" +
+            "              `sex` TINYINT COMMENT \"用户性别\",\n" +
+            "              `phone` LARGEINT COMMENT \"用户电话\",\n" +
+            "              `is_ok` BOOLEAN COMMENT \"是否完成\",\n" +
+            "              `t_int` INT COMMENT \"测试int\",\n" +
+            "              `t_bigint` BIGINT COMMENT \"测试BIGINT\",\n" +
+            "              `t_date` DATE COMMENT \"测试DATE\",\n" +
+            "              `t_datev2` DATEV2 COMMENT \"测试DATEV2\",\n" +
+            "              `t_datetimev2` DATETIMEV2 COMMENT 
\"测试DATETIMEV2\",\n" +
+            "              `t_datetime` DATETIME COMMENT \"用户注册时间\",\n" +
+            "              `t_string` STRING COMMENT \"测试string\",\n" +
+            "              `j` JSON NULL COMMENT \"\"\n" +
+            "          )\n" +
+            "          duplicate KEY(`user_id`)\n" +
+            "          DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
+            "          PROPERTIES (\n" +
+            "          \"replication_allocation\" = \"tag.location.default: 
1\"\n" +
+            "          );"
+
+    initTableData1 = "insert into ${tbName2} values(1, 'John Doe', 95.5, 'New 
York', 25, 1, 1234567890, true, 10, 1000000000, '2024-06-11', '2024-06-11', 
'2024-06-11 08:30:00', '2024-06-11 08:30:00', 'Test String 1', '[\"abc\", 
\"def\"]')," +
+            "               (2, 'Jane Smith', 85.2, 'Los Angeles', 30, 2, 
9876543210, false, 20, 2000000000, '2024-06-12', '2024-06-12', '2024-06-12 
09:45:00', '2024-06-12 09:45:00', 'Test String 2', '[\"abc\", \"def\"]')," +
+            "               (3, 'Mike Johnson', 77.8, 'Chicago', 35, 1, 
1112223334, true, 30, 3000000000, '2024-06-13', '2024-06-13', '2024-06-13 
11:15:00', '2024-06-13 11:15:00', 'Test String 3', '[\"abc\", \"def\"]')," +
+            "               (4, 'Emily Brown', 92.0, 'San Francisco', 28, 2, 
5556667778, true, 40, 4000000000, '2024-06-14', '2024-06-14', '2024-06-14 
13:30:00', '2024-06-14 13:30:00', 'Test String 4', '[\"abc\", \"def\"]')," +
+            "               (6, 'Sophia Lee', 91.3, 'Boston', 29, 2, 
7778889990, true, 60, 6000000000, '2024-06-16', '2024-06-16', '2024-06-16 
17:00:00', '2024-06-16 17:00:00', 'Test String 6', '{\\\"k1\\\":\\\"v1\\\", 
\\\"k2\\\": 200}')," +
+            "               (5, 'David Wilson', 88.9, 'Seattle', 32, 1, 
9998887776, false, 50, 5000000000, '2024-06-15', '2024-06-15', '2024-06-15 
15:45:00', '2024-06-15 15:45:00', 'Test String 5', '[\"abc\", \"def\"]');"
+
+    sql initTable1
+    sql initTableData1
+    checkTableData("${tbName1}", "${tbName2}", "score")
+    sql """ DROP TABLE IF EXISTS ${tbName1} """
+
+
+    // Test the duplicate model by drop a value type from JSON
+    sql initTable
+    sql initTableData
+    sql """ alter  table ${tbName1} DROP  column j  """
+    insertSql = "insert into ${tbName1} values(6, 'Sophia Lee', 91.3, 
'Boston', 29, 2, 7778889990, true, 60, 6000000000, '2024-06-16', '2024-06-16', 
'2024-06-16 17:00:00', '2024-06-16 17:00:00', 'Test String 6', {'a': 100, 'b': 
200}); "
+    waitForSchemaChangeDone({
+        sql getTableStatusSql
+        time 60
+    }, insertSql, false, "${tbName1}")
+
+
+    sql """ DROP TABLE IF EXISTS ${tbName2} """
+    initTable1 = " CREATE TABLE IF NOT EXISTS ${tbName2}\n" +
+            "          (\n" +
+            "              `user_id` LARGEINT NOT NULL COMMENT \"用户id\",\n" +
+            "              `username` VARCHAR(50) NOT NULL COMMENT 
\"用户昵称\",\n" +
+            "              `score` DECIMAL(38,10) COMMENT \"分数\",\n" +
+            "              `city` CHAR(20) COMMENT \"用户所在城市\",\n" +
+            "              `age` SMALLINT COMMENT \"用户年龄\",\n" +
+            "              `sex` TINYINT COMMENT \"用户性别\",\n" +
+            "              `phone` LARGEINT COMMENT \"用户电话\",\n" +
+            "              `is_ok` BOOLEAN COMMENT \"是否完成\",\n" +
+            "              `t_int` INT COMMENT \"测试int\",\n" +
+            "              `t_bigint` BIGINT COMMENT \"测试BIGINT\",\n" +
+            "              `t_date` DATE COMMENT \"测试DATE\",\n" +
+            "              `t_datev2` DATEV2 COMMENT \"测试DATEV2\",\n" +
+            "              `t_datetimev2` DATETIMEV2 COMMENT 
\"测试DATETIMEV2\",\n" +
+            "              `t_datetime` DATETIME COMMENT \"用户注册时间\",\n" +
+            "              `t_string` STRING COMMENT \"测试string\",\n" +
+            "              `m` Map<STRING, INT> NULL COMMENT \"\",\n" +
+            "          )\n" +
+            "          duplicate KEY(`user_id`)\n" +
+            "          DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
+            "          PROPERTIES (\n" +
+            "          \"replication_allocation\" = \"tag.location.default: 
1\"\n" +
+            "          );"
+
+    initTableData1 = "insert into ${tbName2} values(1, 'John Doe', 95.5, 'New 
York', 25, 1, 1234567890, true, 10, 1000000000, '2024-06-11', '2024-06-11', 
'2024-06-11 08:30:00', '2024-06-11 08:30:00', 'Test String 1', {'a': 100, 'b': 
200})," +
+            "               (2, 'Jane Smith', 85.2, 'Los Angeles', 30, 2, 
9876543210, false, 20, 2000000000, '2024-06-12', '2024-06-12', '2024-06-12 
09:45:00', '2024-06-12 09:45:00', 'Test String 2',  {'a': 100, 'b': 200})," +
+            "               (3, 'Mike Johnson', 77.8, 'Chicago', 35, 1, 
1112223334, true, 30, 3000000000, '2024-06-13', '2024-06-13', '2024-06-13 
11:15:00', '2024-06-13 11:15:00', 'Test String 3',  {'a': 100, 'b': 200})," +
+            "               (4, 'Emily Brown', 92.0, 'San Francisco', 28, 2, 
5556667778, true, 40, 4000000000, '2024-06-14', '2024-06-14', '2024-06-14 
13:30:00', '2024-06-14 13:30:00', 'Test String 4', {'a': 100, 'b': 200})," +
+            "               (6, 'Sophia Lee', 91.3, 'Boston', 29, 2, 
7778889990, true, 60, 6000000000, '2024-06-16', '2024-06-16', '2024-06-16 
17:00:00', '2024-06-16 17:00:00', 'Test String 6',  {'a': 100, 'b': 200})," +
+            "               (5, 'David Wilson', 88.9, 'Seattle', 32, 1, 
9998887776, false, 50, 5000000000, '2024-06-15', '2024-06-15', '2024-06-15 
15:45:00', '2024-06-15 15:45:00', 'Test String 5',  {'a': 100, 'b': 200});"
+
+    sql initTable1
+    sql initTableData1
+    checkTableData("${tbName1}", "${tbName2}", "user_id")
+    sql """ DROP TABLE IF EXISTS ${tbName1} """
+
+
+
+
+    initTable = " CREATE TABLE IF NOT EXISTS ${tbName1}\n" +
+            "          (\n" +
+            "              `user_id` LARGEINT NOT NULL COMMENT \"用户id\",\n" +
+            "              `t_decimal` DECIMAL(38,10) COMMENT 
\"测试decimal\",\n" +
+            "              `t_float` FLOAT COMMENT \"测试float\",\n" +
+            "              `t_double` DOUBLE COMMENT \"测试double\"\n" +
+            "          )\n" +
+            "          duplicate KEY(`user_id`)\n" +
+            "          DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
+            "          PROPERTIES (\n" +
+            "          \"replication_allocation\" = \"tag.location.default: 
1\"\n" +
+            "          );"
+
+    initTableData = "insert into ${tbName1} values(1, 123.4567890123, 123.45, 
1234.5678901234)," +
+            "               (2, 234.5678901234, 234.56, 2345.6789012345)," +
+            "               (3, 345.6789012345, 345.67, 3456.7890123456)," +
+            "               (4, 456.7890123456, 456.78, 4567.8901234567)," +
+            "               (5, 567.8901234567, 567.89, 5678.9012345678);"
+
+
+    // Test the duplicate model by drop a value type from DECIMAL
+    sql initTable
+    sql initTableData
+    sql """ alter  table ${tbName1} DROP  column t_decimal  """
+    insertSql = "insert into ${tbName1} values(6,  678.90, 6789.0123456789); "
+    waitForSchemaChangeDone({
+        sql getTableStatusSql
+        time 60
+    }, insertSql, false, "${tbName1}")
+
+
+    sql """ DROP TABLE IF EXISTS ${tbName2} """
+    initTable1 = " CREATE TABLE IF NOT EXISTS ${tbName2}\n" +
+            "          (\n" +
+            "              `user_id` LARGEINT NOT NULL COMMENT \"用户id\",\n" +
+            "              `t_float` FLOAT COMMENT \"测试float\",\n" +
+            "              `t_double` DOUBLE COMMENT \"测试double\"\n" +
+            "          )\n" +
+            "          duplicate KEY(`user_id`)\n" +
+            "          DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
+            "          PROPERTIES (\n" +
+            "          \"replication_allocation\" = \"tag.location.default: 
1\"\n" +
+            "          );"
+
+    initTableData1 = "insert into ${tbName2} values(1,  123.45, 
1234.5678901234)," +
+            "               (2,  234.56, 2345.6789012345)," +
+            "               (3,  345.67, 3456.7890123456)," +
+            "               (4,  456.78, 4567.8901234567)," +
+            "               (6,  678.90, 6789.0123456789)," +
+            "               (5,  567.89, 5678.9012345678);"
+
+    sql initTable1
+    sql initTableData1
+    checkTableData("${tbName1}", "${tbName2}", "t_float")
+    sql """ DROP TABLE IF EXISTS ${tbName1} """
+
+
+    // Test the duplicate model by drop a value type from FLOAT
+    sql initTable
+    sql initTableData
+    sql """ alter  table ${tbName1} DROP  column t_float  """
+    insertSql = "insert into ${tbName1} values(6, 678.9012345678, 
6789.0123456789); "
+    waitForSchemaChangeDone({
+        sql getTableStatusSql
+        time 60
+    }, insertSql, false, "${tbName1}")
+
+
+    sql """ DROP TABLE IF EXISTS ${tbName2} """
+    initTable1 = " CREATE TABLE IF NOT EXISTS ${tbName2}\n" +
+            "          (\n" +
+            "              `user_id` LARGEINT NOT NULL COMMENT \"用户id\",\n" +
+            "              `t_decimal` DECIMAL(38,10) COMMENT 
\"测试decimal\",\n" +
+            "              `t_double` DOUBLE COMMENT \"测试double\"\n" +
+            "          )\n" +
+            "          duplicate KEY(`user_id`)\n" +
+            "          DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
+            "          PROPERTIES (\n" +
+            "          \"replication_allocation\" = \"tag.location.default: 
1\"\n" +
+            "          );"
+
+    initTableData1 = "insert into ${tbName2} values(1, 123.4567890123,  
1234.5678901234)," +
+            "               (2, 234.5678901234,  2345.6789012345)," +
+            "               (3, 345.6789012345,  3456.7890123456)," +
+            "               (4, 456.7890123456,  4567.8901234567)," +
+            "               (6, 678.9012345678, 6789.0123456789)," +
+            "               (5, 567.8901234567,  5678.9012345678);"
+
+    sql initTable1
+    sql initTableData1
+    checkTableData("${tbName1}", "${tbName2}", "t_double")
+    sql """ DROP TABLE IF EXISTS ${tbName1} """
+
+
+    // Test the duplicate model by drop a value type from DOUBLE
+    sql initTable
+    sql initTableData
+    sql """ alter  table ${tbName1} DROP  column t_double  """
+    insertSql = "insert into ${tbName1} values(6, 678.9012345678, 678.90); "
+    waitForSchemaChangeDone({
+        sql getTableStatusSql
+        time 60
+    }, insertSql, false, "${tbName1}")
+
+
+    sql """ DROP TABLE IF EXISTS ${tbName2} """
+    initTable1 = " CREATE TABLE IF NOT EXISTS ${tbName2}\n" +
+            "          (\n" +
+            "              `user_id` LARGEINT NOT NULL COMMENT \"用户id\",\n" +
+            "              `t_decimal` DECIMAL(38,10) COMMENT 
\"测试decimal\",\n" +
+            "              `t_float` FLOAT COMMENT \"测试float\",\n" +
+            "          )\n" +
+            "          duplicate KEY(`user_id`)\n" +
+            "          DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
+            "          PROPERTIES (\n" +
+            "          \"replication_allocation\" = \"tag.location.default: 
1\"\n" +
+            "          );"
+
+    initTableData1 = "insert into ${tbName2} values(1, 123.4567890123, 
123.45)," +
+            "               (2, 234.5678901234, 234.56)," +
+            "               (3, 345.6789012345, 345.67)," +
+            "               (4, 456.7890123456, 456.78)," +
+            "               (6, 678.9012345678, 678.90)," +
+            "               (5, 567.8901234567, 567.89);"
+
+    sql initTable1
+    sql initTableData1
+    checkTableData("${tbName1}", "${tbName2}", "user_id")
+    sql """ DROP TABLE IF EXISTS ${tbName1} """
+
+
+    initTable = " CREATE TABLE IF NOT EXISTS ${tbName1}\n" +
+            "          (\n" +
+            "              `user_id` LARGEINT NOT NULL COMMENT \"用户id\",\n" +
+            "              `c_array` ARRAY<int(11)> COMMENT \"测试ARRAY\",\n" +
+            "              `s_info` STRUCT<s_id:int(11), s_name:string, 
s_address:string> COMMENT \"测试STRUCT\"\n" +
+            "          )\n" +
+            "          duplicate KEY(`user_id`)\n" +
+            "          DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
+            "          PROPERTIES (\n" +
+            "          \"replication_allocation\" = \"tag.location.default: 
1\"\n" +
+            "          );"
+
+    initTableData = "insert into ${tbName1} values(1, [1,7,8], struct(1, 
'sn1', 'sa1'))," +
+            "               (2,  [2,7,8], struct(2, 'sn2', 'sa2'))," +
+            "               (3,  [3,7,8], struct(3, 'sn3', 'sa3'))," +
+            "               (4,  [4,7,8], struct(4, 'sn4', 'sa4'))," +
+            "               (5,  [5,7,8], struct(5, 'sn5', 'sa5'));"
+
+
+    // Test the duplicate model by drop a value type from ARRAY
+    sql initTable
+    sql initTableData
+    sql """ alter  table ${tbName1} DROP  column c_array  """
+    insertSql = "insert into ${tbName1} values(6,  struct(6, 'sn6', 'sa6')); "
+    waitForSchemaChangeDone({
+        sql getTableStatusSql
+        time 60
+    }, insertSql, false, "${tbName1}")
+
+
+    sql """ DROP TABLE IF EXISTS ${tbName2} """
+    initTable1 = " CREATE TABLE IF NOT EXISTS ${tbName2}\n" +
+            "          (\n" +
+            "              `user_id` LARGEINT NOT NULL COMMENT \"用户id\",\n" +
+            "              `s_info` STRUCT<s_id:int(11), s_name:string, 
s_address:string> COMMENT \"测试STRUCT\"\n" +
+            "          )\n" +
+            "          duplicate KEY(`user_id`)\n" +
+            "          DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
+            "          PROPERTIES (\n" +
+            "          \"replication_allocation\" = \"tag.location.default: 
1\"\n" +
+            "          );"
+
+    initTableData1 = "insert into ${tbName2} values(1, struct(1, 'sn1', 
'sa1'))," +
+            "               (2, struct(1, 'sn2', 'sa2'))," +
+            "               (3, struct(1, 'sn3', 'sa3'))," +
+            "               (4, struct(1, 'sn4', 'sa4'))," +
+            "               (6, struct(1, 'sn6', 'sa6'))," +
+            "               (5, struct(5, 'sn5', 'sa5'));"
+
+    sql initTable1
+    sql initTableData1
+    checkTableData("${tbName1}", "${tbName2}", "user_id")
+    sql """ DROP TABLE IF EXISTS ${tbName1} """
+
+
+    // Test the duplicate model by drop a value type from STRUCT
+    errorMessage = "errCode = 2, detailMessage = can not cast from origin type 
STRUCT<StructField ( name=col1, dataType=TINYINT, nullable=true ),StructField ( 
name=col2, dataType=VARCHAR(3), nullable=true ),StructField ( name=col3, 
dataType=VARCHAR(3), nullable=true )> to target type=ARRAY<INT>"
+    expectException({
+        sql initTable
+        sql initTableData
+        sql """ alter  table ${tbName1} DROP  column s_info  """
+        insertSql = "insert into ${tbName1} values(6,  struct(6, 'sn6', 
'sa6')); "
+        waitForSchemaChangeDone({
+            sql getTableStatusSql
+            time 60
+        }, insertSql, true, "${tbName1}")
+    }, errorMessage)
+
+
+}


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to