Fix analyze mv from follower case bug. (#31523)
This commit is contained in:
@ -17,16 +17,35 @@
|
||||
|
||||
suite("test_analyze_mtmv") {
|
||||
|
||||
def wait_row_count_reported = { table, expected ->
|
||||
for (int i = 0; i < 120; i++) {
|
||||
Thread.sleep(5000)
|
||||
def result = sql """SHOW DATA FROM ${table};"""
|
||||
logger.info("result " + result)
|
||||
if (result[0][4] == expected) {
|
||||
return;
|
||||
def wait_row_count_reported = { db, table, expected ->
|
||||
def result = sql """show frontends;"""
|
||||
logger.info("show frontends result origin: " + result)
|
||||
def host
|
||||
def port
|
||||
for (int i = 0; i < result.size(); i++) {
|
||||
if (result[i][8] == "true") {
|
||||
host = result[i][1]
|
||||
port = result[i][4]
|
||||
}
|
||||
}
|
||||
throw new Exception("Row count report timeout.")
|
||||
def tokens = context.config.jdbcUrl.split('/')
|
||||
def url=tokens[0] + "//" + host + ":" + port
|
||||
logger.info("Master url is " + url)
|
||||
connect(user = context.config.jdbcUser, password = context.config.jdbcPassword, url) {
|
||||
sql """use ${db}"""
|
||||
result = sql """show frontends;"""
|
||||
logger.info("show frontends result master: " + result)
|
||||
for (int i = 0; i < 120; i++) {
|
||||
Thread.sleep(5000)
|
||||
result = sql """SHOW DATA FROM ${table};"""
|
||||
logger.info("result " + result)
|
||||
if (result[0][4] == expected) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
throw new Exception("Row count report timeout.")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
sql """drop database if exists test_analyze_mtmv"""
|
||||
@ -267,7 +286,7 @@ suite("test_analyze_mtmv") {
|
||||
result_sample = sql """show column cached stats mv1(sum_total)"""
|
||||
assertEquals(0, result_sample.size())
|
||||
|
||||
wait_row_count_reported("mv1", "3")
|
||||
wait_row_count_reported("test_analyze_mtmv", "mv1", "3")
|
||||
sql """analyze table mv1 with sync with sample rows 4000000"""
|
||||
result_sample = sql """show column stats mv1(l_shipdate)"""
|
||||
logger.info("result " + result_sample)
|
||||
|
||||
@ -34,16 +34,35 @@ suite("test_analyze_mv") {
|
||||
}
|
||||
}
|
||||
|
||||
def wait_row_count_reported = { table, expected ->
|
||||
for (int i = 0; i < 120; i++) {
|
||||
Thread.sleep(5000)
|
||||
def result = sql """SHOW DATA FROM ${table};"""
|
||||
logger.info("result " + result)
|
||||
if (result[3][4] == expected) {
|
||||
return;
|
||||
def wait_row_count_reported = { db, table, expected ->
|
||||
def result = sql """show frontends;"""
|
||||
logger.info("show frontends result origin: " + result)
|
||||
def host
|
||||
def port
|
||||
for (int i = 0; i < result.size(); i++) {
|
||||
if (result[i][8] == "true") {
|
||||
host = result[i][1]
|
||||
port = result[i][4]
|
||||
}
|
||||
}
|
||||
throw new Exception("Row count report timeout.")
|
||||
def tokens = context.config.jdbcUrl.split('/')
|
||||
def url=tokens[0] + "//" + host + ":" + port
|
||||
logger.info("Master url is " + url)
|
||||
connect(user = context.config.jdbcUser, password = context.config.jdbcPassword, url) {
|
||||
sql """use ${db}"""
|
||||
result = sql """show frontends;"""
|
||||
logger.info("show frontends result master: " + result)
|
||||
for (int i = 0; i < 120; i++) {
|
||||
Thread.sleep(5000)
|
||||
result = sql """SHOW DATA FROM ${table};"""
|
||||
logger.info("result " + result)
|
||||
if (result[3][4] == expected) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
throw new Exception("Row count report timeout.")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
def wait_analyze_finish = { table ->
|
||||
@ -340,7 +359,7 @@ suite("test_analyze_mv") {
|
||||
assertEquals(0, result_sample.size())
|
||||
|
||||
// Test sample
|
||||
wait_row_count_reported("mvTestDup", "6")
|
||||
wait_row_count_reported("test_analyze_mv", "mvTestDup", "6")
|
||||
sql """analyze table mvTestDup with sample rows 4000000"""
|
||||
wait_analyze_finish("mvTestDup")
|
||||
result_sample = sql """SHOW ANALYZE mvTestDup;"""
|
||||
|
||||
Reference in New Issue
Block a user