[fix](testcase) add state check for ADD INDEX before BUILD INDEX to avoid table state not normal (#25038)
This commit is contained in:
@ -22,6 +22,22 @@ suite("test_index_change_3") {
|
||||
def delta_time = 1000
|
||||
def alter_res = "null"
|
||||
def useTime = 0
|
||||
|
||||
def wait_for_latest_op_on_table_finish = { table_name, OpTimeout ->
|
||||
for(int t = delta_time; t <= OpTimeout; t += delta_time){
|
||||
alter_res = sql """SHOW ALTER TABLE COLUMN WHERE TableName = "${table_name}" ORDER BY CreateTime DESC LIMIT 1;"""
|
||||
alter_res = alter_res.toString()
|
||||
if(alter_res.contains("FINISHED")) {
|
||||
sleep(3000) // wait change table state to normal
|
||||
logger.info(table_name + " latest alter job finished, detail: " + alter_res)
|
||||
break
|
||||
}
|
||||
useTime = t
|
||||
sleep(delta_time)
|
||||
}
|
||||
assertTrue(useTime <= OpTimeout, "wait_for_latest_op_on_table_finish timeout")
|
||||
}
|
||||
|
||||
def wait_for_build_index_on_partition_finish = { table_name, OpTimeout ->
|
||||
for(int t = delta_time; t <= OpTimeout; t += delta_time){
|
||||
alter_res = sql """SHOW BUILD INDEX WHERE TableName = "${table_name}";"""
|
||||
@ -94,6 +110,7 @@ suite("test_index_change_3") {
|
||||
|
||||
// create inverted index idx_city
|
||||
sql """ CREATE INDEX idx_city ON ${tableName}(`city`) USING INVERTED PROPERTIES("parser"="english") """
|
||||
wait_for_latest_op_on_table_finish(tableName, timeout)
|
||||
// build index
|
||||
sql """ BUILD INDEX idx_city ON ${tableName} """
|
||||
|
||||
|
||||
@ -22,6 +22,22 @@ suite("test_index_change_4") {
|
||||
def delta_time = 1000
|
||||
def alter_res = "null"
|
||||
def useTime = 0
|
||||
|
||||
def wait_for_latest_op_on_table_finish = { table_name, OpTimeout ->
|
||||
for(int t = delta_time; t <= OpTimeout; t += delta_time){
|
||||
alter_res = sql """SHOW ALTER TABLE COLUMN WHERE TableName = "${table_name}" ORDER BY CreateTime DESC LIMIT 1;"""
|
||||
alter_res = alter_res.toString()
|
||||
if(alter_res.contains("FINISHED")) {
|
||||
sleep(3000) // wait change table state to normal
|
||||
logger.info(table_name + " latest alter job finished, detail: " + alter_res)
|
||||
break
|
||||
}
|
||||
useTime = t
|
||||
sleep(delta_time)
|
||||
}
|
||||
assertTrue(useTime <= OpTimeout, "wait_for_latest_op_on_table_finish timeout")
|
||||
}
|
||||
|
||||
def wait_for_build_index_on_partition_finish = { table_name, OpTimeout ->
|
||||
for(int t = delta_time; t <= OpTimeout; t += delta_time){
|
||||
alter_res = sql """SHOW BUILD INDEX WHERE TableName = "${table_name}";"""
|
||||
@ -97,6 +113,7 @@ suite("test_index_change_4") {
|
||||
sql """ DROP INDEX idx_note ON ${tableName} """
|
||||
// create inverted index idx_city
|
||||
sql """ CREATE INDEX idx_note ON ${tableName}(`note`) USING INVERTED PROPERTIES("parser"="english") """
|
||||
wait_for_latest_op_on_table_finish(tableName, timeout)
|
||||
// build index
|
||||
sql """ BUILD INDEX idx_note ON ${tableName} """
|
||||
wait_for_build_index_on_partition_finish(tableName, timeout)
|
||||
|
||||
@ -22,6 +22,22 @@ suite("test_index_change_6") {
|
||||
def delta_time = 1000
|
||||
def alter_res = "null"
|
||||
def useTime = 0
|
||||
|
||||
def wait_for_latest_op_on_table_finish = { table_name, OpTimeout ->
|
||||
for(int t = delta_time; t <= OpTimeout; t += delta_time){
|
||||
alter_res = sql """SHOW ALTER TABLE COLUMN WHERE TableName = "${table_name}" ORDER BY CreateTime DESC LIMIT 1;"""
|
||||
alter_res = alter_res.toString()
|
||||
if(alter_res.contains("FINISHED")) {
|
||||
sleep(3000) // wait change table state to normal
|
||||
logger.info(table_name + " latest alter job finished, detail: " + alter_res)
|
||||
break
|
||||
}
|
||||
useTime = t
|
||||
sleep(delta_time)
|
||||
}
|
||||
assertTrue(useTime <= OpTimeout, "wait_for_latest_op_on_table_finish timeout")
|
||||
}
|
||||
|
||||
def wait_for_build_index_on_partition_finish = { table_name, OpTimeout ->
|
||||
for(int t = delta_time; t <= OpTimeout; t += delta_time){
|
||||
alter_res = sql """SHOW BUILD INDEX WHERE TableName = "${table_name}";"""
|
||||
@ -100,6 +116,8 @@ suite("test_index_change_6") {
|
||||
sql """ CREATE INDEX idx_user_id ON ${tableName}(`user_id`) USING INVERTED """
|
||||
sql """ CREATE INDEX idx_note ON ${tableName}(`note`) USING INVERTED PROPERTIES("parser" = "english") """
|
||||
|
||||
wait_for_latest_op_on_table_finish(tableName, timeout)
|
||||
|
||||
// build inverted index
|
||||
sql """ BUILD INDEX idx_user_id ON ${tableName} """
|
||||
sql """ BUILD INDEX idx_note ON ${tableName} """
|
||||
|
||||
@ -22,6 +22,22 @@ suite("test_index_change_7") {
|
||||
def delta_time = 1000
|
||||
def alter_res = "null"
|
||||
def useTime = 0
|
||||
|
||||
def wait_for_latest_op_on_table_finish = { table_name, OpTimeout ->
|
||||
for(int t = delta_time; t <= OpTimeout; t += delta_time){
|
||||
alter_res = sql """SHOW ALTER TABLE COLUMN WHERE TableName = "${table_name}" ORDER BY CreateTime DESC LIMIT 1;"""
|
||||
alter_res = alter_res.toString()
|
||||
if(alter_res.contains("FINISHED")) {
|
||||
sleep(3000) // wait change table state to normal
|
||||
logger.info(table_name + " latest alter job finished, detail: " + alter_res)
|
||||
break
|
||||
}
|
||||
useTime = t
|
||||
sleep(delta_time)
|
||||
}
|
||||
assertTrue(useTime <= OpTimeout, "wait_for_latest_op_on_table_finish timeout")
|
||||
}
|
||||
|
||||
def wait_for_build_index_on_partition_finish = { table_name, OpTimeout ->
|
||||
for(int t = delta_time; t <= OpTimeout; t += delta_time){
|
||||
alter_res = sql """SHOW BUILD INDEX WHERE TableName = "${table_name}";"""
|
||||
@ -90,6 +106,8 @@ suite("test_index_change_7") {
|
||||
sql """ CREATE INDEX c_array_idx ON ${tableName}(`c_array`) USING INVERTED PROPERTIES("parser"="english") """
|
||||
sql """ CREATE INDEX int_array_idx ON ${tableName}(`int_array`) USING INVERTED """
|
||||
|
||||
wait_for_latest_op_on_table_finish(tableName, timeout)
|
||||
|
||||
// build inverted index
|
||||
sql """ BUILD INDEX c_array_idx ON ${tableName} """
|
||||
sql """ BUILD INDEX int_array_idx ON ${tableName} """
|
||||
|
||||
@ -20,6 +20,26 @@ import org.codehaus.groovy.runtime.IOGroovyMethods
|
||||
suite("test_index_change_with_compaction") {
|
||||
def tableName = "index_change_with_compaction_dup_keys"
|
||||
|
||||
def timeout = 60000
|
||||
def delta_time = 1000
|
||||
def alter_res = "null"
|
||||
def useTime = 0
|
||||
|
||||
def wait_for_latest_op_on_table_finish = { table_name, OpTimeout ->
|
||||
for(int t = delta_time; t <= OpTimeout; t += delta_time){
|
||||
alter_res = sql """SHOW ALTER TABLE COLUMN WHERE TableName = "${table_name}" ORDER BY CreateTime DESC LIMIT 1;"""
|
||||
alter_res = alter_res.toString()
|
||||
if(alter_res.contains("FINISHED")) {
|
||||
sleep(3000) // wait change table state to normal
|
||||
logger.info(table_name + " latest alter job finished, detail: " + alter_res)
|
||||
break
|
||||
}
|
||||
useTime = t
|
||||
sleep(delta_time)
|
||||
}
|
||||
assertTrue(useTime <= OpTimeout, "wait_for_latest_op_on_table_finish timeout")
|
||||
}
|
||||
|
||||
try {
|
||||
//BackendId,Cluster,IP,HeartbeatPort,BePort,HttpPort,BrpcPort,LastStartTime,LastHeartbeat,Alive,SystemDecommissioned,ClusterDecommissioned,TabletNum,DataUsedCapacity,AvailCapacity,TotalCapacity,UsedPct,MaxDiskUsedPct,Tag,ErrMsg,Version,Status
|
||||
String[][] backends = sql """ show backends; """
|
||||
@ -119,6 +139,8 @@ suite("test_index_change_with_compaction") {
|
||||
sql """ CREATE INDEX idx_date ON ${tableName}(`date`) USING INVERTED """
|
||||
sql """ CREATE INDEX idx_city ON ${tableName}(`city`) USING INVERTED """
|
||||
|
||||
wait_for_latest_op_on_table_finish(tableName, timeout)
|
||||
|
||||
// trigger compactions for all tablets in ${tableName}
|
||||
for (String[] tablet in tablets) {
|
||||
String tablet_id = tablet[0]
|
||||
|
||||
@ -31,6 +31,22 @@ suite("test_pk_uk_index_change", "inverted_index") {
|
||||
def delta_time = 1000
|
||||
def alter_res = "null"
|
||||
def useTime = 0
|
||||
|
||||
def wait_for_latest_op_on_table_finish = { table_name, OpTimeout ->
|
||||
for(int t = delta_time; t <= OpTimeout; t += delta_time){
|
||||
alter_res = sql """SHOW ALTER TABLE COLUMN WHERE TableName = "${table_name}" ORDER BY CreateTime DESC LIMIT 1;"""
|
||||
alter_res = alter_res.toString()
|
||||
if(alter_res.contains("FINISHED")) {
|
||||
sleep(3000) // wait change table state to normal
|
||||
logger.info(table_name + " latest alter job finished, detail: " + alter_res)
|
||||
break
|
||||
}
|
||||
useTime = t
|
||||
sleep(delta_time)
|
||||
}
|
||||
assertTrue(useTime <= OpTimeout, "wait_for_latest_op_on_table_finish timeout")
|
||||
}
|
||||
|
||||
def wait_for_build_index_on_partition_finish = { table_name, OpTimeout ->
|
||||
for(int t = delta_time; t <= OpTimeout; t += delta_time){
|
||||
alter_res = sql """SHOW BUILD INDEX WHERE TableName = "${table_name}";"""
|
||||
@ -222,6 +238,9 @@ suite("test_pk_uk_index_change", "inverted_index") {
|
||||
sql """ ALTER TABLE ${tableNamePk}
|
||||
ADD INDEX L_ORDERKEY_idx (L_ORDERKEY) USING INVERTED COMMENT 'L_ORDERKEY index';
|
||||
"""
|
||||
|
||||
wait_for_latest_op_on_table_finish(tableNamePk, timeout)
|
||||
|
||||
// build inverted index
|
||||
sql """ BUILD INDEX L_ORDERKEY_idx ON ${tableNamePk}; """
|
||||
wait_for_build_index_on_partition_finish(tableNamePk, timeout)
|
||||
@ -302,3 +321,4 @@ suite("test_pk_uk_index_change", "inverted_index") {
|
||||
wait_for_build_index_on_partition_finish(tableNamePk, timeout)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -157,6 +157,8 @@ suite("test_build_index", "inverted_index"){
|
||||
// ADD INDEX
|
||||
sql """ ALTER TABLE ${tableName} ADD INDEX idx_comment (`comment`) USING INVERTED PROPERTIES("parser" = "english") """
|
||||
|
||||
wait_for_latest_op_on_table_finish(tableName, timeout)
|
||||
|
||||
// BUILD INDEX and expect state is RUNNING
|
||||
sql """ BUILD INDEX idx_comment ON ${tableName} """
|
||||
def state = wait_for_last_build_index_on_table_running(tableName, timeout)
|
||||
|
||||
Reference in New Issue
Block a user