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 83f20caf52f [enhancement](regression-test) duplicate model by adding a 
value column with other type (#36560)
83f20caf52f is described below

commit 83f20caf52f2ed902208cf1faf0fcee24f1334b2
Author: kkop <[email protected]>
AuthorDate: Fri Jun 21 20:16:30 2024 +0800

    [enhancement](regression-test) duplicate model by adding a value column 
with other type (#36560)
    
    Co-authored-by: cjj2010 <[email protected]>
---
 .../org/apache/doris/regression/suite/Suite.groovy |  12 +-
 .../test_dup_schema_value_change_add.groovy        | 801 +++++++++++++++++++++
 2 files changed, 810 insertions(+), 3 deletions(-)

diff --git 
a/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/Suite.groovy
 
b/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/Suite.groovy
index 25ab5a3d2c5..c81e3fcb1c1 100644
--- 
a/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/Suite.groovy
+++ 
b/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/Suite.groovy
@@ -630,9 +630,15 @@ class Suite implements GroovyInterceptable {
         }
     }
 
-    void checkTableData(String tbName1 = null, String tbName2 = null, String 
fieldName = null) {
-        def tb1Result = sql "select ${fieldName} FROM ${tbName1} order by 
${fieldName}"
-        def tb2Result = sql "select ${fieldName} FROM ${tbName2} order by 
${fieldName}"
+    void checkTableData(String tbName1 = null, String tbName2 = null, String 
fieldName = null, String orderByFieldName = null) {
+        String orderByName = ""
+        if (ObjectUtils.isEmpty(orderByFieldName)){
+            orderByName = fieldName;
+        }else {
+            orderByName = orderByFieldName;
+        }
+        def tb1Result = sql "select ${fieldName} FROM ${tbName1} order by 
${orderByName}"
+        def tb2Result = sql "select ${fieldName} FROM ${tbName2} order by 
${orderByName}"
         List<Object> tbData1 = new ArrayList<Object>();
         for (List<Object> items:tb1Result){
             tbData1.add(items.get(0))
diff --git 
a/regression-test/suites/schema_change_p0/test_dup_schema_value_change_add.groovy
 
b/regression-test/suites/schema_change_p0/test_dup_schema_value_change_add.groovy
new file mode 100644
index 00000000000..af67cfa7291
--- /dev/null
+++ 
b/regression-test/suites/schema_change_p0/test_dup_schema_value_change_add.groovy
@@ -0,0 +1,801 @@
+// 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_change_add", "p0") {
+    def tbName1 = "test_dup_model_schema_value_add"
+    def tbName2 = "test_dup_model_schema_value_add_1"
+    //Test the duplicate model by adding a value column
+    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" +
+            "              `city` VARCHAR(20) COMMENT \"用户所在城市\",\n" +
+            "              `age` SMALLINT COMMENT \"用户年龄\",\n" +
+            "              `sex` TINYINT COMMENT \"用户性别\",\n" +
+            "              `phone` LARGEINT COMMENT \"用户电话\",\n" +
+            "              `address` VARCHAR(500) COMMENT \"用户地址\",\n" +
+            "              `register_time` DATETIME COMMENT \"用户注册时间\"\n" +
+            "          )\n" +
+            "          UNIQUE KEY(`user_id`, `username`)\n" +
+            "          DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
+            "          PROPERTIES (\n" +
+            "          \"replication_allocation\" = \"tag.location.default: 
1\"\n" +
+            "          );"
+
+    def initTableData = "insert into ${tbName1} values(123456789, 'Alice', 
'Beijing', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 
10:00:00')," +
+            "               (234567890, 'Bob', 'Shanghai', 30, 1, 13998765432, 
'No. 456 Street, Shanghai', '2022-02-02 12:00:00')," +
+            "               (345678901, 'Carol', 'Guangzhou', 28, 0, 
13724681357, 'No. 789 Street, Guangzhou', '2022-03-03 14:00:00')," +
+            "               (456789012, 'Dave', 'Shenzhen', 35, 1, 
13680864279, 'No. 987 Street, Shenzhen', '2022-04-04 16:00:00')," +
+            "               (567890123, 'Eve', 'Chengdu', 27, 0, 13572468091, 
'No. 654 Street, Chengdu', '2022-05-05 18:00:00')," +
+            "               (678901234, 'Frank', 'Hangzhou', 32, 1, 
13467985213, 'No. 321 Street, Hangzhou', '2022-06-06 20:00:00')," +
+            "               (789012345, 'Grace', 'Xian', 29, 0, 13333333333, 
'No. 222 Street, Xian', '2022-07-07 22:00:00');"
+    def initTable1 = ""
+    def initTableData1 = ""
+    //Test the duplicate model by adding a value column with VARCHAR
+    sql initTable
+    sql initTableData
+    def getTableStatusSql = " SHOW ALTER TABLE COLUMN WHERE 
IndexName='${tbName1}' ORDER BY createtime DESC LIMIT 1  "
+    def errorMessage = ""
+    sql """ alter  table ${tbName1} add  column province VARCHAR(20)  DEFAULT 
"广东省" AFTER username """
+    def insertSql = "insert into ${tbName1} values(123456689, 'Alice', '四川省', 
'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00');"
+    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" +
+            "              `province` VARCHAR(20) NOT NULL COMMENT \"省份\",\n" +
+            "              `city` VARCHAR(20) COMMENT \"用户所在城市\",\n" +
+            "              `age` SMALLINT COMMENT \"用户年龄\",\n" +
+            "              `sex` TINYINT COMMENT \"用户性别\",\n" +
+            "              `phone` LARGEINT COMMENT \"用户电话\",\n" +
+            "              `address` VARCHAR(500) COMMENT \"用户地址\",\n" +
+            "              `register_time` DATETIME COMMENT \"用户注册时间\"\n" +
+            "          )\n" +
+            "          DUPLICATE KEY(`user_id`, `username`)\n" +
+            "          DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
+            "          PROPERTIES (\n" +
+            "          \"replication_allocation\" = \"tag.location.default: 
1\"\n" +
+            "          );"
+
+    initTableData1 = "insert into ${tbName2} values(123456789, 'Alice', '广东省', 
'Beijing', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 
10:00:00')," +
+            "               (234567890, 'Bob', '广东省', 'Shanghai', 30, 1, 
13998765432, 'No. 456 Street, Shanghai', '2022-02-02 12:00:00')," +
+            "               (345678901, 'Carol', '广东省', 'Guangzhou', 28, 0, 
13724681357, 'No. 789 Street, Guangzhou', '2022-03-03 14:00:00')," +
+            "               (456789012, 'Dave', '广东省', 'Shenzhen', 35, 1, 
13680864279, 'No. 987 Street, Shenzhen', '2022-04-04 16:00:00')," +
+            "               (567890123, 'Eve', '广东省', 'Chengdu', 27, 0, 
13572468091, 'No. 654 Street, Chengdu', '2022-05-05 18:00:00')," +
+            "               (678901234, 'Frank', '广东省', 'Hangzhou', 32, 1, 
13467985213, 'No. 321 Street, Hangzhou', '2022-06-06 20:00:00')," +
+            "               (123456689, 'Alice', '四川省', 'Yaan', 25, 0, 
13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00')," +
+            "               (789012345, 'Grace', '广东省', 'Xian', 29, 0, 
13333333333, 'No. 222 Street, Xian', '2022-07-07 22:00:00');"
+    sql initTable1
+    sql initTableData1
+    checkTableData("${tbName1}", "${tbName2}", "province")
+    sql """ DROP TABLE IF EXISTS ${tbName1} """
+
+
+    //Test the duplicate model by adding a value column with BOOLEAN
+    sql initTable
+    sql initTableData
+    sql """ alter  table ${tbName1} add  column special_area BOOLEAN  DEFAULT 
"0" AFTER username """
+    insertSql = "insert into ${tbName1} values(123456689, 'Alice', 1, 'Yaan', 
25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); "
+    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" +
+            "              `special_area` BOOLEAN NOT NULL COMMENT \"特区\",\n" +
+            "              `city` VARCHAR(20) COMMENT \"用户所在城市\",\n" +
+            "              `age` SMALLINT COMMENT \"用户年龄\",\n" +
+            "              `sex` TINYINT COMMENT \"用户性别\",\n" +
+            "              `phone` LARGEINT COMMENT \"用户电话\",\n" +
+            "              `address` VARCHAR(500) COMMENT \"用户地址\",\n" +
+            "              `register_time` DATETIME COMMENT \"用户注册时间\"\n" +
+            "          )\n" +
+            "          DUPLICATE KEY(`user_id`, `username`)\n" +
+            "          DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
+            "          PROPERTIES (\n" +
+            "          \"replication_allocation\" = \"tag.location.default: 
1\"\n" +
+            "          );"
+
+    initTableData1 = "insert into ${tbName2} values(123456789, 'Alice', '0', 
'Beijing', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 
10:00:00')," +
+            "               (234567890, 'Bob', '0', 'Shanghai', 30, 1, 
13998765432, 'No. 456 Street, Shanghai', '2022-02-02 12:00:00')," +
+            "               (345678901, 'Carol', '0', 'Guangzhou', 28, 0, 
13724681357, 'No. 789 Street, Guangzhou', '2022-03-03 14:00:00')," +
+            "               (456789012, 'Dave', '0', 'Shenzhen', 35, 1, 
13680864279, 'No. 987 Street, Shenzhen', '2022-04-04 16:00:00')," +
+            "               (567890123, 'Eve', '0', 'Chengdu', 27, 0, 
13572468091, 'No. 654 Street, Chengdu', '2022-05-05 18:00:00')," +
+            "               (678901234, 'Frank', '0', 'Hangzhou', 32, 1, 
13467985213, 'No. 321 Street, Hangzhou', '2022-06-06 20:00:00')," +
+            "               (123456689, 'Alice', '1', 'Yaan', 25, 0, 
13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00')," +
+            "               (789012345, 'Grace', '0', 'Xian', 29, 0, 
13333333333, 'No. 222 Street, Xian', '2022-07-07 22:00:00');"
+    sql initTable1
+    sql initTableData1
+    checkTableData("${tbName1}", "${tbName2}", "special_area")
+    sql """ DROP TABLE IF EXISTS ${tbName1} """
+
+    //Test the duplicate model by adding a value column with TINYINT
+    sql initTable
+    sql initTableData
+    sql """ alter  table ${tbName1} add  column special_area TINYINT  DEFAULT 
"0" AFTER username """
+    insertSql = " insert into ${tbName1} values(123456689, 'Alice', 1, 'Yaan', 
25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); "
+    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" +
+            "              `special_area` TINYINT NOT NULL COMMENT \"特区\",\n" +
+            "              `city` VARCHAR(20) COMMENT \"用户所在城市\",\n" +
+            "              `age` SMALLINT COMMENT \"用户年龄\",\n" +
+            "              `sex` TINYINT COMMENT \"用户性别\",\n" +
+            "              `phone` LARGEINT COMMENT \"用户电话\",\n" +
+            "              `address` VARCHAR(500) COMMENT \"用户地址\",\n" +
+            "              `register_time` DATETIME COMMENT \"用户注册时间\"\n" +
+            "          )\n" +
+            "          DUPLICATE KEY(`user_id`, `username`)\n" +
+            "          DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
+            "          PROPERTIES (\n" +
+            "          \"replication_allocation\" = \"tag.location.default: 
1\"\n" +
+            "          );"
+
+    initTableData1 = "insert into ${tbName2} values(123456789, 'Alice', '0', 
'Beijing', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 
10:00:00')," +
+            "               (234567890, 'Bob', '0', 'Shanghai', 30, 1, 
13998765432, 'No. 456 Street, Shanghai', '2022-02-02 12:00:00')," +
+            "               (345678901, 'Carol', '0', 'Guangzhou', 28, 0, 
13724681357, 'No. 789 Street, Guangzhou', '2022-03-03 14:00:00')," +
+            "               (456789012, 'Dave', '0', 'Shenzhen', 35, 1, 
13680864279, 'No. 987 Street, Shenzhen', '2022-04-04 16:00:00')," +
+            "               (567890123, 'Eve', '0', 'Chengdu', 27, 0, 
13572468091, 'No. 654 Street, Chengdu', '2022-05-05 18:00:00')," +
+            "               (678901234, 'Frank', '0', 'Hangzhou', 32, 1, 
13467985213, 'No. 321 Street, Hangzhou', '2022-06-06 20:00:00')," +
+            "               (123456689, 'Alice', '1', 'Yaan', 25, 0, 
13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00')," +
+            "               (789012345, 'Grace', '0', 'Xian', 29, 0, 
13333333333, 'No. 222 Street, Xian', '2022-07-07 22:00:00');"
+    sql initTable1
+    sql initTableData1
+    checkTableData("${tbName1}", "${tbName2}", "special_area")
+    sql """ DROP TABLE IF EXISTS ${tbName1} """
+
+
+    //Test the duplicate model by adding a value column with SMALLINT
+    sql initTable
+    sql initTableData
+    sql """ alter  table ${tbName1} add  column area_num SMALLINT  DEFAULT 
"999" AFTER username """
+    insertSql = " insert into ${tbName1} values(123456689, 'Alice', 567, 
'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); "
+    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" +
+            "              `area_num` SMALLINT  NULL COMMENT \"地区编号\",\n" +
+            "              `city` VARCHAR(20) COMMENT \"用户所在城市\",\n" +
+            "              `age` SMALLINT COMMENT \"用户年龄\",\n" +
+            "              `sex` TINYINT COMMENT \"用户性别\",\n" +
+            "              `phone` LARGEINT COMMENT \"用户电话\",\n" +
+            "              `address` VARCHAR(500) COMMENT \"用户地址\",\n" +
+            "              `register_time` DATETIME COMMENT \"用户注册时间\"\n" +
+            "          )\n" +
+            "          DUPLICATE KEY(`user_id`, `username`)\n" +
+            "          DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
+            "          PROPERTIES (\n" +
+            "          \"replication_allocation\" = \"tag.location.default: 
1\"\n" +
+            "          );"
+
+    initTableData1 = "insert into ${tbName2} values(123456789, 'Alice', 999, 
'Beijing', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 
10:00:00')," +
+            "               (234567890, 'Bob', 999, 'Shanghai', 30, 1, 
13998765432, 'No. 456 Street, Shanghai', '2022-02-02 12:00:00')," +
+            "               (345678901, 'Carol', 999, 'Guangzhou', 28, 0, 
13724681357, 'No. 789 Street, Guangzhou', '2022-03-03 14:00:00')," +
+            "               (456789012, 'Dave', 999, 'Shenzhen', 35, 1, 
13680864279, 'No. 987 Street, Shenzhen', '2022-04-04 16:00:00')," +
+            "               (567890123, 'Eve', 999, 'Chengdu', 27, 0, 
13572468091, 'No. 654 Street, Chengdu', '2022-05-05 18:00:00')," +
+            "               (678901234, 'Frank', 999, 'Hangzhou', 32, 1, 
13467985213, 'No. 321 Street, Hangzhou', '2022-06-06 20:00:00')," +
+            "               (123456689, 'Alice', 567, 'Yaan', 25, 0, 
13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00')," +
+            "               (789012345, 'Grace', 999, 'Xian', 29, 0, 
13333333333, 'No. 222 Street, Xian', '2022-07-07 22:00:00');"
+    sql initTable1
+    sql initTableData1
+    checkTableData("${tbName1}", "${tbName2}", "area_num")
+    sql """ DROP TABLE IF EXISTS ${tbName1} """
+
+
+    //Test the duplicate model by adding a value column with INT
+    sql initTable
+    sql initTableData
+    sql """ alter  table ${tbName1} add  column house_price INT  DEFAULT "999" 
AFTER username """
+    insertSql = " insert into ${tbName1} values(123456689, 'Alice', 22536, 
'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); "
+    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" +
+            "              `house_price` SMALLINT  NULL COMMENT \"房子价格\",\n" +
+            "              `city` VARCHAR(20) COMMENT \"用户所在城市\",\n" +
+            "              `age` SMALLINT COMMENT \"用户年龄\",\n" +
+            "              `sex` TINYINT COMMENT \"用户性别\",\n" +
+            "              `phone` LARGEINT COMMENT \"用户电话\",\n" +
+            "              `address` VARCHAR(500) COMMENT \"用户地址\",\n" +
+            "              `register_time` DATETIME COMMENT \"用户注册时间\"\n" +
+            "          )\n" +
+            "          DUPLICATE KEY(`user_id`, `username`)\n" +
+            "          DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
+            "          PROPERTIES (\n" +
+            "          \"replication_allocation\" = \"tag.location.default: 
1\"\n" +
+            "          );"
+
+    initTableData1 = "insert into ${tbName2} values(123456789, 'Alice', 999, 
'Beijing', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 
10:00:00')," +
+            "               (234567890, 'Bob', 999, 'Shanghai', 30, 1, 
13998765432, 'No. 456 Street, Shanghai', '2022-02-02 12:00:00')," +
+            "               (345678901, 'Carol', 999, 'Guangzhou', 28, 0, 
13724681357, 'No. 789 Street, Guangzhou', '2022-03-03 14:00:00')," +
+            "               (456789012, 'Dave', 999, 'Shenzhen', 35, 1, 
13680864279, 'No. 987 Street, Shenzhen', '2022-04-04 16:00:00')," +
+            "               (567890123, 'Eve', 999, 'Chengdu', 27, 0, 
13572468091, 'No. 654 Street, Chengdu', '2022-05-05 18:00:00')," +
+            "               (678901234, 'Frank', 999, 'Hangzhou', 32, 1, 
13467985213, 'No. 321 Street, Hangzhou', '2022-06-06 20:00:00')," +
+            "               (123456689, 'Alice', 22536, 'Yaan', 25, 0, 
13812345678, 'No. 123 Street, Beijing', '2022-01-01 11:56:00')," +
+            "               (789012345, 'Grace', 999, 'Xian', 29, 0, 
13333333333, 'No. 222 Street, Xian', '2022-07-07 22:00:00');"
+    sql initTable1
+    sql initTableData1
+    checkTableData("${tbName1}", "${tbName2}", "house_price")
+    sql """ DROP TABLE IF EXISTS ${tbName1} """
+
+    //Test the duplicate model by adding a value column with BIGINT
+    sql initTable
+    sql initTableData
+    sql """ alter  table ${tbName1} add  column house_price1 BIGINT  DEFAULT 
"99999991" AFTER username """
+    insertSql = " insert into ${tbName1} values(123456689, 'Alice', 
88889494646, 'Yaan',  25, 0, 13812345678, 'No. 123 Street, Beijing', 
'2022-01-01 10:00:00'); "
+    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" +
+            "              `house_price1` BIGINT  NULL COMMENT \"房子价格\",\n" +
+            "              `city` VARCHAR(20) COMMENT \"用户所在城市\",\n" +
+            "              `age` SMALLINT COMMENT \"用户年龄\",\n" +
+            "              `sex` TINYINT COMMENT \"用户性别\",\n" +
+            "              `phone` LARGEINT COMMENT \"用户电话\",\n" +
+            "              `address` VARCHAR(500) COMMENT \"用户地址\",\n" +
+            "              `register_time` DATETIME COMMENT \"用户注册时间\"\n" +
+            "          )\n" +
+            "          DUPLICATE KEY(`user_id`, `username`)\n" +
+            "          DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
+            "          PROPERTIES (\n" +
+            "          \"replication_allocation\" = \"tag.location.default: 
1\"\n" +
+            "          );"
+
+    initTableData1 = "insert into ${tbName2} values(123456789, 'Alice', 
99999991, 'Beijing', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 
10:00:00')," +
+            "               (234567890, 'Bob', 99999991, 'Shanghai', 30, 1, 
13998765432, 'No. 456 Street, Shanghai', '2022-02-02 12:00:00')," +
+            "               (345678901, 'Carol', 99999991, 'Guangzhou', 28, 0, 
13724681357, 'No. 789 Street, Guangzhou', '2022-03-03 14:00:00')," +
+            "               (456789012, 'Dave', 99999991, 'Shenzhen', 35, 1, 
13680864279, 'No. 987 Street, Shenzhen', '2022-04-04 16:00:00')," +
+            "               (567890123, 'Eve', 99999991, 'Chengdu', 27, 0, 
13572468091, 'No. 654 Street, Chengdu', '2022-05-05 18:00:00')," +
+            "               (678901234, 'Frank', 99999991, 'Hangzhou', 32, 1, 
13467985213, 'No. 321 Street, Hangzhou', '2022-06-06 20:00:00')," +
+            "               (123456689, 'Alice', 88889494646, 'Yaan', 25, 0, 
13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00')," +
+            "               (789012345, 'Grace', 99999991, 'Xian', 29, 0, 
13333333333, 'No. 222 Street, Xian', '2022-07-07 22:00:00');"
+    sql initTable1
+    sql initTableData1
+    checkTableData("${tbName1}", "${tbName2}", "house_price1")
+    sql """ DROP TABLE IF EXISTS ${tbName1} """
+
+
+    //Test the duplicate model by adding a value column with LARGEINT
+    sql initTable
+    sql initTableData
+    sql """ alter  table ${tbName1} add  column car_price LARGEINT  DEFAULT 
"9999" AFTER username """
+    insertSql = " insert into ${tbName1} values(123456689, 'Alice', 555888555, 
'Yaan',  25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00');"
+    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" +
+            "              `car_price` LARGEINT  NULL COMMENT \"车价格\",\n" +
+            "              `city` VARCHAR(20) COMMENT \"用户所在城市\",\n" +
+            "              `age` SMALLINT COMMENT \"用户年龄\",\n" +
+            "              `sex` TINYINT COMMENT \"用户性别\",\n" +
+            "              `phone` LARGEINT COMMENT \"用户电话\",\n" +
+            "              `address` VARCHAR(500) COMMENT \"用户地址\",\n" +
+            "              `register_time` DATETIME COMMENT \"用户注册时间\"\n" +
+            "          )\n" +
+            "          DUPLICATE KEY(`user_id`, `username`)\n" +
+            "          DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
+            "          PROPERTIES (\n" +
+            "          \"replication_allocation\" = \"tag.location.default: 
1\"\n" +
+            "          );"
+
+    initTableData1 = "insert into ${tbName2} values(123456789, 'Alice', 9999, 
'Beijing', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 
10:00:00')," +
+            "               (234567890, 'Bob', 9999, 'Shanghai', 30, 1, 
13998765432, 'No. 456 Street, Shanghai', '2022-02-02 12:00:00')," +
+            "               (345678901, 'Carol', 9999, 'Guangzhou', 28, 0, 
13724681357, 'No. 789 Street, Guangzhou', '2022-03-03 14:00:00')," +
+            "               (456789012, 'Dave', 9999, 'Shenzhen', 35, 1, 
13680864279, 'No. 987 Street, Shenzhen', '2022-04-04 16:00:00')," +
+            "               (567890123, 'Eve', 9999, 'Chengdu', 27, 0, 
13572468091, 'No. 654 Street, Chengdu', '2022-05-05 18:00:00')," +
+            "               (678901234, 'Frank', 9999, 'Hangzhou', 32, 1, 
13467985213, 'No. 321 Street, Hangzhou', '2022-06-06 20:00:00')," +
+            "               (123456689, 'Alice', 555888555, 'Yaan', 25, 0, 
13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00')," +
+            "               (789012345, 'Grace', 9999, 'Xian', 29, 0, 
13333333333, 'No. 222 Street, Xian', '2022-07-07 22:00:00');"
+    sql initTable1
+    sql initTableData1
+    checkTableData("${tbName1}", "${tbName2}", "car_price")
+    sql """ DROP TABLE IF EXISTS ${tbName1} """
+
+
+    //TODO Test the duplicate model by adding a value column with FLOAT
+    errorMessage = "errCode = 2, detailMessage = Default value will loose 
precision: 166.68"
+    expectException({
+        sql initTable
+        sql initTableData
+        sql """ alter  table ${tbName1} add  column phone FLOAT  DEFAULT 
"166.68" AFTER username """
+        insertSql = " insert into ${tbName1} values(123456689, 'Alice', 
189.98, 'Yaan',  25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 
10:00:00');"
+        waitForSchemaChangeDone({
+            sql getTableStatusSql
+            time 60
+        }, insertSql, true, "${tbName1}")
+    }, errorMessage)
+
+
+    //Test the duplicate model by adding a value column with DOUBLE
+    sql initTable
+    sql initTableData
+    sql """ alter  table ${tbName1} add  column watch DOUBLE  DEFAULT 
"166.689" AFTER username """
+    insertSql = " insert into ${tbName1} values(123456689, 'Alice', 189.479, 
'Yaan',  25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); 
"
+    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" +
+            "              `watch` DOUBLE  NULL COMMENT \"车价格\",\n" +
+            "              `city` VARCHAR(20) COMMENT \"用户所在城市\",\n" +
+            "              `age` SMALLINT COMMENT \"用户年龄\",\n" +
+            "              `sex` TINYINT COMMENT \"用户性别\",\n" +
+            "              `phone` LARGEINT COMMENT \"用户电话\",\n" +
+            "              `address` VARCHAR(500) COMMENT \"用户地址\",\n" +
+            "              `register_time` DATETIME COMMENT \"用户注册时间\"\n" +
+            "          )\n" +
+            "          DUPLICATE KEY(`user_id`, `username`)\n" +
+            "          DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
+            "          PROPERTIES (\n" +
+            "          \"replication_allocation\" = \"tag.location.default: 
1\"\n" +
+            "          );"
+
+    initTableData1 = "insert into ${tbName2} values(123456789, 'Alice', 
166.689, 'Beijing', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 
10:00:00')," +
+            "               (234567890, 'Bob', 166.689, 'Shanghai', 30, 1, 
13998765432, 'No. 456 Street, Shanghai', '2022-02-02 12:00:00')," +
+            "               (345678901, 'Carol', 166.689, 'Guangzhou', 28, 0, 
13724681357, 'No. 789 Street, Guangzhou', '2022-03-03 14:00:00')," +
+            "               (456789012, 'Dave', 166.689, 'Shenzhen', 35, 1, 
13680864279, 'No. 987 Street, Shenzhen', '2022-04-04 16:00:00')," +
+            "               (567890123, 'Eve', 166.689, 'Chengdu', 27, 0, 
13572468091, 'No. 654 Street, Chengdu', '2022-05-05 18:00:00')," +
+            "               (678901234, 'Frank', 166.689, 'Hangzhou', 32, 1, 
13467985213, 'No. 321 Street, Hangzhou', '2022-06-06 20:00:00')," +
+            "               (123456689, 'Alice', 189.479, 'Yaan', 25, 0, 
13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00')," +
+            "               (789012345, 'Grace', 166.689, 'Xian', 29, 0, 
13333333333, 'No. 222 Street, Xian', '2022-07-07 22:00:00');"
+    sql initTable1
+    sql initTableData1
+    checkTableData("${tbName1}", "${tbName2}", "watch")
+    sql """ DROP TABLE IF EXISTS ${tbName1} """
+
+
+    //Test the duplicate model by adding a value column with DECIMAL
+    sql initTable
+    sql initTableData
+    sql """ alter  table ${tbName1} add  column watch DECIMAL(38,10)  DEFAULT 
"16899.6464689" AFTER username """
+    insertSql = " insert into ${tbName1} values(123456689, 'Alice', 
16499.6464689, 'Yaan',  25, 0, 13812345678, 'No. 123 Street, Beijing', 
'2022-01-01 10:00:00');"
+    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" +
+            "              `watch` DECIMAL(38,10)  NULL COMMENT \"车价格\",\n" +
+            "              `city` VARCHAR(20) COMMENT \"用户所在城市\",\n" +
+            "              `age` SMALLINT COMMENT \"用户年龄\",\n" +
+            "              `sex` TINYINT COMMENT \"用户性别\",\n" +
+            "              `phone` LARGEINT COMMENT \"用户电话\",\n" +
+            "              `address` VARCHAR(500) COMMENT \"用户地址\",\n" +
+            "              `register_time` DATETIME COMMENT \"用户注册时间\"\n" +
+            "          )\n" +
+            "          DUPLICATE KEY(`user_id`, `username`)\n" +
+            "          DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
+            "          PROPERTIES (\n" +
+            "          \"replication_allocation\" = \"tag.location.default: 
1\"\n" +
+            "          );"
+
+    initTableData1 = "insert into ${tbName2} values(123456789, 'Alice', 
16899.6464689, 'Beijing', 25, 0, 13812345678, 'No. 123 Street, Beijing', 
'2022-01-01 10:00:00')," +
+            "               (234567890, 'Bob', 16899.6464689, 'Shanghai', 30, 
1, 13998765432, 'No. 456 Street, Shanghai', '2022-02-02 12:00:00')," +
+            "               (345678901, 'Carol', 16899.6464689, 'Guangzhou', 
28, 0, 13724681357, 'No. 789 Street, Guangzhou', '2022-03-03 14:00:00')," +
+            "               (456789012, 'Dave', 16899.6464689, 'Shenzhen', 35, 
1, 13680864279, 'No. 987 Street, Shenzhen', '2022-04-04 16:00:00')," +
+            "               (567890123, 'Eve', 16899.6464689, 'Chengdu', 27, 
0, 13572468091, 'No. 654 Street, Chengdu', '2022-05-05 18:00:00')," +
+            "               (678901234, 'Frank', 16899.6464689, 'Hangzhou', 
32, 1, 13467985213, 'No. 321 Street, Hangzhou', '2022-06-06 20:00:00')," +
+            "               (123456689, 'Alice', 16499.6464689, 'Yaan', 25, 0, 
13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00')," +
+            "               (789012345, 'Grace', 16899.6464689, 'Xian', 29, 0, 
13333333333, 'No. 222 Street, Xian', '2022-07-07 22:00:00');"
+    sql initTable1
+    sql initTableData1
+    checkTableData("${tbName1}", "${tbName2}", "watch")
+    sql """ DROP TABLE IF EXISTS ${tbName1} """
+
+
+    //Test the duplicate model by adding a value column with DATE
+    sql initTable
+    sql initTableData
+    sql """ alter  table ${tbName1} add  column watch DATE  DEFAULT 
"1997-01-01" AFTER username """
+    insertSql = " insert into ${tbName1} values(123456689, 'Alice', 
\"2024-01-01\", 'Yaan',  25, 0, 13812345678, 'No. 123 Street, Beijing', 
'2022-01-01 10:00:00'); "
+    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" +
+            "              `watch` DATE  NULL COMMENT \"手表日期\",\n" +
+            "              `city` VARCHAR(20) COMMENT \"用户所在城市\",\n" +
+            "              `age` SMALLINT COMMENT \"用户年龄\",\n" +
+            "              `sex` TINYINT COMMENT \"用户性别\",\n" +
+            "              `phone` LARGEINT COMMENT \"用户电话\",\n" +
+            "              `address` VARCHAR(500) COMMENT \"用户地址\",\n" +
+            "              `register_time` DATETIME COMMENT \"用户注册时间\"\n" +
+            "          )\n" +
+            "          DUPLICATE KEY(`user_id`, `username`)\n" +
+            "          DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
+            "          PROPERTIES (\n" +
+            "          \"replication_allocation\" = \"tag.location.default: 
1\"\n" +
+            "          );"
+
+    initTableData1 = "insert into ${tbName2} values(123456789, 'Alice', 
'1997-01-01', 'Beijing', 25, 0, 13812345678, 'No. 123 Street, Beijing', 
'2022-01-01 10:00:00')," +
+            "               (234567890, 'Bob', '1997-01-01', 'Shanghai', 30, 
1, 13998765432, 'No. 456 Street, Shanghai', '2022-02-02 12:00:00')," +
+            "               (345678901, 'Carol', '1997-01-01', 'Guangzhou', 
28, 0, 13724681357, 'No. 789 Street, Guangzhou', '2022-03-03 14:00:00')," +
+            "               (456789012, 'Dave', '1997-01-01', 'Shenzhen', 35, 
1, 13680864279, 'No. 987 Street, Shenzhen', '2022-04-04 16:00:00')," +
+            "               (567890123, 'Eve', '1997-01-01', 'Chengdu', 27, 0, 
13572468091, 'No. 654 Street, Chengdu', '2022-05-05 18:00:00')," +
+            "               (678901234, 'Frank', '1997-01-01', 'Hangzhou', 32, 
1, 13467985213, 'No. 321 Street, Hangzhou', '2022-06-06 20:00:00')," +
+            "               (123456689, 'Alice', '2024-01-01', 'Yaan', 25, 0, 
13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00')," +
+            "               (789012345, 'Grace', '1997-01-01', 'Xian', 29, 0, 
13333333333, 'No. 222 Street, Xian', '2022-07-07 22:00:00');"
+    sql initTable1
+    sql initTableData1
+    checkTableData("${tbName1}", "${tbName2}", "watch")
+    sql """ DROP TABLE IF EXISTS ${tbName1} """
+
+
+    //Test the duplicate model by adding a value column with DATETIME
+    sql initTable
+    sql initTableData
+    sql """ alter  table ${tbName1} add  column anniversary DATETIME  DEFAULT 
"1997-01-01 00:00:00" AFTER username """
+    insertSql = " insert into ${tbName1} values(123456689, 'Alice', 
\"2024-01-04 09:00:00\", 'Yaan',  25, 0, 13812345678, 'No. 123 Street, 
Beijing', '2022-01-01 10:00:00'); "
+    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" +
+            "              `anniversary` DATETIME  NULL COMMENT \"手表日期\",\n" +
+            "              `city` VARCHAR(20) COMMENT \"用户所在城市\",\n" +
+            "              `age` SMALLINT COMMENT \"用户年龄\",\n" +
+            "              `sex` TINYINT COMMENT \"用户性别\",\n" +
+            "              `phone` LARGEINT COMMENT \"用户电话\",\n" +
+            "              `address` VARCHAR(500) COMMENT \"用户地址\",\n" +
+            "              `register_time` DATETIME COMMENT \"用户注册时间\"\n" +
+            "          )\n" +
+            "          DUPLICATE KEY(`user_id`, `username`)\n" +
+            "          DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
+            "          PROPERTIES (\n" +
+            "          \"replication_allocation\" = \"tag.location.default: 
1\"\n" +
+            "          );"
+
+    initTableData1 = "insert into ${tbName2} values(123456789, 'Alice', 
'1997-01-01 00:00:00', 'Beijing', 25, 0, 13812345678, 'No. 123 Street, 
Beijing', '2022-01-01 10:00:00')," +
+            "               (234567890, 'Bob', '1997-01-01 00:00:00', 
'Shanghai', 30, 1, 13998765432, 'No. 456 Street, Shanghai', '2022-02-02 
12:00:00')," +
+            "               (345678901, 'Carol', '1997-01-01 00:00:00', 
'Guangzhou', 28, 0, 13724681357, 'No. 789 Street, Guangzhou', '2022-03-03 
14:00:00')," +
+            "               (456789012, 'Dave', '1997-01-01 00:00:00', 
'Shenzhen', 35, 1, 13680864279, 'No. 987 Street, Shenzhen', '2022-04-04 
16:00:00')," +
+            "               (567890123, 'Eve', '1997-01-01 00:00:00', 
'Chengdu', 27, 0, 13572468091, 'No. 654 Street, Chengdu', '2022-05-05 
18:00:00')," +
+            "               (678901234, 'Frank', '1997-01-01 00:00:00', 
'Hangzhou', 32, 1, 13467985213, 'No. 321 Street, Hangzhou', '2022-06-06 
20:00:00')," +
+            "               (123456689, 'Alice', '2024-01-04 09:00:00', 
'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00')," 
+
+            "               (789012345, 'Grace', '1997-01-01 00:00:00', 
'Xian', 29, 0, 13333333333, 'No. 222 Street, Xian', '2022-07-07 22:00:00');"
+    sql initTable1
+    sql initTableData1
+    checkTableData("${tbName1}", "${tbName2}", "anniversary")
+    sql """ DROP TABLE IF EXISTS ${tbName1} """
+
+
+    //Test the duplicate model by adding a value column with CHAR
+    sql initTable
+    sql initTableData
+    sql """ alter  table ${tbName1} add  column teacher CHAR  DEFAULT "F" 
AFTER username """
+    insertSql = " insert into ${tbName1} values(123456689, 'Alice', 'T', 
'Yaan',  25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); 
 "
