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 58037aa4eda [enhancement](test) unique model by modify a key type from SMALLINT to other type (#32033) 58037aa4eda is described below commit 58037aa4edaab579abdb11ec2993ca99f6c52aba Author: kkop <45192870+cjj2...@users.noreply.github.com> AuthorDate: Thu Mar 21 10:21:14 2024 +0800 [enhancement](test) unique model by modify a key type from SMALLINT to other type (#32033) --- .../test_unique_model_schema_key_change.out | 40 ++ .../test_unique_model_schema_key_change.groovy | 655 ++++++++++++++------- 2 files changed, 488 insertions(+), 207 deletions(-) diff --git a/regression-test/data/schema_change_p0/test_unique_model_schema_key_change.out b/regression-test/data/schema_change_p0/test_unique_model_schema_key_change.out index 994426576ad..c60779a5e6a 100644 --- a/regression-test/data/schema_change_p0/test_unique_model_schema_key_change.out +++ b/regression-test/data/schema_change_p0/test_unique_model_schema_key_change.out @@ -159,3 +159,43 @@ 789012345 Grace 1 Xian 29 0 13333333333 No. 222 Street, Xian 2022-07-07T22:00 123456689 Alice asd Yaan 25 0 13812345678 No. 123 Street, Beijing 2022-01-01T10:00 +-- ! -- +123456789 Alice 13243 Beijing 25 0 13812345678 No. 123 Street, Beijing 2022-01-01T10:00 +234567890 Bob 13445 Shanghai 30 1 13998765432 No. 456 Street, Shanghai 2022-02-02T12:00 +345678901 Carol 15768 Guangzhou 28 0 13724681357 No. 789 Street, Guangzhou 2022-03-03T14:00 +456789012 Dave 14243 Shenzhen 35 1 13680864279 No. 987 Street, Shenzhen 2022-04-04T16:00 +567890123 Eve 10768 Chengdu 27 0 13572468091 No. 654 Street, Chengdu 2022-05-05T18:00 +678901234 Frank 14325 Hangzhou 32 1 13467985213 No. 321 Street, Hangzhou 2022-06-06T20:00 +789012345 Grace 15686 Xian 29 0 13333333333 No. 222 Street, Xian 2022-07-07T22:00 +123456689 Alice 3 Yaan 25 0 13812345678 No. 123 Street, Beijing 2022-01-01T10:00 + +-- ! -- +123456789 Alice 13243 Beijing 25 0 13812345678 No. 123 Street, Beijing 2022-01-01T10:00 +234567890 Bob 13445 Shanghai 30 1 13998765432 No. 456 Street, Shanghai 2022-02-02T12:00 +345678901 Carol 15768 Guangzhou 28 0 13724681357 No. 789 Street, Guangzhou 2022-03-03T14:00 +456789012 Dave 14243 Shenzhen 35 1 13680864279 No. 987 Street, Shenzhen 2022-04-04T16:00 +567890123 Eve 10768 Chengdu 27 0 13572468091 No. 654 Street, Chengdu 2022-05-05T18:00 +678901234 Frank 14325 Hangzhou 32 1 13467985213 No. 321 Street, Hangzhou 2022-06-06T20:00 +789012345 Grace 15686 Xian 29 0 13333333333 No. 222 Street, Xian 2022-07-07T22:00 +123456689 Alice 4 Yaan 25 0 13812345678 No. 123 Street, Beijing 2022-01-01T10:00 + +-- ! -- +123456789 Alice 13243 Beijing 25 0 13812345678 No. 123 Street, Beijing 2022-01-01T10:00 +234567890 Bob 13445 Shanghai 30 1 13998765432 No. 456 Street, Shanghai 2022-02-02T12:00 +345678901 Carol 15768 Guangzhou 28 0 13724681357 No. 789 Street, Guangzhou 2022-03-03T14:00 +456789012 Dave 14243 Shenzhen 35 1 13680864279 No. 987 Street, Shenzhen 2022-04-04T16:00 +567890123 Eve 10768 Chengdu 27 0 13572468091 No. 654 Street, Chengdu 2022-05-05T18:00 +678901234 Frank 14325 Hangzhou 32 1 13467985213 No. 321 Street, Hangzhou 2022-06-06T20:00 +789012345 Grace 15686 Xian 29 0 13333333333 No. 222 Street, Xian 2022-07-07T22:00 +123456689 Alice 5 Yaan 25 0 13812345678 No. 123 Street, Beijing 2022-01-01T10:00 + +-- ! -- +123456789 Alice 13243 Beijing 25 0 13812345678 No. 123 Street, Beijing 2022-01-01T10:00 +234567890 Bob 13445 Shanghai 30 1 13998765432 No. 456 Street, Shanghai 2022-02-02T12:00 +345678901 Carol 15768 Guangzhou 28 0 13724681357 No. 789 Street, Guangzhou 2022-03-03T14:00 +456789012 Dave 14243 Shenzhen 35 1 13680864279 No. 987 Street, Shenzhen 2022-04-04T16:00 +567890123 Eve 10768 Chengdu 27 0 13572468091 No. 654 Street, Chengdu 2022-05-05T18:00 +678901234 Frank 14325 Hangzhou 32 1 13467985213 No. 321 Street, Hangzhou 2022-06-06T20:00 +789012345 Grace 15686 Xian 29 0 13333333333 No. 222 Street, Xian 2022-07-07T22:00 +123456689 Alice asd Yaan 25 0 13812345678 No. 123 Street, Beijing 2022-01-01T10:00 + diff --git a/regression-test/suites/schema_change_p0/test_unique_model_schema_key_change.groovy b/regression-test/suites/schema_change_p0/test_unique_model_schema_key_change.groovy index c3f54fd04e4..fb6a6947dd2 100644 --- a/regression-test/suites/schema_change_p0/test_unique_model_schema_key_change.groovy +++ b/regression-test/suites/schema_change_p0/test_unique_model_schema_key_change.groovy @@ -49,9 +49,10 @@ suite("test_unique_model_schema_key_change","p0") { //Test the unique model by adding a key column with VARCHAR sql initTable sql initTableData - sql """ alter table ${tbName} add column province VARCHAR(20) KEY DEFAULT "广东省" AFTER username """ def insertSql = "insert into ${tbName} values(123456689, 'Alice', '四川省', 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00');" def getTableStatusSql = " SHOW ALTER TABLE COLUMN WHERE IndexName='${tbName}' ORDER BY createtime DESC LIMIT 1 " + def errorMessage + sql """ alter table ${tbName} add column province VARCHAR(20) KEY DEFAULT "广东省" AFTER username """ waitForSchemaChangeDone({ sql getTableStatusSql time 60 @@ -129,28 +130,34 @@ suite("test_unique_model_schema_key_change","p0") { //TODO Test the unique model by adding a key column with FLOAT - //java.sql.SQLException: errCode = 2, detailMessage = Float or double can not used as a key, use decimal instead. -/* sql initTable - sql initTableData - sql """ alter table ${tbName} add column phone FLOAT KEY DEFAULT "166.6" AFTER username """ - insertSql = " insert into ${tbName} values(123456689, 'Alice', 189.9, 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00');" - waitForSchemaChangeDone({ - sql getTableStatusSql - time 60 - }, insertSql, true,"${tbName}")*/ + errorMessage="errCode = 2, detailMessage = Float or double can not used as a key, use decimal instead." + expectException({ + sql initTable + sql initTableData + sql """ alter table ${tbName} add column phone FLOAT KEY DEFAULT "166.6" AFTER username """ + insertSql = " insert into ${tbName} values(123456689, 'Alice', 189.9, 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00');" + waitForSchemaChangeDone({ + sql getTableStatusSql + time 60 + }, insertSql, true,"${tbName}") + },errorMessage) + //TODO Test the unique model by adding a key column with DOUBLE - //java.sql.SQLException: errCode = 2, detailMessage = Float or double can not used as a key, use decimal instead. -/* sql initTable - sql initTableData - sql """ alter table ${tbName} add column watch DOUBLE KEY DEFAULT "166.689" AFTER username """ - insertSql = " insert into ${tbName} 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, true,"${tbName}")*/ + errorMessage="errCode = 2, detailMessage = Float or double can not used as a key, use decimal instead." + expectException({ + sql initTable + sql initTableData + sql """ alter table ${tbName} add column watch DOUBLE KEY DEFAULT "166.689" AFTER username """ + insertSql = " insert into ${tbName} 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, true,"${tbName}") + + },errorMessage) @@ -205,53 +212,64 @@ suite("test_unique_model_schema_key_change","p0") { //TODO Test the unique model by adding a key column with STRING - //java.sql.SQLException: errCode = 2, detailMessage = String Type should not be used in key column[comment]. -/* sql initTable - sql initTableData - sql """ alter table ${tbName} add column comment STRING KEY DEFAULT "我是小说家" AFTER username """ - insertSql = " insert into ${tbName} values(123456689, 'Alice', '我是侦探家', 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " - waitForSchemaChangeDone({ - sql getTableStatusSql - time 60 - }, insertSql, true,"${tbName}")*/ + errorMessage="errCode = 2, detailMessage = String Type should not be used in key column[comment]." + expectException({ + sql initTable + sql initTableData + sql """ alter table ${tbName} add column comment STRING KEY DEFAULT "我是小说家" AFTER username """ + insertSql = " insert into ${tbName} values(123456689, 'Alice', '我是侦探家', 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " + waitForSchemaChangeDone({ + sql getTableStatusSql + time 60 + }, insertSql, true,"${tbName}")},errorMessage) + //TODO Test the unique model by adding a key column with bitmap - //java.sql.SQLException: errCode = 2, detailMessage = Key column can not set complex type:device_id -/* sql initTable - sql initTableData - sql """ alter table ${tbName} add column device_id bitmap KEY DEFAULT "to_bitmap(243)" AFTER username """ - insertSql = " insert into ${tbName} 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,"${tbName}")*/ + errorMessage="errCode = 2, detailMessage = Key column can not set complex type:device_id" + expectException({ + sql initTable + sql initTableData + sql """ alter table ${tbName} add column device_id bitmap KEY DEFAULT "to_bitmap(243)" AFTER username """ + insertSql = " insert into ${tbName} 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,"${tbName}") + + },errorMessage) //TODO Test the unique model by adding a key column with Map - //java.sql.SQLException: errCode = 2, detailMessage = Map can only be used in the non-key column of the duplicate table at present. -/* sql initTable - sql initTableData - sql """ alter table ${tbName} add column m Map<STRING, INT> KEY DEFAULT "{'a': 100, 'b': 200}" AFTER username """ - insertSql = " insert into ${tbName} 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, true,"${tbName}")*/ + errorMessage="errCode = 2, detailMessage = Map can only be used in the non-key column of the duplicate table at present." + expectException({ + sql initTable + sql initTableData + sql """ alter table ${tbName} add column m Map<STRING, INT> KEY DEFAULT "{'a': 100, 'b': 200}" AFTER username """ + insertSql = " insert into ${tbName} 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, true,"${tbName}") + },errorMessage) + //TODO Test the unique model by adding a key column with JSON - //java.sql.SQLException: errCode = 2, detailMessage = JSONB type should not be used in key column[j]. -/* sql initTable - sql initTableData - sql """ alter table ${tbName} add column j JSON KEY DEFAULT "{'a': 100, 'b': 200}" AFTER username """ - insertSql = " insert into ${tbName} 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, true,"${tbName}")*/ + errorMessage="errCode = 2, detailMessage = JSONB type should not be used in key column[j]." + expectException({ + sql initTable + sql initTableData + sql """ alter table ${tbName} add column j JSON KEY DEFAULT "{'a': 100, 'b': 200}" AFTER username """ + insertSql = " insert into ${tbName} 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, true,"${tbName}") + },errorMessage) + @@ -259,7 +277,7 @@ suite("test_unique_model_schema_key_change","p0") { * Test the unique model by modify a value type */ - + sql """ DROP TABLE IF EXISTS ${tbName} """ initTable = " CREATE TABLE IF NOT EXISTS ${tbName}\n" + " (\n" + " `user_id` LARGEINT NOT NULL COMMENT \"用户id\",\n" + @@ -287,112 +305,139 @@ suite("test_unique_model_schema_key_change","p0") { " (678901234, 'Frank', 1, 'Hangzhou', 32, 1, 13467985213, 'No. 321 Street, Hangzhou', '2022-06-06 20:00:00')," + " (789012345, 'Grace', 0, 'Xian', 29, 0, 13333333333, 'No. 222 Street, Xian', '2022-07-07 22:00:00');" - //Test the unique model by modify a key type from BOOLEAN to TINYINT - //TODO java.sql.SQLException: errCode = 2, detailMessage = Can not change BOOLEAN to TINYINT -/* sql initTable - sql initTableData - sql """ alter table ${tbName} MODIFY column is_teacher TINYINT KEY DEFAULT "0" """ - insertSql = "insert into ${tbName} values(123456689, 'Alice', 1, 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " - waitForSchemaChangeDone({ - sql getTableStatusSql - time 60 - }, insertSql, true,"${tbName}")*/ - - //Test the unique model by modify a key type from BOOLEAN to SMALLINT - //TODO java.sql.SQLException: errCode = 2, detailMessage = Can not change BOOLEAN to SMALLINT -/* sql initTable - sql initTableData - sql """ alter table ${tbName} MODIFY column is_teacher SMALLINT KEY DEFAULT "0" """ - insertSql = "insert into ${tbName} values(123456689, 'Alice', 1, 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " - waitForSchemaChangeDone({ - sql getTableStatusSql - time 60 - }, insertSql, true,"${tbName}")*/ - - //Test the unique model by modify a key type from BOOLEAN to INT - //TODO java.sql.SQLException: errCode = 2, detailMessage = Can not change BOOLEAN to INT -/* sql initTable - sql initTableData - sql """ alter table ${tbName} MODIFY column is_teacher INT KEY DEFAULT "0" """ - insertSql = "insert into ${tbName} values(123456689, 'Alice', 1, 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " - waitForSchemaChangeDone({ - sql getTableStatusSql - time 60 - }, insertSql, true,"${tbName}")*/ - - - //Test the unique model by modify a key type from BOOLEAN to BIGINT - //TODO java.sql.SQLException: errCode = 2, detailMessage = Can not change BOOLEAN to BIGINT -/* sql initTable - sql initTableData - sql """ alter table ${tbName} MODIFY column is_teacher BIGINT KEY DEFAULT "0" """ - insertSql = "insert into ${tbName} values(123456689, 'Alice', 1, 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " - waitForSchemaChangeDone({ - sql getTableStatusSql - time 60 - }, insertSql, true,"${tbName}")*/ - - - //Test the unique model by modify a key type from BOOLEAN to FLOAT - //TODO Float or double can not used as a key, use decimal instead -/* sql initTable - sql initTableData - sql """ alter table ${tbName} MODIFY column is_teacher FLOAT KEY DEFAULT "0" """ - insertSql = "insert into ${tbName} values(123456689, 'Alice', 1.0, 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " - waitForSchemaChangeDone({ - sql getTableStatusSql - time 60 - }, insertSql, true,"${tbName}")*/ - - - //Test the unique model by modify a key type from BOOLEAN to DECIMAL - //TODO java.sql.SQLException: errCode = 2, detailMessage = Can not change BOOLEAN to DECIMAL32 -/* sql initTable - sql initTableData - sql """ alter table ${tbName} MODIFY column is_teacher DECIMAL KEY DEFAULT "0" """ - insertSql = "insert into ${tbName} values(123456689, 'Alice', 1.0, 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " - waitForSchemaChangeDone({ - sql getTableStatusSql - time 60 - }, insertSql, true,"${tbName}")*/ - - //Test the unique model by modify a key type from BOOLEAN to CHAR - //TODO java.sql.SQLException: errCode = 2, detailMessage = Can not change BOOLEAN to CHAR -/* sql initTable - sql initTableData - sql """ alter table ${tbName} MODIFY column is_teacher CHAR KEY DEFAULT "0" """ - insertSql = "insert into ${tbName} values(123456689, 'Alice', '1', 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " - waitForSchemaChangeDone({ - sql getTableStatusSql - time 60 - }, insertSql, true,"${tbName}")*/ - - //Test the unique model by modify a key type from BOOLEAN to STRING - //TODO java.sql.SQLException: errCode = 2, detailMessage = String Type should not be used in key column[is_teacher]. -/* sql initTable - sql initTableData - sql """ alter table ${tbName} MODIFY column is_teacher STRING KEY DEFAULT "0" """ - insertSql = "insert into ${tbName} values(123456689, 'Alice', '1', 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " - waitForSchemaChangeDone({ - sql getTableStatusSql - time 60 - }, insertSql, true,"${tbName}")*/ + //TODO Test the unique model by modify a key type from BOOLEAN to TINYINT + errorMessage="errCode = 2, detailMessage = Can not change BOOLEAN to TINYINT" + expectException({ + sql initTable + sql initTableData + sql """ alter table ${tbName} MODIFY column is_teacher TINYINT KEY DEFAULT "0" """ + insertSql = "insert into ${tbName} values(123456689, 'Alice', 1, 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " + waitForSchemaChangeDone({ + sql getTableStatusSql + time 60 + }, insertSql, true,"${tbName}") + },errorMessage) + + + //TODO Test the unique model by modify a key type from BOOLEAN to SMALLINT + errorMessage="errCode = 2, detailMessage = Can not change BOOLEAN to SMALLINT" + expectException({ + sql initTable + sql initTableData + sql """ alter table ${tbName} MODIFY column is_teacher SMALLINT KEY DEFAULT "0" """ + insertSql = "insert into ${tbName} values(123456689, 'Alice', 1, 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " + waitForSchemaChangeDone({ + sql getTableStatusSql + time 60 + }, insertSql, true,"${tbName}") + },errorMessage) + + + //TODO Test the unique model by modify a key type from BOOLEAN to INT + errorMessage="errCode = 2, detailMessage = Can not change BOOLEAN to INT" + expectException({ + sql initTable + sql initTableData + sql """ alter table ${tbName} MODIFY column is_teacher INT KEY DEFAULT "0" """ + insertSql = "insert into ${tbName} values(123456689, 'Alice', 1, 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " + waitForSchemaChangeDone({ + sql getTableStatusSql + time 60 + }, insertSql, true,"${tbName}") + },errorMessage) + + + + //TODO Test the unique model by modify a key type from BOOLEAN to BIGINT + errorMessage="errCode = 2, detailMessage = Can not change BOOLEAN to BIGINT" + expectException({ + sql initTable + sql initTableData + sql """ alter table ${tbName} MODIFY column is_teacher BIGINT KEY DEFAULT "0" """ + insertSql = "insert into ${tbName} values(123456689, 'Alice', 1, 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " + waitForSchemaChangeDone({ + sql getTableStatusSql + time 60 + }, insertSql, true,"${tbName}") + + },errorMessage) + + + //TODO Test the unique model by modify a key type from BOOLEAN to FLOAT + errorMessage="errCode = 2, detailMessage = Float or double can not used as a key, use decimal instead." + expectException({ + sql initTable + sql initTableData + sql """ alter table ${tbName} MODIFY column is_teacher FLOAT KEY DEFAULT "0" """ + insertSql = "insert into ${tbName} values(123456689, 'Alice', 1.0, 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " + waitForSchemaChangeDone({ + sql getTableStatusSql + time 60 + }, insertSql, true,"${tbName}") + },errorMessage) + + + + //TODO Test the unique model by modify a key type from BOOLEAN to DECIMAL + errorMessage="errCode = 2, detailMessage = Can not change BOOLEAN to DECIMAL32" + expectException({ + sql initTable + sql initTableData + sql """ alter table ${tbName} MODIFY column is_teacher DECIMAL KEY DEFAULT "0" """ + insertSql = "insert into ${tbName} values(123456689, 'Alice', 1.0, 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " + waitForSchemaChangeDone({ + sql getTableStatusSql + time 60 + }, insertSql, true,"${tbName}") + },errorMessage) + + + //TODO Test the unique model by modify a key type from BOOLEAN to CHAR + errorMessage="errCode = 2, detailMessage = Can not change BOOLEAN to CHAR" + expectException({ + sql initTable + sql initTableData + sql """ alter table ${tbName} MODIFY column is_teacher CHAR KEY DEFAULT "0" """ + insertSql = "insert into ${tbName} values(123456689, 'Alice', '1', 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " + waitForSchemaChangeDone({ + sql getTableStatusSql + time 60 + }, insertSql, true,"${tbName}") + + },errorMessage) + + //TODO Test the unique model by modify a key type from BOOLEAN to STRING + errorMessage="errCode = 2, detailMessage = String Type should not be used in key column[is_teacher]." + expectException({ + sql initTable + sql initTableData + sql """ alter table ${tbName} MODIFY column is_teacher STRING KEY DEFAULT "0" """ + insertSql = "insert into ${tbName} values(123456689, 'Alice', '1', 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " + waitForSchemaChangeDone({ + sql getTableStatusSql + time 60 + }, insertSql, true,"${tbName}") + },errorMessage) + + + //TODO Test the unique model by modify a key type from BOOLEAN to VARCHAR + errorMessage="errCode = 2, detailMessage = Can not change BOOLEAN to VARCHAR" + expectException({ + sql initTable + sql initTableData + sql """ alter table ${tbName} MODIFY column is_teacher VARCHAR(32) KEY DEFAULT "0" """ + insertSql = "insert into ${tbName} values(123456689, 'Alice', '1', 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " + waitForSchemaChangeDone({ + sql getTableStatusSql + time 60 + }, insertSql, true,"${tbName}") + },errorMessage) - //Test the unique model by modify a key type from BOOLEAN to VARCHAR - //TODO java.sql.SQLException: errCode = 2, detailMessage = Can not change BOOLEAN to VARCHAR -/* sql initTable - sql initTableData - sql """ alter table ${tbName} MODIFY column is_teacher VARCHAR(32) KEY DEFAULT "0" """ - insertSql = "insert into ${tbName} values(123456689, 'Alice', '1', 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " - waitForSchemaChangeDone({ - sql getTableStatusSql - time 60 - }, insertSql, true,"${tbName}")*/ /** * Test the unique model by modify a key type from TINYINT to other type */ - + sql """ DROP TABLE IF EXISTS ${tbName} """ initTable = " CREATE TABLE IF NOT EXISTS ${tbName}\n" + " (\n" + " `user_id` LARGEINT NOT NULL COMMENT \"用户id\",\n" + @@ -420,20 +465,23 @@ suite("test_unique_model_schema_key_change","p0") { " (678901234, 'Frank', 0, 'Hangzhou', 32, 1, 13467985213, 'No. 321 Street, Hangzhou', '2022-06-06 20:00:00')," + " (789012345, 'Grace', 1, 'Xian', 29, 0, 13333333333, 'No. 222 Street, Xian', '2022-07-07 22:00:00');" - //Test the unique model by modify a key type from TINYINT to BOOLEAN - //TODO java.sql.SQLException: errCode = 2, detailMessage = Can not change TINYINT to BOOLEAN -/* sql initTable - sql initTableData - sql """ alter table ${tbName} MODIFY column is_student BOOLEAN key """ - insertSql = "insert into ${tbName} values(123456689, 'Alice', false, 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " - waitForSchemaChangeDone({ - sql getTableStatusSql - time 60 - }, insertSql, true,"${tbName}")*/ + //TODO Test the unique model by modify a key type from TINYINT to BOOLEAN + errorMessage="errCode = 2, detailMessage = Can not change TINYINT to BOOLEAN" + expectException({ + sql initTable + sql initTableData + sql """ alter table ${tbName} MODIFY column is_student BOOLEAN key """ + insertSql = "insert into ${tbName} values(123456689, 'Alice', false, 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " + waitForSchemaChangeDone({ + sql getTableStatusSql + time 60 + }, insertSql, true,"${tbName}") + },errorMessage) + - //TODO Test the unique model by modify a key type from TINYINT to SMALLINT + // Test the unique model by modify a key type from TINYINT to SMALLINT sql initTable sql initTableData sql """ alter table ${tbName} MODIFY column is_student SMALLINT key """ @@ -444,7 +492,7 @@ suite("test_unique_model_schema_key_change","p0") { }, insertSql, true,"${tbName}") - //TODO Test the unique model by modify a key type from TINYINT to INT + //Test the unique model by modify a key type from TINYINT to INT sql initTable sql initTableData sql """ alter table ${tbName} MODIFY column is_student INT key """ @@ -465,7 +513,7 @@ suite("test_unique_model_schema_key_change","p0") { time 60 }, insertSql, true,"${tbName}") - //TODO Test the unique model by modify a key type from TINYINT to LARGEINT + //Test the unique model by modify a key type from TINYINT to LARGEINT sql initTable sql initTableData sql """ alter table ${tbName} MODIFY column is_student LARGEINT key """ @@ -477,72 +525,265 @@ suite("test_unique_model_schema_key_change","p0") { //TODO Test the unique model by modify a key type from TINYINT to FLOAT - //java.sql.SQLException: errCode = 2, detailMessage = Float or double can not used as a key, use decimal instead. -/* sql initTable - sql initTableData - sql """ alter table ${tbName} MODIFY column is_student FLOAT key """ - insertSql = "insert into ${tbName} values(123456689, 'Alice', 1.2, 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " - waitForSchemaChangeDone({ - sql getTableStatusSql - time 60 - }, insertSql, true,"${tbName}")*/ + errorMessage="errCode = 2, detailMessage = Float or double can not used as a key, use decimal instead." + expectException({ + sql initTable + sql initTableData + sql """ alter table ${tbName} MODIFY column is_student FLOAT key """ + insertSql = "insert into ${tbName} values(123456689, 'Alice', 1.2, 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " + waitForSchemaChangeDone({ + sql getTableStatusSql + time 60 + }, insertSql, true,"${tbName}") + },errorMessage) + //TODO Test the unique model by modify a key type from TINYINT to DOUBLE - //java.sql.SQLException: errCode = 2, detailMessage = Float or double can not used as a key, use decimal instead. -/* sql initTable + errorMessage="errCode = 2, detailMessage = Float or double can not used as a key, use decimal instead." + expectException({ + sql initTable + sql initTableData + sql """ alter table ${tbName} MODIFY column is_student DOUBLE key """ + insertSql = "insert into ${tbName} values(123456689, 'Alice', 1.23, 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " + waitForSchemaChangeDone({ + sql getTableStatusSql + time 60 + }, insertSql, true,"${tbName}") + },errorMessage) + + + + //TODO Test the unique model by modify a key type from TINYINT to DECIMAL + errorMessage="errCode = 2, detailMessage = Can not change TINYINT to DECIMAL32" + expectException({ + sql initTable + sql initTableData + sql """ alter table ${tbName} MODIFY column is_student DECIMAL key """ + insertSql = "insert into ${tbName} values(123456689, 'Alice', 1.23, 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " + waitForSchemaChangeDone({ + sql getTableStatusSql + time 60 + }, insertSql, true,"${tbName}") + + },errorMessage) + + //TODO Test the unique model by modify a key type from TINYINT to CHAR + errorMessage="errCode = 2, detailMessage = Can not change TINYINT to CHAR" + expectException({ + sql initTable + sql initTableData + sql """ alter table ${tbName} MODIFY column is_student CHAR(15) key """ + insertSql = "insert into ${tbName} values(123456689, 'Alice', 'asd', 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " + waitForSchemaChangeDone({ + sql getTableStatusSql + time 60 + }, insertSql, true,"${tbName}") + },errorMessage) + + + + + //Test the unique model by modify a key type from TINYINT to VARCHAR + sql initTable sql initTableData - sql """ alter table ${tbName} MODIFY column is_student DOUBLE key """ - insertSql = "insert into ${tbName} values(123456689, 'Alice', 1.23, 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " + sql """ alter table ${tbName} MODIFY column is_student VARCHAR(100) key """ + insertSql = "insert into ${tbName} values(123456689, 'Alice', 'asd', 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " waitForSchemaChangeDone({ sql getTableStatusSql time 60 - }, insertSql, true,"${tbName}")*/ + }, insertSql, true,"${tbName}") - //TODO Test the unique model by modify a key type from TINYINT to DECIMAL - //java.sql.SQLException: errCode = 2, detailMessage = Can not change TINYINT to DECIMAL32 -/* sql initTable + //Test the unique model by modify a key type from TINYINT to STRING + errorMessage="errCode = 2, detailMessage = String Type should not be used in key column[is_student]." + expectException({ + sql initTable + sql initTableData + sql """ alter table ${tbName} MODIFY column is_student STRING key """ + insertSql = "insert into ${tbName} values(123456689, 'Alice', 'asd', 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " + waitForSchemaChangeDone({ + sql getTableStatusSql + time 60 + }, insertSql, true,"${tbName}") + },errorMessage) + + + /** + * Test the unique model by modify a key type from SMALLINT to other type + */ + sql """ DROP TABLE IF EXISTS ${tbName} """ + initTable = " CREATE TABLE IF NOT EXISTS ${tbName}\n" + + " (\n" + + " `user_id` LARGEINT NOT NULL COMMENT \"用户id\",\n" + + " `username` VARCHAR(50) NOT NULL COMMENT \"用户昵称\",\n" + + " `car_number` SMALLINT 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`, `car_number`)\n" + + " DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" + + " PROPERTIES (\n" + + " \"replication_allocation\" = \"tag.location.default: 1\",\n" + + " \"enable_unique_key_merge_on_write\" = \"true\"\n" + + " );" + + initTableData = "insert into ${tbName} values(123456789, 'Alice', 13243, 'Beijing', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00')," + + " (234567890, 'Bob', 13445, 'Shanghai', 30, 1, 13998765432, 'No. 456 Street, Shanghai', '2022-02-02 12:00:00')," + + " (345678901, 'Carol', 15768, 'Guangzhou', 28, 0, 13724681357, 'No. 789 Street, Guangzhou', '2022-03-03 14:00:00')," + + " (456789012, 'Dave', 14243, 'Shenzhen', 35, 1, 13680864279, 'No. 987 Street, Shenzhen', '2022-04-04 16:00:00')," + + " (567890123, 'Eve', 10768, 'Chengdu', 27, 0, 13572468091, 'No. 654 Street, Chengdu', '2022-05-05 18:00:00')," + + " (678901234, 'Frank', 14325, 'Hangzhou', 32, 1, 13467985213, 'No. 321 Street, Hangzhou', '2022-06-06 20:00:00')," + + " (789012345, 'Grace', 15686, 'Xian', 29, 0, 13333333333, 'No. 222 Street, Xian', '2022-07-07 22:00:00');" + + //TODO Test the unique model by modify a key type from SMALLINT to BOOLEAN + errorMessage="errCode = 2, detailMessage = Can not change SMALLINT to BOOLEAN" + expectException({ + sql initTable + sql initTableData + sql """ alter table ${tbName} MODIFY column car_number BOOLEAN key """ + insertSql = "insert into ${tbName} values(123456689, 'Alice', false, 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " + waitForSchemaChangeDone({ + sql getTableStatusSql + time 60 + }, insertSql, true,"${tbName}") + },errorMessage) + + + + + // TODO Test the unique model by modify a key type from SMALLINT to TINYINT + errorMessage="errCode = 2, detailMessage = Can not change SMALLINT to TINYINT" + expectException({ + sql initTable + sql initTableData + sql """ alter table ${tbName} MODIFY column car_number TINYINT key """ + insertSql = "insert into ${tbName} 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,"${tbName}") + },errorMessage) + + + + //Test the unique model by modify a key type from SMALLINT to INT + sql initTable sql initTableData - sql """ alter table ${tbName} MODIFY column is_student DECIMAL key """ - insertSql = "insert into ${tbName} values(123456689, 'Alice', 1.23, 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " + sql """ alter table ${tbName} MODIFY column car_number INT key """ + insertSql = "insert into ${tbName} values(123456689, 'Alice', 3, 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " waitForSchemaChangeDone({ sql getTableStatusSql time 60 - }, insertSql, true,"${tbName}")*/ + }, insertSql, true,"${tbName}") - //TODO Test the unique model by modify a key type from TINYINT to CHAR - //java.sql.SQLException: errCode = 2, detailMessage = Can not change TINYINT to CHAR -/* sql initTable + + //Test the unique model by modify a key type from SMALLINT to BIGINT + sql initTable sql initTableData - sql """ alter table ${tbName} MODIFY column is_student CHAR(15) key """ - insertSql = "insert into ${tbName} values(123456689, 'Alice', 'asd', 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " + sql """ alter table ${tbName} MODIFY column car_number BIGINT key """ + insertSql = "insert into ${tbName} values(123456689, 'Alice', 4, 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " waitForSchemaChangeDone({ sql getTableStatusSql time 60 - }, insertSql, true,"${tbName}")*/ - - + }, insertSql, true,"${tbName}") - //Test the unique model by modify a key type from TINYINT to VARCHAR + //Test the unique model by modify a key type from SMALLINT to LARGEINT sql initTable sql initTableData - sql """ alter table ${tbName} MODIFY column is_student VARCHAR(100) key """ - insertSql = "insert into ${tbName} values(123456689, 'Alice', 'asd', 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " + sql """ alter table ${tbName} MODIFY column car_number LARGEINT key """ + insertSql = "insert into ${tbName} values(123456689, 'Alice', 5, 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " waitForSchemaChangeDone({ sql getTableStatusSql time 60 }, insertSql, true,"${tbName}") - //Test the unique model by modify a key type from TINYINT to STRING - //java.sql.SQLException: errCode = 2, detailMessage = String Type should not be used in key column[is_student]. -/* sql initTable + //TODO Test the unique model by modify a key type from SMALLINT to FLOAT + errorMessage="errCode = 2, detailMessage = Float or double can not used as a key, use decimal instead." + expectException({ + sql initTable + sql initTableData + sql """ alter table ${tbName} MODIFY column car_number FLOAT key """ + insertSql = "insert into ${tbName} values(123456689, 'Alice', 1.2, 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " + waitForSchemaChangeDone({ + sql getTableStatusSql + time 60 + }, insertSql, true,"${tbName}") + },errorMessage) + + + //TODO Test the unique model by modify a key type from SMALLINT to DOUBLE + errorMessage="errCode = 2, detailMessage = Float or double can not used as a key, use decimal instead." + expectException({ + sql initTable + sql initTableData + sql """ alter table ${tbName} MODIFY column car_number DOUBLE key """ + insertSql = "insert into ${tbName} values(123456689, 'Alice', 1.23, 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " + waitForSchemaChangeDone({ + sql getTableStatusSql + time 60 + }, insertSql, true,"${tbName}") + },errorMessage) + + + + //TODO Test the unique model by modify a key type from SMALLINT to DECIMAL + errorMessage="errCode = 2, detailMessage = Can not change SMALLINT to DECIMAL32" + expectException({ + sql initTable + sql initTableData + sql """ alter table ${tbName} MODIFY column car_number DECIMAL key """ + insertSql = "insert into ${tbName} values(123456689, 'Alice', 1.23, 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " + waitForSchemaChangeDone({ + sql getTableStatusSql + time 60 + }, insertSql, true,"${tbName}") + + },errorMessage) + + //TODO Test the unique model by modify a key type from SMALLINT to CHAR + errorMessage="errCode = 2, detailMessage = Can not change SMALLINT to CHAR" + expectException({ + sql initTable + sql initTableData + sql """ alter table ${tbName} MODIFY column car_number CHAR(15) key """ + insertSql = "insert into ${tbName} values(123456689, 'Alice', 'asd', 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " + waitForSchemaChangeDone({ + sql getTableStatusSql + time 60 + }, insertSql, true,"${tbName}") + },errorMessage) + + + + + //Test the unique model by modify a key type from SMALLINT to VARCHAR + sql initTable sql initTableData - sql """ alter table ${tbName} MODIFY column is_student STRING key """ + sql """ alter table ${tbName} MODIFY column car_number VARCHAR(100) key """ insertSql = "insert into ${tbName} values(123456689, 'Alice', 'asd', 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " waitForSchemaChangeDone({ sql getTableStatusSql time 60 - }, insertSql, true,"${tbName}")*/ -} + }, insertSql, true,"${tbName}") + + //Test the unique model by modify a key type from SMALLINT to STRING + errorMessage="errCode = 2, detailMessage = String Type should not be used in key column[car_number]." + expectException({ + sql initTable + sql initTableData + sql """ alter table ${tbName} MODIFY column car_number STRING key """ + insertSql = "insert into ${tbName} values(123456689, 'Alice', 'asd', 'Yaan', 25, 0, 13812345678, 'No. 123 Street, Beijing', '2022-01-01 10:00:00'); " + waitForSchemaChangeDone({ + sql getTableStatusSql + time 60 + }, insertSql, true,"${tbName}") + },errorMessage) + + +} --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org