Skip to content

Commit 0b92e5a

Browse files
authored
[improvement](statistics)Support cloud version set row count to -1 when not reported. (#41015)
Follow up #40457. Support cloud version.
1 parent cf2e8f8 commit 0b92e5a

File tree

2 files changed

+62
-64
lines changed

2 files changed

+62
-64
lines changed

fe/fe-core/src/main/java/org/apache/doris/cloud/transaction/CloudGlobalTransactionMgr.java

+4
Original file line numberDiff line numberDiff line change
@@ -389,6 +389,10 @@ public void afterCommitTxnResp(CommitTxnResponse commitTxnResponse) {
389389
if (partition == null) {
390390
continue;
391391
}
392+
if (version == 2) {
393+
partition.getMaterializedIndices(MaterializedIndex.IndexExtState.ALL)
394+
.stream().forEach(i -> i.setRowCountReported(false));
395+
}
392396
partition.setCachedVisibleVersion(version, commitTxnResponse.getVersionUpdateTimeMs());
393397
LOG.info("Update Partition. transactionId:{}, table_id:{}, partition_id:{}, version:{}, update time:{}",
394398
txnId, tableId, partition.getId(), version, commitTxnResponse.getVersionUpdateTimeMs());

regression-test/suites/statistics/test_analyze_mv.groovy

+58-64
Original file line numberDiff line numberDiff line change
@@ -129,15 +129,13 @@ suite("test_analyze_mv") {
129129
)
130130
"""
131131
def result_row
132-
if (!isCloudMode()) {
133-
// Test row count report and report for nereids
134-
result_row = sql """show index stats mvTestDup mvTestDup"""
135-
assertEquals(1, result_row.size())
136-
assertEquals("mvTestDup", result_row[0][0])
137-
assertEquals("mvTestDup", result_row[0][1])
138-
assertEquals("0", result_row[0][3])
139-
assertEquals("-1", result_row[0][4])
140-
}
132+
// Test row count report and report for nereids
133+
result_row = sql """show index stats mvTestDup mvTestDup"""
134+
assertEquals(1, result_row.size())
135+
assertEquals("mvTestDup", result_row[0][0])
136+
assertEquals("mvTestDup", result_row[0][1])
137+
assertEquals("0", result_row[0][3])
138+
assertEquals("-1", result_row[0][4])
141139

142140
createMV("create materialized view mv1 as select key1 from mvTestDup;")
143141
createMV("create materialized view mv2 as select key2 from mvTestDup;")
@@ -476,33 +474,31 @@ suite("test_analyze_mv") {
476474
return;
477475
}
478476

479-
if (!isCloudMode()) {
480-
// Test row count report and report for nereids
481-
result_row = sql """show index stats mvTestDup mvTestDup"""
482-
assertEquals(1, result_row.size())
483-
assertEquals("mvTestDup", result_row[0][0])
484-
assertEquals("mvTestDup", result_row[0][1])
485-
assertEquals("6", result_row[0][3])
486-
assertEquals("6", result_row[0][4])
487-
result_row = sql """show index stats mvTestDup mv1"""
488-
assertEquals(1, result_row.size())
489-
assertEquals("mvTestDup", result_row[0][0])
490-
assertEquals("mv1", result_row[0][1])
491-
assertEquals("6", result_row[0][3])
492-
assertEquals("6", result_row[0][4])
493-
result_row = sql """show index stats mvTestDup mv2"""
494-
assertEquals(1, result_row.size())
495-
assertEquals("mvTestDup", result_row[0][0])
496-
assertEquals("mv2", result_row[0][1])
497-
assertEquals("6", result_row[0][3])
498-
assertEquals("6", result_row[0][4])
499-
result_row = sql """show index stats mvTestDup mv3"""
500-
assertEquals(1, result_row.size())
501-
assertEquals("mvTestDup", result_row[0][0])
502-
assertEquals("mv3", result_row[0][1])
503-
assertEquals("4", result_row[0][3])
504-
assertEquals("4", result_row[0][4])
505-
}
477+
// Test row count report and report for nereids
478+
result_row = sql """show index stats mvTestDup mvTestDup"""
479+
assertEquals(1, result_row.size())
480+
assertEquals("mvTestDup", result_row[0][0])
481+
assertEquals("mvTestDup", result_row[0][1])
482+
assertEquals("6", result_row[0][3])
483+
assertEquals("6", result_row[0][4])
484+
result_row = sql """show index stats mvTestDup mv1"""
485+
assertEquals(1, result_row.size())
486+
assertEquals("mvTestDup", result_row[0][0])
487+
assertEquals("mv1", result_row[0][1])
488+
assertEquals("6", result_row[0][3])
489+
assertEquals("6", result_row[0][4])
490+
result_row = sql """show index stats mvTestDup mv2"""
491+
assertEquals(1, result_row.size())
492+
assertEquals("mvTestDup", result_row[0][0])
493+
assertEquals("mv2", result_row[0][1])
494+
assertEquals("6", result_row[0][3])
495+
assertEquals("6", result_row[0][4])
496+
result_row = sql """show index stats mvTestDup mv3"""
497+
assertEquals(1, result_row.size())
498+
assertEquals("mvTestDup", result_row[0][0])
499+
assertEquals("mv3", result_row[0][1])
500+
assertEquals("4", result_row[0][3])
501+
assertEquals("4", result_row[0][4])
506502

507503
sql """analyze table mvTestDup with sample rows 4000000"""
508504
wait_analyze_finish("mvTestDup")
@@ -651,37 +647,35 @@ suite("test_analyze_mv") {
651647
verifyTaskStatus(result_sample, "mva_MIN__`value3`", "mv3")
652648
verifyTaskStatus(result_sample, "mva_SUM__CAST(`value1` AS bigint)", "mv3")
653649

654-
if (!isCloudMode()) {
655-
// Test row count report and report for nereids
656-
sql """truncate table mvTestDup"""
650+
// Test row count report and report for nereids
651+
sql """truncate table mvTestDup"""
652+
result_row = sql """show index stats mvTestDup mv3"""
653+
assertEquals(1, result_row.size())
654+
assertEquals("mvTestDup", result_row[0][0])
655+
assertEquals("mv3", result_row[0][1])
656+
assertEquals("0", result_row[0][3])
657+
assertEquals("-1", result_row[0][4])
658+
659+
for (int i = 0; i < 120; i++) {
657660
result_row = sql """show index stats mvTestDup mv3"""
658-
assertEquals(1, result_row.size())
659-
assertEquals("mvTestDup", result_row[0][0])
660-
assertEquals("mv3", result_row[0][1])
661-
assertEquals("0", result_row[0][3])
662-
assertEquals("-1", result_row[0][4])
663-
664-
for (int i = 0; i < 120; i++) {
665-
result_row = sql """show index stats mvTestDup mv3"""
666-
logger.info("mv3 stats: " + result_row)
667-
if (result_row[0][4] == "0") {
668-
break;
669-
}
670-
Thread.sleep(5000)
661+
logger.info("mv3 stats: " + result_row)
662+
if (result_row[0][4] == "0") {
663+
break;
671664
}
672-
result_row = sql """show index stats mvTestDup mv3"""
673-
assertEquals(1, result_row.size())
674-
assertEquals("mvTestDup", result_row[0][0])
675-
assertEquals("mv3", result_row[0][1])
676-
assertEquals("0", result_row[0][3])
677-
assertEquals("0", result_row[0][4])
678-
sql """insert into mvTestDup values (1, 2, 3, 4, 5), (1, 2, 3, 4, 5), (10, 20, 30, 40, 50), (10, 20, 30, 40, 50), (100, 200, 300, 400, 500), (1001, 2001, 3001, 4001, 5001);"""
679-
result_row = sql """show index stats mvTestDup mv3"""
680-
assertEquals(1, result_row.size())
681-
assertEquals("mvTestDup", result_row[0][0])
682-
assertEquals("mv3", result_row[0][1])
683-
assertEquals("-1", result_row[0][4])
665+
Thread.sleep(5000)
684666
}
667+
result_row = sql """show index stats mvTestDup mv3"""
668+
assertEquals(1, result_row.size())
669+
assertEquals("mvTestDup", result_row[0][0])
670+
assertEquals("mv3", result_row[0][1])
671+
assertEquals("0", result_row[0][3])
672+
assertEquals("0", result_row[0][4])
673+
sql """insert into mvTestDup values (1, 2, 3, 4, 5), (1, 2, 3, 4, 5), (10, 20, 30, 40, 50), (10, 20, 30, 40, 50), (100, 200, 300, 400, 500), (1001, 2001, 3001, 4001, 5001);"""
674+
result_row = sql """show index stats mvTestDup mv3"""
675+
assertEquals(1, result_row.size())
676+
assertEquals("mvTestDup", result_row[0][0])
677+
assertEquals("mv3", result_row[0][1])
678+
assertEquals("-1", result_row[0][4])
685679

686680
// Test alter column stats
687681
sql """drop stats mvTestDup"""

0 commit comments

Comments
 (0)