+    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" +
+            "              `teacher` CHAR  NULL COMMENT \"老师\",\n" +
+            "              `city` VARCHAR(20) COMMENT \"用户所在城市\",\n" +
+            "              `age` SMALLINT COMMENT \"用户年龄\",\n" +
+            "              `sex` TINYINT COMMENT \"用户性别\",\n" +
+            "              `phone` LARGEINT COMMENT \"用户电话\",\n" +
+            "              `address` VARCHAR(500) COMMENT \"用户地址\",\n" +
+            "              `register_time` DATETIME COMMENT \"用户注册时间\"\n" +
+            "          )\n" +
+            "          DUPLICATE KEY(`user_id`, `username`)\n" +
+            "          DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
+            "          PROPERTIES (\n" +
+            "          \"replication_allocation\" = \"tag.location.default: 
1\"\n" +
+            "          );"
+
+    initTableData1 = "insert into ${tbName2} values(123456789, 'Alice', 'F', 
'Beijing', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 
10:00:00')," +
+            "               (234567890, 'Bob', 'F', 'Shanghai', 30, 1, 
13998765432, 'No. 456 Street, Shanghai', '2022-02-02 12:00:00')," +
+            "               (345678901, 'Carol', 'F', 'Guangzhou', 28, 0, 
13724681357, 'No. 789 Street, Guangzhou', '2022-03-03 14:00:00')," +
+            "               (456789012, 'Dave', 'F', 'Shenzhen', 35, 1, 
13680864279, 'No. 987 Street, Shenzhen', '2022-04-04 16:00:00')," +
+            "               (567890123, 'Eve', 'F', 'Chengdu', 27, 0, 
13572468091, 'No. 654 Street, Chengdu', '2022-05-05 18:00:00')," +
+            "               (678901234, 'Frank', 'F', 'Hangzhou', 32, 1, 
13467985213, 'No. 321 Street, Hangzhou', '2022-06-06 20:00:00')," +
+            "               (123456689, 'Alice', 'T', 'Yaan', 25, 0, 
13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00')," +
+            "               (789012345, 'Grace', 'F', 'Xian', 29, 0, 
13333333333, 'No. 222 Street, Xian', '2022-07-07 22:00:00');"
+    sql initTable1
+    sql initTableData1
+    checkTableData("${tbName1}", "${tbName2}", "teacher")
+    sql """ DROP TABLE IF EXISTS ${tbName1} """
+
+
+    //Test the duplicate model by adding a value column with STRING
+    sql initTable
+    sql initTableData
+    sql """ alter  table ${tbName1} add  column comment STRING  DEFAULT 
"我是小说家" AFTER username """
+    insertSql = " insert into ${tbName1} values(123456689, 'Alice', '我是侦探家', 
'Yaan',  25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); 
 "
