This is an automated email from the ASF dual-hosted git repository.

yiguolei pushed a commit to branch branch-4.0
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-4.0 by this push:
     new e7f118aa61e branch-4.0: [test](mv) Add injected row count stats for 
chose sync mv stably in regression test #59205 (#59357)
e7f118aa61e is described below

commit e7f118aa61ed94db46d417603b75f368671dd6a7
Author: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Mon Dec 29 10:08:04 2025 +0800

    branch-4.0: [test](mv) Add injected row count stats for chose sync mv 
stably in regression test #59205 (#59357)
    
    Cherry-picked from #59205
    
    Co-authored-by: seawinde <[email protected]>
---
 regression-test/suites/mv_p0/agg_table_mv/agg_table_mv.groovy        | 2 ++
 .../suites/mv_p0/agg_use_key_direct/agg_use_key_direct.groovy        | 2 ++
 .../suites/mv_p0/mv_ignore_predicate/mv_ignore_predicate.groovy      | 1 +
 regression-test/suites/mv_p0/test_dup_mv_div/test_dup_mv_div.groovy  | 5 ++++-
 .../mv_p0/test_dup_mv_expr_priority/test_dup_mv_expr_priority.groovy | 3 ++-
 .../suites/mv_p0/test_dup_mv_json/test_dup_mv_json.groovy            | 3 ++-
 regression-test/suites/mv_p0/test_tcu/test_tcu.groovy                | 4 ++--
 .../suites/nereids_syntax_p0/mv/aggregate/agg_sync_mv.groovy         | 2 ++
 8 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/regression-test/suites/mv_p0/agg_table_mv/agg_table_mv.groovy 
