From d32595bafa8fbbc13404e6bc61d41bc4a5efe82a Mon Sep 17 00:00:00 2001 From: seawinde Date: Wed, 10 Sep 2025 17:05:23 +0800 Subject: [PATCH 1/3] [fix](test) Modify regression test to make stable and change expected log level (#55169) --- .../visitor/ExpressionLineageReplacer.java | 4 +- .../mv/date_trunc/mv_with_date_trunc.out | 37 +-- .../mv/date_trunc/mv_with_date_trunc.groovy | 219 +++++++++++++++++- 3 files changed, 236 insertions(+), 24 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/visitor/ExpressionLineageReplacer.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/visitor/ExpressionLineageReplacer.java index b9f1cc907c538b..2127f07c7bdb58 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/visitor/ExpressionLineageReplacer.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/visitor/ExpressionLineageReplacer.java @@ -64,7 +64,9 @@ public Expression visit(Plan plan, ExpressionReplaceContext context) { @Override public Expression visitGroupPlan(GroupPlan groupPlan, ExpressionReplaceContext context) { - LOG.error("ExpressionLineageReplacer should not meet groupPlan, plan is {}", groupPlan.toString()); + if (LOG.isDebugEnabled()) { + LOG.debug("ExpressionLineageReplacer should not meet groupPlan, plan is {}", groupPlan.toString()); + } return null; } diff --git a/regression-test/data/nereids_rules_p0/mv/date_trunc/mv_with_date_trunc.out b/regression-test/data/nereids_rules_p0/mv/date_trunc/mv_with_date_trunc.out index d02e2938633e82..3b2adf22c3a2fd 100644 --- a/regression-test/data/nereids_rules_p0/mv/date_trunc/mv_with_date_trunc.out +++ b/regression-test/data/nereids_rules_p0/mv/date_trunc/mv_with_date_trunc.out @@ -244,10 +244,10 @@ b b -- !query1_8_before -- -b 6 +b 7 -- !query1_8_after -- -b 6 +b 7 -- !query1_9_before -- b 6 @@ -472,19 +472,19 @@ b b -- !query1_14_before -- -b 28 +b 29 d 4 -- !query1_14_after -- -b 28 +b 29 d 4 -- !query1_15_before -- -b 28 +b 29 d 4 -- !query1_15_after -- -b 28 +b 29 d 4 -- !query1_15_0_before -- @@ -516,6 +516,7 @@ b b b b +b d d d @@ -550,6 +551,7 @@ b b b b +b d d d @@ -584,6 +586,7 @@ b b b b +b d d d @@ -618,6 +621,7 @@ b b b b +b d d d @@ -630,8 +634,10 @@ b 6 b 6 -- !query2_1_before -- +b 1 -- !query2_1_after -- +b 1 -- !query2_2_before -- b 21 @@ -694,7 +700,7 @@ b 19 d 4 -- !query4_0_after -- -b 2023-01-01 6 +b 2023-01-01 7 b 2023-04-01 3 -- !query4_1_after -- @@ -704,23 +710,24 @@ b 2023-01-01 b 2023-01-01 b 2023-01-01 b 2023-01-01 +b 2023-01-01 b 2023-04-01 b 2023-04-01 b 2023-04-01 -- !query5_0_before -- -b 2023-10-17T00:00 4 +b 2023-10-17T00:00 3 -- !query5_0_after -- -b 2023-10-17T00:00 4 +b 2023-10-17T00:00 3 -- !query5_1_before -- b 2023-10-16T00:00 1 -b 2023-10-17T00:00 3 +b 2023-10-17T00:00 2 -- !query5_1_after -- b 2023-10-16T00:00 1 -b 2023-10-17T00:00 3 +b 2023-10-17T00:00 2 -- !query5_3_before -- b 2023-10-01T17:09 1 @@ -730,9 +737,9 @@ b 2023-10-15T00:00 2 b 2023-10-15T23:59 1 b 2023-10-16T00:00 2 b 2023-10-16T23:59 1 -b 2023-10-17T00:00 3 +b 2023-10-17T00:00 2 b 2023-10-17T23:59 1 -b 2023-10-18T00:00 3 +b 2023-10-18T00:00 2 b 2023-10-18T23:59 1 -- !query5_3_after -- @@ -743,8 +750,8 @@ b 2023-10-15T00:00 2 b 2023-10-15T23:59 1 b 2023-10-16T00:00 2 b 2023-10-16T23:59 1 -b 2023-10-17T00:00 3 +b 2023-10-17T00:00 2 b 2023-10-17T23:59 1 -b 2023-10-18T00:00 3 +b 2023-10-18T00:00 2 b 2023-10-18T23:59 1 diff --git a/regression-test/suites/nereids_rules_p0/mv/date_trunc/mv_with_date_trunc.groovy b/regression-test/suites/nereids_rules_p0/mv/date_trunc/mv_with_date_trunc.groovy index 115c39f8b503b3..7f49e95c005729 100644 --- a/regression-test/suites/nereids_rules_p0/mv/date_trunc/mv_with_date_trunc.groovy +++ b/regression-test/suites/nereids_rules_p0/mv/date_trunc/mv_with_date_trunc.groovy @@ -21,6 +21,7 @@ suite("mv_with_date_trunc") { sql "use ${db}" sql "set runtime_filter_mode=OFF"; sql "SET ignore_shape_nodes='PhysicalDistribute,PhysicalProject'" + sql "set pre_materialized_view_rewrite_strategy = TRY_IN_RBO" sql """ drop table if exists lineitem @@ -63,6 +64,7 @@ suite("mv_with_date_trunc") { insert into lineitem values (1, 2, 3, 4, 5.5, 6.5, 7.5, 8.5, 'o', 'k', '2023-01-01', '2023-01-01 00:00:00.999999', '2023-01-01 00:00:00.999999', '2023-10-17', 'a', 'b', 'yyyyyyyyy'), + (1, 2, 3, 4, 5.5, 6.5, 7.5, 8.5, 'o', 'k', '2023-01-16', '2023-01-01 00:00:00.999999', '2023-01-01 00:00:00.999999', '2023-10-17', 'a', 'b', 'yyyyyyyyy'), (1, 2, 3, 4, 5.5, 6.5, 7.5, 8.5, 'o', 'k', '2023-01-01', '2023-01-01 02:01:45', '2023-01-01 02:01:45', '2023-10-17', 'a', 'b', 'yyyyyyyyy'), (1, 2, 3, 4, 5.5, 6.5, 7.5, 8.5, 'o', 'k', '2023-01-01', '2023-01-01 03:02:43', '2023-01-01 03:02:43', '2023-10-17', 'a', 'b', 'yyyyyyyyy'), (1, 2, 3, 4, 5.5, 6.5, 7.5, 8.5, 'o', 'k', '2023-04-01', '2023-04-01 05:03:42', '2023-04-01 05:03:42', '2023-10-17', 'a', 'b', 'yyyyyyyyy'), @@ -98,6 +100,10 @@ suite("mv_with_date_trunc") { sql """analyze table lineitem with sync;""" sql """alter table lineitem modify column l_comment set stats ('row_count'='27');""" + def result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) // second, minute ,hour, day, week, month, quarter, year // 1. expr in date_trunc is simple col @@ -127,6 +133,10 @@ suite("mv_with_date_trunc") { date_trunc(l_commitdate, 'day'); """ order_qt_query1_0_before "${query1_0}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) async_mv_rewrite_success(db, mv1_0, query1_0, "mv1_0") order_qt_query1_0_after "${query1_0}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv1_0""" @@ -154,6 +164,10 @@ suite("mv_with_date_trunc") { l_shipmode; """ order_qt_query1_1_before "${query1_1}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) async_mv_rewrite_success(db, mv1_1, query1_1, "mv1_1") order_qt_query1_1_after "${query1_1}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv1_1""" @@ -175,6 +189,10 @@ suite("mv_with_date_trunc") { '2023-10-17' <= l_commitdate and '2023-10-18' > l_commitdate; """ order_qt_query1_1_0_before "${query1_1_0}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) // without group, should success async_mv_rewrite_success(db, mv1_1_0, query1_1_0, "mv1_1_0") order_qt_query1_1_0_after "${query1_1_0}" @@ -197,6 +215,10 @@ suite("mv_with_date_trunc") { '2023-10-17' <= date_trunc(l_commitdate, 'day') and '2023-10-18' > date_trunc(l_commitdate, 'day'); """ order_qt_query1_1_1_before "${query1_1_1}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) async_mv_rewrite_success(db, mv1_1_1, query1_1_1, "mv1_1_1") order_qt_query1_1_1_after "${query1_1_1}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv1_1_1""" @@ -226,6 +248,10 @@ suite("mv_with_date_trunc") { l_shipmode; """ order_qt_query1_2_before "${query1_2}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) async_mv_rewrite_success(db, mv1_2, query1_2, "mv1_2") order_qt_query1_2_after "${query1_2}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv1_2""" @@ -254,6 +280,10 @@ suite("mv_with_date_trunc") { l_shipmode; """ order_qt_query1_3_before "${query1_3}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) async_mv_rewrite_success(db, mv1_3, query1_3, "mv1_3") order_qt_query1_3_after "${query1_3}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv1_3""" @@ -275,6 +305,10 @@ suite("mv_with_date_trunc") { '2023-10-16 00:05:08' <= l_shipdate and '2023-10-18' > l_shipdate; """ order_qt_query1_3_0_before "${query1_3_0}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) async_mv_rewrite_success_without_check_chosen(db, mv1_3_0, query1_3_0, "mv1_3_0") order_qt_query1_3_0_after "${query1_3_0}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv1_3_0""" @@ -296,6 +330,10 @@ suite("mv_with_date_trunc") { '2023-10-16 00:05:08' <= date_trunc(l_shipdate, 'second') and '2023-10-18' > date_trunc(l_shipdate, 'second'); """ order_qt_query1_3_1_before "${query1_3_1}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) async_mv_rewrite_success_without_check_chosen(db, mv1_3_1, query1_3_1, "mv1_3_1") order_qt_query1_3_1_after "${query1_3_1}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv1_3_1""" @@ -317,6 +355,10 @@ suite("mv_with_date_trunc") { '2023-01-17 00:05:08.999999' <= date_trunc(l_commitdate, 'second') and '2023-10-18' > date_trunc(l_commitdate, 'second'); """ order_qt_query1_3_2_before "${query1_3_2}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) async_mv_rewrite_success_without_check_chosen(db, mv1_3_2, query1_3_2, "mv1_3_2") order_qt_query1_3_2_after "${query1_3_2}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv1_3_2""" @@ -338,6 +380,10 @@ suite("mv_with_date_trunc") { '2023-01-17 00:05:08.999999' <= l_commitdate and '2023-10-18' > l_commitdate; """ order_qt_query1_3_3_before "${query1_3_3}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) // use micro second,should fail async_mv_rewrite_fail(db, mv1_3_3, query1_3_3, "mv1_3_3") order_qt_query1_3_3_after "${query1_3_3}" @@ -368,6 +414,10 @@ suite("mv_with_date_trunc") { l_shipmode; """ order_qt_query1_4_before "${query1_4}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) async_mv_rewrite_success(db, mv1_4, query1_4, "mv1_4") order_qt_query1_4_after "${query1_4}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv1_4""" @@ -396,6 +446,10 @@ suite("mv_with_date_trunc") { l_shipmode; """ order_qt_query1_5_before "${query1_5}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) async_mv_rewrite_success(db, mv1_5, query1_5, "mv1_5") order_qt_query1_5_after "${query1_5}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv1_5""" @@ -417,6 +471,10 @@ suite("mv_with_date_trunc") { '2023-10-18' > l_commitdate and '2023-10-16 00:05:00' <= l_commitdate; """ order_qt_query1_5_0_before "${query1_5_0}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) async_mv_rewrite_success_without_check_chosen(db, mv1_5_0, query1_5_0, "mv1_5_0") order_qt_query1_5_0_after "${query1_5_0}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv1_5_0""" @@ -437,6 +495,10 @@ suite("mv_with_date_trunc") { '2023-10-18' > date_trunc(l_commitdate, 'minute') and '2023-10-16 00:05:00' <= date_trunc(l_commitdate, 'minute'); """ order_qt_query1_5_1_before "${query1_5_1}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) async_mv_rewrite_success_without_check_chosen(db, mv1_5_1, query1_5_1, "mv1_5_1") order_qt_query1_5_1_after "${query1_5_1}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv1_5_1""" @@ -466,6 +528,10 @@ suite("mv_with_date_trunc") { l_shipmode; """ order_qt_query1_6_before "${query1_6}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) async_mv_rewrite_success(db, mv1_6, query1_6, "mv1_6") order_qt_query1_6_after "${query1_6}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv1_6""" @@ -494,6 +560,10 @@ suite("mv_with_date_trunc") { l_shipmode; """ order_qt_query1_7_before "${query1_7}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) async_mv_rewrite_success(db, mv1_7, query1_7, "mv1_7") order_qt_query1_7_after "${query1_7}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv1_7""" @@ -514,6 +584,10 @@ suite("mv_with_date_trunc") { '2023-10-16 01:00:00' <= l_commitdate and '2023-10-18' > l_commitdate; """ order_qt_query1_7_0_before "${query1_7_0}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) async_mv_rewrite_success_without_check_chosen(db, mv1_7_0, query1_7_0, "mv1_7_0") order_qt_query1_7_0_after "${query1_7_0}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv1_7_0""" @@ -535,6 +609,10 @@ suite("mv_with_date_trunc") { '2023-10-16 01:00:00' <= date_trunc(l_commitdate, 'hour') and '2023-10-18' > date_trunc(l_commitdate, 'hour'); """ order_qt_query1_7_1_before "${query1_7_1}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) async_mv_rewrite_success_without_check_chosen(db, mv1_7_1, query1_7_1, "mv1_7_1") order_qt_query1_7_1_after "${query1_7_1}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv1_7_1""" @@ -564,6 +642,10 @@ suite("mv_with_date_trunc") { l_shipmode; """ order_qt_query1_8_before "${query1_8}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) async_mv_rewrite_success_without_check_chosen(db, mv1_8, query1_8, "mv1_8") order_qt_query1_8_after "${query1_8}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv1_8""" @@ -592,6 +674,10 @@ suite("mv_with_date_trunc") { l_shipmode; """ order_qt_query1_9_before "${query1_9}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) async_mv_rewrite_success(db, mv1_9, query1_9, "mv1_9") order_qt_query1_9_after "${query1_9}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv1_9""" @@ -613,6 +699,10 @@ suite("mv_with_date_trunc") { '2023-01-16' <= l_commitdate and '2023-09-04' > l_commitdate; """ order_qt_query1_9_0_before "${query1_9_0}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) async_mv_rewrite_success_without_check_chosen(db, mv1_9_0, query1_9_0, "mv1_9_0") order_qt_query1_9_0_after "${query1_9_0}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv1_9_0""" @@ -635,6 +725,10 @@ suite("mv_with_date_trunc") { '2023-01-16' <= date_trunc(l_commitdate, 'week') and '2023-09-04' > date_trunc(l_commitdate, 'week'); """ order_qt_query1_9_1_before "${query1_9_1}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) async_mv_rewrite_success_without_check_chosen(db, mv1_9_1, query1_9_1, "mv1_9_1") order_qt_query1_9_1_after "${query1_9_1}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv1_9_1""" @@ -663,6 +757,10 @@ suite("mv_with_date_trunc") { l_shipmode; """ order_qt_query1_10_before "${query1_10}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) async_mv_rewrite_success(db, mv1_10, query1_10, "mv1_10") order_qt_query1_10_after "${query1_10}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv1_10""" @@ -691,6 +789,10 @@ suite("mv_with_date_trunc") { l_shipmode; """ order_qt_query1_11_before "${query1_11}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) async_mv_rewrite_success(db, mv1_11, query1_11, "mv1_11") order_qt_query1_11_after "${query1_11}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv1_11""" @@ -712,6 +814,10 @@ suite("mv_with_date_trunc") { '2023-02-01' <= l_commitdate and '2023-12-01' > l_commitdate; """ order_qt_query1_11_0_before "${query1_11_0}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) async_mv_rewrite_success_without_check_chosen(db, mv1_11_0, query1_11_0, "mv1_11_0") order_qt_query1_11_0_after "${query1_11_0}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv1_11_0""" @@ -733,6 +839,10 @@ suite("mv_with_date_trunc") { '2023-02-01' <= date_trunc(l_commitdate, 'month') and '2023-12-01' > date_trunc(l_commitdate, 'month'); """ order_qt_query1_11_1_before "${query1_11_1}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) async_mv_rewrite_success_without_check_chosen(db, mv1_11_1, query1_11_1, "mv1_11_1") order_qt_query1_11_1_after "${query1_11_1}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv1_11_1""" @@ -762,6 +872,10 @@ suite("mv_with_date_trunc") { l_shipmode; """ order_qt_query1_12_before "${query1_12}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) async_mv_rewrite_success(db, mv1_12, query1_12, "mv1_12") order_qt_query1_12_after "${query1_12}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv1_12""" @@ -790,6 +904,10 @@ suite("mv_with_date_trunc") { l_shipmode; """ order_qt_query1_13_before "${query1_13}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) async_mv_rewrite_success(db, mv1_13, query1_13, "mv1_13") order_qt_query1_13_after "${query1_13}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv1_13""" @@ -811,6 +929,10 @@ suite("mv_with_date_trunc") { '2023-04-01' <= l_shipdate and '2023-10-01' > l_shipdate; """ order_qt_query1_13_0_before "${query1_13_0}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) async_mv_rewrite_success_without_check_chosen(db, mv1_13_0, query1_13_0, "mv1_13_0") order_qt_query1_13_0_after "${query1_13_0}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv1_13_0""" @@ -832,6 +954,10 @@ suite("mv_with_date_trunc") { '2023-04-01' <= date_trunc(l_shipdate, 'quarter') and '2023-10-01' > date_trunc(l_shipdate, 'quarter'); """ order_qt_query1_13_1_before "${query1_13_1}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) async_mv_rewrite_success_without_check_chosen(db, mv1_13_1, query1_13_1, "mv1_13_1") order_qt_query1_13_1_after "${query1_13_1}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv1_13_1""" @@ -861,6 +987,10 @@ suite("mv_with_date_trunc") { l_shipmode; """ order_qt_query1_14_before "${query1_14}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) async_mv_rewrite_success(db, mv1_14, query1_14, "mv1_14") order_qt_query1_14_after "${query1_14}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv1_14""" @@ -889,6 +1019,10 @@ suite("mv_with_date_trunc") { l_shipmode; """ order_qt_query1_15_before "${query1_15}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) async_mv_rewrite_success(db, mv1_15, query1_15, "mv1_15") order_qt_query1_15_after "${query1_15}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv1_15""" @@ -910,6 +1044,10 @@ suite("mv_with_date_trunc") { '2023-01-01' <= l_commitdate and '2024-01-01' > l_commitdate; """ order_qt_query1_15_0_before "${query1_15_0}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) async_mv_rewrite_success_without_check_chosen(db, mv1_15_0, query1_15_0, "mv1_15_0") order_qt_query1_15_0_after "${query1_15_0}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv1_15_0""" @@ -931,6 +1069,10 @@ suite("mv_with_date_trunc") { '2023-01-01' <= date_trunc(l_commitdate, 'year') and '2024-01-01' > date_trunc(l_commitdate, 'year'); """ order_qt_query1_15_1_before "${query1_15_1}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) async_mv_rewrite_success_without_check_chosen(db, mv1_15_1, query1_15_1, "mv1_15_1") order_qt_query1_15_1_after "${query1_15_1}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv1_15_1""" @@ -960,6 +1102,10 @@ suite("mv_with_date_trunc") { l_shipmode; """ order_qt_query2_0_before "${query2_0}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) async_mv_rewrite_fail(db, mv2_0, query2_0, "mv2_0") order_qt_query2_0_after "${query2_0}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv2_0""" @@ -988,7 +1134,11 @@ suite("mv_with_date_trunc") { l_shipmode; """ order_qt_query2_1_before "${query2_1}" - async_mv_rewrite_fail(db, mv2_1, query2_1, "mv2_1") + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) + async_mv_rewrite_success_without_check_chosen(db, mv2_1, query2_1, "mv2_1") order_qt_query2_1_after "${query2_1}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv2_1""" @@ -1016,6 +1166,10 @@ suite("mv_with_date_trunc") { l_shipmode; """ order_qt_query2_2_before "${query2_2}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) // l_shipdate >= '2023-01-17 00:05:01' because l_shipdate data type is date, so // simply to l_shipdate >= '2023-01-18 00:00:00' async_mv_rewrite_success(db, mv2_2, query2_2, "mv2_2") @@ -1046,6 +1200,10 @@ suite("mv_with_date_trunc") { l_shipmode; """ order_qt_query2_3_before "${query2_3}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) async_mv_rewrite_fail(db, mv2_3, query2_3, "mv2_3") order_qt_query2_3_after "${query2_3}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv2_3""" @@ -1075,6 +1233,10 @@ suite("mv_with_date_trunc") { l_shipmode; """ order_qt_query3_0_before "${query3_0}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) async_mv_rewrite_fail(db, mv3_0, query3_0, "mv3_0") order_qt_query3_0_after "${query3_0}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv3_0""" @@ -1103,6 +1265,10 @@ suite("mv_with_date_trunc") { l_shipmode; """ order_qt_query3_1_before "${query3_1}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) async_mv_rewrite_fail(db, mv3_1, query3_1, "mv3_1") order_qt_query3_1_after "${query3_1}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv3_1""" @@ -1131,6 +1297,10 @@ suite("mv_with_date_trunc") { l_shipmode; """ order_qt_query3_2_before "${query3_2}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) async_mv_rewrite_success(db, mv3_2, query3_2, "mv3_2") order_qt_query3_2_after "${query3_2}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv3_2""" @@ -1159,6 +1329,10 @@ suite("mv_with_date_trunc") { l_shipmode; """ order_qt_query3_3_before "${query3_3}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) async_mv_rewrite_success(db, mv3_3, query3_3, "mv3_3") order_qt_query3_3_after "${query3_3}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv3_3""" @@ -1188,6 +1362,10 @@ suite("mv_with_date_trunc") { l_shipmode; """ order_qt_query3_4_before "${query3_4}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) async_mv_rewrite_fail(db, mv3_4, query3_4, "mv3_4") order_qt_query3_4_after "${query3_4}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv3_4""" @@ -1217,6 +1395,10 @@ suite("mv_with_date_trunc") { l_shipmode; """ order_qt_query3_5_before "${query3_5}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) async_mv_rewrite_fail(db, mv3_5, query3_5, "mv3_5") order_qt_query3_5_after "${query3_5}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv3_5""" @@ -1225,20 +1407,20 @@ suite("mv_with_date_trunc") { create_async_partition_mv(db, "mv4_0", """ select l_shipmode, - date_trunc(l_shipdate, 'day') as day_trunc, + date_trunc(l_shipdate, 'month') as day_trunc, count(*) from lineitem group by l_shipmode, - date_trunc(l_shipdate, 'day'); + date_trunc(l_shipdate, 'month'); """, "(day_trunc)") create_async_partition_mv(db, "mv4_1", """ select l_shipmode, - date_trunc(l_shipdate, 'day') as day_trunc + date_trunc(l_shipdate, 'month') as day_trunc from lineitem; """, "(day_trunc)") @@ -1254,16 +1436,20 @@ suite("mv_with_date_trunc") { def query4_0 = """ select l_shipmode, - date_trunc(l_shipdate, 'day') as day_trunc, + date_trunc(l_shipdate, 'month') as day_trunc, count(*) from lineitem where l_shipdate >= '2023-01-01' and l_shipdate < '2023-05-01' group by l_shipmode, - date_trunc(l_shipdate, 'day'); + date_trunc(l_shipdate, 'month'); """ - mv_rewrite_success(query4_0, "mv4_0") + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) + mv_rewrite_any_success(query4_0, ["mv4_0", "mv4_1"], is_partition_statistics_ready(db, ["lineitem", "mv4_0", "mv4_1"])) order_qt_query4_0_after "${query4_0}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv4_0""" @@ -1271,11 +1457,15 @@ suite("mv_with_date_trunc") { def query4_1 = """ select l_shipmode, - date_trunc(l_shipdate, 'day') as day_trunc + date_trunc(l_shipdate, 'month') as day_trunc from lineitem where l_shipdate >= '2023-01-01' and l_shipdate < '2023-05-01'; """ + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) mv_rewrite_success_without_check_chosen(query4_1, "mv4_1") order_qt_query4_1_after "${query4_1}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv4_1""" @@ -1309,6 +1499,10 @@ suite("mv_with_date_trunc") { date_trunc(l_commitdate_var, 'day'); """ order_qt_query5_0_before "${query5_0}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) // should success because as datetime would be datetime(6) async_mv_rewrite_success(db, mv5_0, query5_0, "mv5_0") order_qt_query5_0_after "${query5_0}" @@ -1340,6 +1534,10 @@ suite("mv_with_date_trunc") { date_trunc(l_commitdate_var, 'day'); """ order_qt_query5_1_before "${query5_1}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) // fail because as datetime would be datetime(0), but mv is datetime(6) async_mv_rewrite_fail(db, mv5_1, query5_1, "mv5_1") order_qt_query5_1_after "${query5_1}" @@ -1371,8 +1569,13 @@ suite("mv_with_date_trunc") { date_trunc(l_commitdate_var, 'minute'); """ order_qt_query5_3_before "${query5_3}" + result = sql """show table stats lineitem""" + logger.info("lineitem table stats: " + result) + result = sql """show index stats lineitem lineitem""" + logger.info("lineitem index stats: " + result) // data is not valid async_mv_rewrite_success(db, mv5_3, query5_3, "mv5_3") order_qt_query5_3_after "${query5_3}" sql """ DROP MATERIALIZED VIEW IF EXISTS mv5_3""" } + From b637eea0f90ce14e758c821ecb6e42f8c1181341 Mon Sep 17 00:00:00 2001 From: seawinde Date: Thu, 11 Sep 2025 16:00:54 +0800 Subject: [PATCH 2/3] fix regression test --- .../nereids_rules_p0/mv/date_trunc/mv_with_date_trunc.groovy | 1 - 1 file changed, 1 deletion(-) diff --git a/regression-test/suites/nereids_rules_p0/mv/date_trunc/mv_with_date_trunc.groovy b/regression-test/suites/nereids_rules_p0/mv/date_trunc/mv_with_date_trunc.groovy index 7f49e95c005729..590b5741664998 100644 --- a/regression-test/suites/nereids_rules_p0/mv/date_trunc/mv_with_date_trunc.groovy +++ b/regression-test/suites/nereids_rules_p0/mv/date_trunc/mv_with_date_trunc.groovy @@ -21,7 +21,6 @@ suite("mv_with_date_trunc") { sql "use ${db}" sql "set runtime_filter_mode=OFF"; sql "SET ignore_shape_nodes='PhysicalDistribute,PhysicalProject'" - sql "set pre_materialized_view_rewrite_strategy = TRY_IN_RBO" sql """ drop table if exists lineitem From 884e339d676fb52761e7c57bad183fb0a0012e94 Mon Sep 17 00:00:00 2001 From: seawinde Date: Fri, 12 Sep 2025 11:29:41 +0800 Subject: [PATCH 3/3] fix test --- .../mv/date_trunc/mv_with_date_trunc.out | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/regression-test/data/nereids_rules_p0/mv/date_trunc/mv_with_date_trunc.out b/regression-test/data/nereids_rules_p0/mv/date_trunc/mv_with_date_trunc.out index 3b2adf22c3a2fd..d60a4d7f9285a6 100644 --- a/regression-test/data/nereids_rules_p0/mv/date_trunc/mv_with_date_trunc.out +++ b/regression-test/data/nereids_rules_p0/mv/date_trunc/mv_with_date_trunc.out @@ -716,18 +716,18 @@ b 2023-04-01 b 2023-04-01 -- !query5_0_before -- -b 2023-10-17T00:00 3 +b 2023-10-17T00:00 4 -- !query5_0_after -- -b 2023-10-17T00:00 3 +b 2023-10-17T00:00 4 -- !query5_1_before -- b 2023-10-16T00:00 1 -b 2023-10-17T00:00 2 +b 2023-10-17T00:00 3 -- !query5_1_after -- b 2023-10-16T00:00 1 -b 2023-10-17T00:00 2 +b 2023-10-17T00:00 3 -- !query5_3_before -- b 2023-10-01T17:09 1 @@ -737,9 +737,9 @@ b 2023-10-15T00:00 2 b 2023-10-15T23:59 1 b 2023-10-16T00:00 2 b 2023-10-16T23:59 1 -b 2023-10-17T00:00 2 +b 2023-10-17T00:00 3 b 2023-10-17T23:59 1 -b 2023-10-18T00:00 2 +b 2023-10-18T00:00 3 b 2023-10-18T23:59 1 -- !query5_3_after -- @@ -750,8 +750,8 @@ b 2023-10-15T00:00 2 b 2023-10-15T23:59 1 b 2023-10-16T00:00 2 b 2023-10-16T23:59 1 -b 2023-10-17T00:00 2 +b 2023-10-17T00:00 3 b 2023-10-17T23:59 1 -b 2023-10-18T00:00 2 +b 2023-10-18T00:00 3 b 2023-10-18T23:59 1