+    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" +
+            "              `comment` STRING  NULL COMMENT \"comment\",\n" +
+            "              `city` VARCHAR(20) COMMENT \"用户所在城市\",\n" +
+            "              `age` SMALLINT COMMENT \"用户年龄\",\n" +
+            "              `sex` TINYINT COMMENT \"用户性别\",\n" +
+            "              `phone` LARGEINT COMMENT \"用户电话\",\n" +
+            "              `address` VARCHAR(500) COMMENT \"用户地址\",\n" +
+            "              `register_time` DATETIME COMMENT \"用户注册时间\"\n" +
+            "          )\n" +
+            "          DUPLICATE KEY(`user_id`, `username`)\n" +
+            "          DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
+            "          PROPERTIES (\n" +
+            "          \"replication_allocation\" = \"tag.location.default: 
1\"\n" +
+            "          );"
+
+    initTableData1 = "insert into ${tbName2} values(123456789, 'Alice', 
'我是小说家', 'Beijing', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 
10:00:00')," +
+            "               (234567890, 'Bob', '我是小说家', 'Shanghai', 30, 1, 
13998765432, 'No. 456 Street, Shanghai', '2022-02-02 12:00:00')," +
+            "               (345678901, 'Carol', '我是小说家', 'Guangzhou', 28, 0, 
13724681357, 'No. 789 Street, Guangzhou', '2022-03-03 14:00:00')," +
+            "               (456789012, 'Dave', '我是小说家', 'Shenzhen', 35, 1, 
13680864279, 'No. 987 Street, Shenzhen', '2022-04-04 16:00:00')," +
+            "               (567890123, 'Eve', '我是小说家', 'Chengdu', 27, 0, 
13572468091, 'No. 654 Street, Chengdu', '2022-05-05 18:00:00')," +
+            "               (678901234, 'Frank', '我是小说家', 'Hangzhou', 32, 1, 
13467985213, 'No. 321 Street, Hangzhou', '2022-06-06 20:00:00')," +
+            "               (123456689, 'Alice', '我是侦探家', 'Yaan', 25, 0, 
13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00')," +
+            "               (789012345, 'Grace', '我是小说家', 'Xian', 29, 0, 
13333333333, 'No. 222 Street, Xian', '2022-07-07 22:00:00');"
+    sql initTable1
+    sql initTableData1
+    checkTableData("${tbName1}", "${tbName2}", "comment")
+    sql """ DROP TABLE IF EXISTS ${tbName1} """
+
+
+    //TODO Test the duplicate model by adding a value column with HLL
+    errorMessage = "errCode = 2, detailMessage = Can not assign aggregation 
method on column in Unique data model table: comment"
+    expectException({
+        sql initTable
+        sql initTableData
+        sql """ alter  table ${tbName1} add  column comment HLL HLL_UNION   
AFTER username """
+        insertSql = " insert into ${tbName1} values(123456689, 'Alice', '2', 
'Yaan',  25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); 
 "
+        waitForSchemaChangeDone({
+            sql getTableStatusSql
+            time 60
+        }, insertSql, true, "${tbName1}")
+    }, errorMessage)
+
+
+    //TODO Test the duplicate model by adding a value column with bitmap
+    errorMessage = "errCode = 2, detailMessage = Can not assign aggregation 
method on column in Unique data model table: device_id"
+    expectException({
+        sql initTable
+        sql initTableData
+        sql """ alter  table ${tbName1} add  column device_id   bitmap 
BITMAP_UNION  AFTER username """
+        insertSql = " insert into ${tbName1} values(123456689, 'Alice', 
to_bitmap(243), 'Yaan',  25, 0, 13812345678, 'No. 123 Street, Beijing', 
'2022-01-01 10:00:00');  "
+        waitForSchemaChangeDone({
+            sql getTableStatusSql
+            time 60
+        }, insertSql, true, "${tbName1}")
+
+    }, errorMessage)
+
+
+    //Test the duplicate model by adding a value column with Map
+    sql initTable
+    sql initTableData
+    sql """ alter  table ${tbName1} add  column m   Map<STRING, INT>   AFTER 
username """
+    insertSql = " insert into ${tbName1} values(123456689, 'Alice', {'a': 100, 
'b': 200}, 'Yaan',  25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 
10:00:00');  "
+    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" +
+            "              `m` Map<STRING, INT>  NULL COMMENT \"map\",\n" +
+            "              `city` VARCHAR(20) COMMENT \"用户所在城市\",\n" +
+            "              `age` SMALLINT COMMENT \"用户年龄\",\n" +
+            "              `sex` TINYINT COMMENT \"用户性别\",\n" +
+            "              `phone` LARGEINT COMMENT \"用户电话\",\n" +
+            "              `address` VARCHAR(500) COMMENT \"用户地址\",\n" +
+            "              `register_time` DATETIME COMMENT \"用户注册时间\"\n" +
+            "          )\n" +
+            "          DUPLICATE KEY(`user_id`, `username`)\n" +
+            "          DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
+            "          PROPERTIES (\n" +
+            "          \"replication_allocation\" = \"tag.location.default: 
1\"\n" +
+            "          );"
+
+    initTableData1 = "insert into ${tbName2} values(123456789, 'Alice', null, 
'Beijing', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 
10:00:00')," +
+            "               (234567890, 'Bob', null, 'Shanghai', 30, 1, 
13998765432, 'No. 456 Street, Shanghai', '2022-02-02 12:00:00')," +
+            "               (345678901, 'Carol', null, 'Guangzhou', 28, 0, 
13724681357, 'No. 789 Street, Guangzhou', '2022-03-03 14:00:00')," +
+            "               (456789012, 'Dave', null, 'Shenzhen', 35, 1, 
13680864279, 'No. 987 Street, Shenzhen', '2022-04-04 16:00:00')," +
+            "               (567890123, 'Eve', null, 'Chengdu', 27, 0, 
13572468091, 'No. 654 Street, Chengdu', '2022-05-05 18:00:00')," +
+            "               (678901234, 'Frank', null, 'Hangzhou', 32, 1, 
13467985213, 'No. 321 Street, Hangzhou', '2022-06-06 20:00:00')," +
+            "               (123456689, 'Alice', {'a': 100, 'b': 200}, 'Yaan', 
25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00')," +
+            "               (789012345, 'Grace', null, 'Xian', 29, 0, 
13333333333, 'No. 222 Street, Xian', '2022-07-07 22:00:00');"
+    sql initTable1
+    sql initTableData1
+    checkTableData("${tbName1}", "${tbName2}", "m", "user_id")
+    sql """ DROP TABLE IF EXISTS ${tbName1} """
+
+
+    //Test the duplicate model by adding a value column with JSON
+    sql initTable
+    sql initTableData
+    sql """ alter  table ${tbName1} add  column   j  JSON   AFTER username """
+    insertSql = " insert into ${tbName1} values(123456689, 'Alice', 
'{\"k1\":\"v31\", \"k2\": 300}', 'Yaan',  25, 0, 13812345678, 'No. 123 Street, 
Beijing', '2022-01-01 10:00:00'); "
+    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" +
+            "              `j` JSON  NULL COMMENT \"map\",\n" +
+            "              `city` VARCHAR(20) COMMENT \"用户所在城市\",\n" +
+            "              `age` SMALLINT COMMENT \"用户年龄\",\n" +
+            "              `sex` TINYINT COMMENT \"用户性别\",\n" +
+            "              `phone` LARGEINT COMMENT \"用户电话\",\n" +
+            "              `address` VARCHAR(500) COMMENT \"用户地址\",\n" +
+            "              `register_time` DATETIME COMMENT \"用户注册时间\"\n" +
+            "          )\n" +
+            "          DUPLICATE KEY(`user_id`, `username`)\n" +
+            "          DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
+            "          PROPERTIES (\n" +
+            "          \"replication_allocation\" = \"tag.location.default: 
1\"\n" +
+            "          );"
+
+    initTableData1 = "insert into ${tbName2} values(123456789, 'Alice', null, 
'Beijing', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 
10:00:00')," +
+            "               (234567890, 'Bob', null, 'Shanghai', 30, 1, 
13998765432, 'No. 456 Street, Shanghai', '2022-02-02 12:00:00')," +
+            "               (345678901, 'Carol', null, 'Guangzhou', 28, 0, 
13724681357, 'No. 789 Street, Guangzhou', '2022-03-03 14:00:00')," +
+            "               (456789012, 'Dave', null, 'Shenzhen', 35, 1, 
13680864279, 'No. 987 Street, Shenzhen', '2022-04-04 16:00:00')," +
+            "               (567890123, 'Eve', null, 'Chengdu', 27, 0, 
13572468091, 'No. 654 Street, Chengdu', '2022-05-05 18:00:00')," +
+            "               (678901234, 'Frank', null, 'Hangzhou', 32, 1, 
13467985213, 'No. 321 Street, Hangzhou', '2022-06-06 20:00:00')," +
+            "               (123456689, 'Alice', '{\"k1\":\"v31\", \"k2\": 
300}', 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 
10:00:00')," +
+            "               (789012345, 'Grace', null, 'Xian', 29, 0, 
13333333333, 'No. 222 Street, Xian', '2022-07-07 22:00:00');"
+    sql initTable1
+    sql initTableData1
+    checkTableData("${tbName1}", "${tbName2}", "j", "user_id")
+    sql """ DROP TABLE IF EXISTS ${tbName1} """
+
+
+    //Test the duplicate model by adding a value column with ARRAY
+    sql initTable
+    sql initTableData
+    sql """ alter  table ${tbName1} add  column   c_array  ARRAY<int(11)>   
AFTER username """
+    insertSql = " insert into ${tbName1} values(123456689, 'Alice', [6,7,8], 
'Yaan',  25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); 
"
+    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" +
+            "              `c_array` ARRAY<int(11)>  NULL COMMENT \"map\",\n" +
+            "              `city` VARCHAR(20) COMMENT \"用户所在城市\",\n" +
+            "              `age` SMALLINT COMMENT \"用户年龄\",\n" +
+            "              `sex` TINYINT COMMENT \"用户性别\",\n" +
+            "              `phone` LARGEINT COMMENT \"用户电话\",\n" +
+            "              `address` VARCHAR(500) COMMENT \"用户地址\",\n" +
+            "              `register_time` DATETIME COMMENT \"用户注册时间\"\n" +
+            "          )\n" +
+            "          DUPLICATE KEY(`user_id`, `username`)\n" +
+            "          DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
+            "          PROPERTIES (\n" +
+            "          \"replication_allocation\" = \"tag.location.default: 
1\"\n" +
+            "          );"
+
+    initTableData1 = "insert into ${tbName2} values(123456789, 'Alice', null, 
'Beijing', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 
10:00:00')," +
+            "               (234567890, 'Bob', null, 'Shanghai', 30, 1, 
13998765432, 'No. 456 Street, Shanghai', '2022-02-02 12:00:00')," +
+            "               (345678901, 'Carol', null, 'Guangzhou', 28, 0, 
13724681357, 'No. 789 Street, Guangzhou', '2022-03-03 14:00:00')," +
+            "               (456789012, 'Dave', null, 'Shenzhen', 35, 1, 
13680864279, 'No. 987 Street, Shenzhen', '2022-04-04 16:00:00')," +
+            "               (567890123, 'Eve', null, 'Chengdu', 27, 0, 
13572468091, 'No. 654 Street, Chengdu', '2022-05-05 18:00:00')," +
+            "               (678901234, 'Frank', null, 'Hangzhou', 32, 1, 
13467985213, 'No. 321 Street, Hangzhou', '2022-06-06 20:00:00')," +
+            "               (123456689, 'Alice', [6,7,8], 'Yaan', 25, 0, 
13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00')," +
+            "               (789012345, 'Grace', null, 'Xian', 29, 0, 
13333333333, 'No. 222 Street, Xian', '2022-07-07 22:00:00');"
+    sql initTable1
+    sql initTableData1
+    checkTableData("${tbName1}", "${tbName2}", "c_array", "user_id")
+    sql """ DROP TABLE IF EXISTS ${tbName1} """
+
+
+    //Test the duplicate model by adding a value column with STRUCT
+    errorMessage = "errCode = 2, detailMessage = can not cast from origin type 
ARRAY<TINYINT> to target type=STRUCT<StructField ( name=s_id, dataType=INT, 
nullable=true ),StructField ( name=s_name, dataType=TEXT, nullable=true 
),StructField ( name=s_address, dataType=TEXT, nullable=true )>"
+    expectException({
+        sql initTable
+        sql initTableData
+        sql """ alter  table ${tbName1} add  column  s_info  
STRUCT<s_id:int(11), s_name:string, s_address:string>   AFTER username """
+        insertSql = " insert into ${tbName1} values(123456689, 'Alice', 
[6,7,8], 'Yaan',  25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 
10:00:00'); "
+        waitForSchemaChangeDone({
+            sql getTableStatusSql
+            time 60
+        }, insertSql, false, "${tbName1}")
+    }, errorMessage)
+
+  
+}


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

Reply via email to