b/regression-test/suites/mv_p0/agg_table_mv/agg_table_mv.groovy
index 0ff7dfe3818..d6a1277cff6 100644
--- a/regression-test/suites/mv_p0/agg_table_mv/agg_table_mv.groovy
+++ b/regression-test/suites/mv_p0/agg_table_mv/agg_table_mv.groovy
@@ -62,6 +62,8 @@ suite ("agg_table_mv") {
     (4, 5, '2023-10-19', 'k', 99.5, 'a', 'b', 1, 'yy');
     """
 
+    sql """alter table orders_agg modify column o_orderkey set stats 
('row_count'='10');"""
+
     create_sync_mv(db, "orders_agg", "agg_mv_name_3", """
         select o_orderdatE as a_o_orderdatE, o_custkey as a_o_custkey, 
o_orderkey as a_o_orderkey, 
             sum(o_totalprice) as sum_total 
diff --git 
a/regression-test/suites/mv_p0/agg_use_key_direct/agg_use_key_direct.groovy 
b/regression-test/suites/mv_p0/agg_use_key_direct/agg_use_key_direct.groovy
index dbea4d47660..4a866c20e3c 100644
--- a/regression-test/suites/mv_p0/agg_use_key_direct/agg_use_key_direct.groovy
+++ b/regression-test/suites/mv_p0/agg_use_key_direct/agg_use_key_direct.groovy
@@ -40,6 +40,8 @@ suite ("agg_use_key_direct") {
     sql "insert into ${tblName} select e1, -4, -4, -4, 'd' from (select 1 k1) 
as t lateral view explode_numbers(100) tmp1 as e1;"
     create_sync_mv(db, tblName, "common_mv", """select k1 as a1, k3 as a2, 
sum(k2), count(k4) from ${tblName} group by k1, k3;""")
 
+    sql """alter table ${tblName} modify column k1 set stats 
('row_count'='100');"""
+
     mv_rewrite_fail("""select count(k1) from agg_use_key_direct""", 
"common_mv")
     mv_rewrite_fail("""select sum(k1) from agg_use_key_direct""", "common_mv")
     mv_rewrite_fail("""select avg(k3) from agg_use_key_direct""", "common_mv")
diff --git 
a/regression-test/suites/mv_p0/mv_ignore_predicate/mv_ignore_predicate.groovy 
b/regression-test/suites/mv_p0/mv_ignore_predicate/mv_ignore_predicate.groovy
index 4ddb18fd22a..872254e99b3 100644
--- 
a/regression-test/suites/mv_p0/mv_ignore_predicate/mv_ignore_predicate.groovy
+++ 
b/regression-test/suites/mv_p0/mv_ignore_predicate/mv_ignore_predicate.groovy
@@ -48,6 +48,7 @@ suite ("mv_ignore_predicate") {
     sql "insert into d_table select 5,null,null,null;"
 
     sql "analyze table d_table with sync;"
+    sql """alter table d_table modify column k4 set stats ('row_count'='7');"""
 
     qt_select_star "select * from d_table order by k1;"
 
diff --git 
a/regression-test/suites/mv_p0/test_dup_mv_div/test_dup_mv_div.groovy 
b/regression-test/suites/mv_p0/test_dup_mv_div/test_dup_mv_div.groovy
index 85934b75df5..6d1eb92ece0 100644
--- a/regression-test/suites/mv_p0/test_dup_mv_div/test_dup_mv_div.groovy
+++ b/regression-test/suites/mv_p0/test_dup_mv_div/test_dup_mv_div.groovy
@@ -44,12 +44,15 @@ suite ("test_dup_mv_div") {
     sql "insert into d_table select 2,2,2,'b';"
     sql "insert into d_table select 3,-3,null,'c';"
 
+    sql """alter table d_table modify column k1 set stats ('row_count'='4');"""
+
     create_sync_mv (db, "d_table", "kdiv", "select k1 as x,k2/1 from d_table;")
 
     sql "insert into d_table select -4,-4,-4,'4';"
 
     qt_select_star "select * from d_table order by k1;"
 
-    mv_rewrite_success("select k1,k2/1 from d_table order by k1;", "kdiv")
+    // mv and base table have same row count, so the rewrite should be done 
without checking
+    mv_rewrite_success_without_check_chosen("select k1,k2/1 from d_table order 
by k1;", "kdiv")
     qt_select_mv "select k1,k2/1 from d_table order by k1;"
 }
\ No newline at end of file
diff --git 
a/regression-test/suites/mv_p0/test_dup_mv_expr_priority/test_dup_mv_expr_priority.groovy
 
b/regression-test/suites/mv_p0/test_dup_mv_expr_priority/test_dup_mv_expr_priority.groovy
index 1d30dc86292..78309f2abe2 100644
--- 
a/regression-test/suites/mv_p0/test_dup_mv_expr_priority/test_dup_mv_expr_priority.groovy
+++ 
b/regression-test/suites/mv_p0/test_dup_mv_expr_priority/test_dup_mv_expr_priority.groovy
@@ -43,7 +43,8 @@ suite ("test_dup_mv_expr_priority") {
 
     sql """analyze table table_ngrambf with sync;"""
 
-    mv_rewrite_success("""select  element_at(split_by_string(username,"_"),1) 
,element_at(split_by_string(username,"_"),2) 
,element_at(split_by_string(username,"_"),3)  ,siteid,citycode from 
table_ngrambf order by citycode;""",
+    // the row count in based table and mv is same, so we do not need to check 
cbo chosen
+    mv_rewrite_success_without_check_chosen("""select  
element_at(split_by_string(username,"_"),1) 
,element_at(split_by_string(username,"_"),2) 
,element_at(split_by_string(username,"_"),3)  ,siteid,citycode from 
table_ngrambf order by citycode;""",
     "test_mv_1")
 
     qt_select_mv """select  element_at(split_by_string(username,"_"),1) 
,element_at(split_by_string(username,"_"),2) 
,element_at(split_by_string(username,"_"),3)  ,siteid,citycode from 
table_ngrambf order by citycode;"""
diff --git 
a/regression-test/suites/mv_p0/test_dup_mv_json/test_dup_mv_json.groovy 
b/regression-test/suites/mv_p0/test_dup_mv_json/test_dup_mv_json.groovy
index f0bc52d1a44..88b9bd54a5b 100644
--- a/regression-test/suites/mv_p0/test_dup_mv_json/test_dup_mv_json.groovy
+++ b/regression-test/suites/mv_p0/test_dup_mv_json/test_dup_mv_json.groovy
@@ -61,7 +61,8 @@ suite ("test_dup_mv_json") {
 
     qt_select_star "select * from tcu_test;"
 
-    mv_rewrite_success("""select a
+    // mv and base table have same row count, so the rewrite should be done 
without checking
+    mv_rewrite_success_without_check_chosen("""select a
       ,(cast(json_extract(k, '\$.k22.k222.k2224.xxxx01_u_actl') as 
double)+cast(json_extract(k, '\$.k22.k222.k2224.xxxx02_u_actl') as 
double)+cast(json_extract(k, '\$.k22.k222.k2224.xxxx03_u_actl') as 
double)-greatest(cast(json_extract(k, '\$.k22.k222.k2224.xxxx01_u_actl') as 
double),cast(json_extract(k, '\$.k22.k222.k2224.xxxx02_u_actl') as 
double),cast(json_extract(k, '\$.k22.k222.k2224.xxxx03_u_actl') as 
double))-least(cast(json_extract(k, '\$.k22.k222.k2224.xxxx01_u_actl') as 
double) [...]
       FROM tcu_test;""", "tcu_test_index")
 
diff --git a/regression-test/suites/mv_p0/test_tcu/test_tcu.groovy 
b/regression-test/suites/mv_p0/test_tcu/test_tcu.groovy
index 874c7943568..a2a6e5310a5 100644
--- a/regression-test/suites/mv_p0/test_tcu/test_tcu.groovy
+++ b/regression-test/suites/mv_p0/test_tcu/test_tcu.groovy
@@ -68,8 +68,8 @@ suite ("test_tcu") {
      ,abs((json_extract_double(k, 
'\$.k22.k222.k2224.xxxx01_U_Actl')+json_extract_double(k, 
'\$.k22.k222.k2224.xxxx02_U_Actl')+json_extract_double(k, 
'\$.k22.k222.k2224.xxxx03_U_Actl')-greatest(json_extract_double(k, 
'\$.k22.k222.k2224.xxxx01_U_Actl'),json_extract_double(k, 
'\$.k22.k222.k2224.xxxx02_U_Actl'),json_extract_double(k, 
'\$.k22.k222.k2224.xxxx03_U_Actl'))-least(json_extract_double(k, 
'\$.k22.k222.k2224.xxxx01_U_Actl'),json_extract_double(k, 
'\$.k22.k222.k2224.xxxx02_U_Actl'),j [...]
      ,greatest(abs((json_extract_double(k, 
'\$.k22.k222.k2224.xxxx01_U_Actl')+json_extract_double(k, 
'\$.k22.k222.k2224.xxxx02_U_Actl')+json_extract_double(k, 
'\$.k22.k222.k2224.xxxx03_U_Actl')-greatest(json_extract_double(k, 
'\$.k22.k222.k2224.xxxx01_U_Actl'),json_extract_double(k, 
'\$.k22.k222.k2224.xxxx02_U_Actl'),json_extract_double(k, 
'\$.k22.k222.k2224.xxxx03_U_Actl'))-least(json_extract_double(k, 
'\$.k22.k222.k2224.xxxx01_U_Actl'),json_extract_double(k, 
'\$.k22.k222.k2224.xxxx02_U [...]
       """
-
-    mv_rewrite_success("select * from tcu_test_view;", "tcu_test_index")
+    // mv and base table have same row count, so the rewrite should be done 
without checking
+    mv_rewrite_success_without_check_chosen("select * from tcu_test_view;", 
"tcu_test_index")
 
     qt_select_mv "select * from tcu_test_view;"
 }
\ No newline at end of file
diff --git 
a/regression-test/suites/nereids_syntax_p0/mv/aggregate/agg_sync_mv.groovy 
b/regression-test/suites/nereids_syntax_p0/mv/aggregate/agg_sync_mv.groovy
index 6168bb85246..b9e8b160dae 100644
--- a/regression-test/suites/nereids_syntax_p0/mv/aggregate/agg_sync_mv.groovy
+++ b/regression-test/suites/nereids_syntax_p0/mv/aggregate/agg_sync_mv.groovy
@@ -23,6 +23,8 @@ suite("agg_sync_mv") {
     // this mv rewrite would not be rewritten in RBO phase, so set TRY_IN_RBO 
explicitly to make case stable
     sql "set pre_materialized_view_rewrite_strategy = TRY_IN_RBO"
 
+    sql """alter table agg_mv_test modify column id set stats 
('row_count'='27');"""
+
     qt_select_any_value """select id, any_value(kint) from agg_mv_test group 
by id order by id;"""
     sql """drop materialized view if exists mv_sync1 on agg_mv_test;"""
     createMV("""create materialized view mv_sync1 as select id as a1, 
any_value(kint) as a2 from agg_mv_test group by id order by id;""")


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

Reply via email to