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 b641a36a4d8 [feature](mtmv) Materialized view can participate in 
transparent query rewrite even when data changes occur in its non-partitioned 
base tables #56745 (#57924)
b641a36a4d8 is described below

commit b641a36a4d87a6a1ee802c632447d20bd258571b
Author: seawinde <[email protected]>
AuthorDate: Thu Nov 13 14:30:27 2025 +0800

    [feature](mtmv) Materialized view can participate in transparent query 
rewrite even when data changes occur in its non-partitioned base tables #56745 
(#57924)
    
    ### What problem does this PR solve?
    
    pr: https://github.com/apache/doris/pull/56745
    commitId: 958c5aa1
    
    Issue Number: close #xxx
    
    Related PR: #xxx
    
    Problem Summary:
    
    ### Release note
    
    None
    
    ### Check List (For Author)
    
    - Test <!-- At least one of them must be included. -->
        - [ ] Regression test
        - [ ] Unit Test
        - [ ] Manual test (add detailed scripts or steps below)
        - [ ] No need to test or manual test. Explain why:
    - [ ] This is a refactor/code format and no logic has been changed.
            - [ ] Previous test can cover this change.
            - [ ] No code files have been changed.
            - [ ] Other reason <!-- Add your reason?  -->
    
    - Behavior changed:
        - [ ] No.
        - [ ] Yes. <!-- Explain the behavior change -->
    
    - Does this need documentation?
        - [ ] No.
    - [ ] Yes. <!-- Add document PR link here. eg:
    https://github.com/apache/doris-website/pull/1214 -->
    
    ### Check List (For Reviewer who merge this PR)
    
    - [ ] Confirm the release note
    - [ ] Confirm test cases
    - [ ] Confirm document
    - [ ] Add branch pick label <!-- Add branch pick label that this PR
    should merge into -->
---
 .../main/java/org/apache/doris/catalog/MTMV.java   |  19 ++
 .../apache/doris/common/util/PropertyAnalyzer.java |   4 +-
 .../org/apache/doris/mtmv/MTMVPropertyUtil.java    |   8 +
 .../org/apache/doris/mtmv/MTMVRewriteUtil.java     |   3 +-
 .../mv/availability/consistency_relaxed_tables.out |  19 ++
 .../availability/consistency_relaxed_tables.groovy | 262 +++++++++++++++++++++
 6 files changed, 313 insertions(+), 2 deletions(-)

diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/MTMV.java 
b/fe/fe-core/src/main/java/org/apache/doris/catalog/MTMV.java
index b3890881adf..1ccb93502c1 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/MTMV.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/MTMV.java
@@ -308,6 +308,25 @@ public class MTMV extends OlapTable {
         }
     }
 
+    public Set<TableName> getQueryRewriteConsistencyRelaxedTables() {
+        Set<TableName> res = Sets.newHashSet();
+        readMvLock();
+        try {
+            String stillRewrittenTables
+                    = 
mvProperties.get(PropertyAnalyzer.ASYNC_MV_QUERY_REWRITE_CONSISTENCY_RELAXED_TABLES);
+            if (StringUtils.isEmpty(stillRewrittenTables)) {
+                return res;
+            }
+            String[] split = stillRewrittenTables.split(",");
+            for (String alias : split) {
+                res.add(new TableName(alias));
+            }
+            return res;
+        } finally {
+            readMvUnlock();
+        }
+    }
+
     /**
      * Called when in query, Should use one connection context in query
      */
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/common/util/PropertyAnalyzer.java 
b/fe/fe-core/src/main/java/org/apache/doris/common/util/PropertyAnalyzer.java
index ca7d7ef0b6b..c096fef61d0 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/common/util/PropertyAnalyzer.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/common/util/PropertyAnalyzer.java
@@ -58,7 +58,6 @@ import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Sets;
-import lombok.val;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
@@ -202,6 +201,9 @@ public class PropertyAnalyzer {
     public static final String PROPERTIES_USE_FOR_REWRITE =
             "use_for_rewrite";
     public static final String PROPERTIES_EXCLUDED_TRIGGER_TABLES = 
"excluded_trigger_tables";
+
+    public static final String 
ASYNC_MV_QUERY_REWRITE_CONSISTENCY_RELAXED_TABLES =
+            "async_mv.query_rewrite.consistency_relaxed_tables";
     public static final String PROPERTIES_REFRESH_PARTITION_NUM = 
"refresh_partition_num";
     public static final String PROPERTIES_WORKLOAD_GROUP = "workload_group";
     public static final String PROPERTIES_PARTITION_SYNC_LIMIT = 
"partition_sync_limit";
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/mtmv/MTMVPropertyUtil.java 
b/fe/fe-core/src/main/java/org/apache/doris/mtmv/MTMVPropertyUtil.java
index dbaccaf9247..eeae843aae6 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/mtmv/MTMVPropertyUtil.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/mtmv/MTMVPropertyUtil.java
@@ -33,6 +33,7 @@ public class MTMVPropertyUtil {
     public static final Set<String> MV_PROPERTY_KEYS = Sets.newHashSet(
             PropertyAnalyzer.PROPERTIES_GRACE_PERIOD,
             PropertyAnalyzer.PROPERTIES_EXCLUDED_TRIGGER_TABLES,
+            PropertyAnalyzer.ASYNC_MV_QUERY_REWRITE_CONSISTENCY_RELAXED_TABLES,
             PropertyAnalyzer.PROPERTIES_REFRESH_PARTITION_NUM,
             PropertyAnalyzer.PROPERTIES_WORKLOAD_GROUP,
             PropertyAnalyzer.PROPERTIES_PARTITION_SYNC_LIMIT,
@@ -53,6 +54,9 @@ public class MTMVPropertyUtil {
             case PropertyAnalyzer.PROPERTIES_EXCLUDED_TRIGGER_TABLES:
                 analyzeExcludedTriggerTables(value);
                 break;
+            case 
PropertyAnalyzer.ASYNC_MV_QUERY_REWRITE_CONSISTENCY_RELAXED_TABLES:
+                analyzeDataChangeStillRewrittenTables(value);
+                break;
             case PropertyAnalyzer.PROPERTIES_WORKLOAD_GROUP:
                 analyzeWorkloadGroup(value);
                 break;
@@ -121,6 +125,10 @@ public class MTMVPropertyUtil {
         // do nothing
     }
 
+    private static void analyzeDataChangeStillRewrittenTables(String value) {
+        // do nothing
+    }
+
     private static void analyzeGracePeriod(String value) {
         if (StringUtils.isEmpty(value)) {
             return;
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/mtmv/MTMVRewriteUtil.java 
b/fe/fe-core/src/main/java/org/apache/doris/mtmv/MTMVRewriteUtil.java
index 58b2a37d504..751362be92d 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/mtmv/MTMVRewriteUtil.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/mtmv/MTMVRewriteUtil.java
@@ -22,6 +22,7 @@ import org.apache.doris.catalog.Partition;
 import org.apache.doris.common.AnalysisException;
 import org.apache.doris.qe.ConnectContext;
 
+import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Sets;
@@ -91,7 +92,7 @@ public class MTMVRewriteUtil {
             try {
                 if (MTMVPartitionUtil.isMTMVPartitionSync(refreshContext, 
partition.getName(),
                         mtmvRelation.getBaseTablesOneLevel(),
-                        Sets.newHashSet())) {
+                        forceConsistent ? ImmutableSet.of() : 
mtmv.getQueryRewriteConsistencyRelaxedTables())) {
                     res.add(partition);
                 }
             } catch (AnalysisException e) {
diff --git 
a/regression-test/data/nereids_rules_p0/mv/availability/consistency_relaxed_tables.out
 
b/regression-test/data/nereids_rules_p0/mv/availability/consistency_relaxed_tables.out
new file mode 100644
index 00000000000..59b0ed98b81
--- /dev/null
+++ 
b/regression-test/data/nereids_rules_p0/mv/availability/consistency_relaxed_tables.out
@@ -0,0 +1,19 @@
+-- This file is automatically generated. You should know what you did if you 
want to edit this
+-- !mv_1_before_insert --
+2023-10-17     2023-10-17      2       3       36.00
+2023-10-18     2023-10-18      2       3       18.00
+2023-10-19     2023-10-19      2       3       24.00
+2023-10-22     2023-10-22      2       3       24.00
+
+-- !mv_2_after_insert --
+2023-10-17     2023-10-17      2       3       48.00
+2023-10-18     2023-10-18      2       3       36.00
+2023-10-19     2023-10-19      2       3       48.00
+2023-10-22     2023-10-22      2       3       48.00
+
+-- !mv_3_after_insert --
+2023-10-17     2023-10-17      2       3       60.00
+2023-10-18     2023-10-18      2       3       54.00
+2023-10-19     2023-10-19      2       3       72.00
+2023-10-22     2023-10-22      2       3       72.00
+
diff --git 
a/regression-test/suites/nereids_rules_p0/mv/availability/consistency_relaxed_tables.groovy
 
b/regression-test/suites/nereids_rules_p0/mv/availability/consistency_relaxed_tables.groovy
new file mode 100644
index 00000000000..106b73ac675
--- /dev/null
+++ 
b/regression-test/suites/nereids_rules_p0/mv/availability/consistency_relaxed_tables.groovy
@@ -0,0 +1,262 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+
+suite("consistency_relaxed_tables") {
+    String db = context.config.getDbNameByFile(context.file)
+    sql "use ${db}"
+    sql "set runtime_filter_mode=OFF"
+
+    def initTable = {
+        sql """
+    drop table if exists orders_p
+    """
+
+        sql """
+    CREATE TABLE IF NOT EXISTS orders_p  (
+      o_orderkey       integer not null,
+      o_custkey        integer not null,
+      o_orderstatus    char(9) not null,
+      o_totalprice     decimalv3(15,2) not null,
+      o_orderdate      date not null,
+      o_orderpriority  char(15) not null,  
+      o_clerk          char(15) not null, 
+      o_shippriority   integer not null,
+      o_comment        varchar(79) not null
+    )
+    DUPLICATE KEY(o_orderkey, o_custkey)
+    DISTRIBUTED BY HASH(o_orderkey) BUCKETS 3
+    PROPERTIES (
+      "replication_num" = "1"
+    );
+    """
+
+        sql """
+    drop table if exists lineitem_p
+    """
+
+        // test pre init partition
+        sql"""
+    CREATE TABLE IF NOT EXISTS lineitem_p (
+      l_orderkey    integer not null,
+      l_partkey     integer not null,
+      l_suppkey     integer not null,
+      l_linenumber  integer not null,
+      l_quantity    decimalv3(15,2) not null,
+      l_extendedprice  decimalv3(15,2) not null,
+      l_discount    decimalv3(15,2) not null,
+      l_tax         decimalv3(15,2) not null,
+      l_returnflag  char(1) not null,
+      l_linestatus  char(1) not null,
+      l_shipdate    date not null,
+      l_commitdate  date not null,
+      l_receiptdate date not null,
+      l_shipinstruct char(25) not null,
+      l_shipmode     char(10) not null,
+      l_comment      varchar(44) not null
+    )
+    DUPLICATE KEY(l_orderkey, l_partkey, l_suppkey, l_linenumber)
+    PARTITION BY RANGE(l_shipdate) 
+    (FROM ('2023-09-16') TO ('2023-10-30') INTERVAL 1 DAY)
+    DISTRIBUTED BY HASH(l_orderkey) BUCKETS 3
+    PROPERTIES (
+      "replication_num" = "1"
+    );
+    """
+
+    sql """
+    drop table if exists partsupp_p
+    """
+
+        sql """
+    CREATE TABLE IF NOT EXISTS partsupp_p (
+      ps_partkey     INTEGER NOT NULL,
+      ps_suppkey     INTEGER NOT NULL,
+      ps_availqty    INTEGER NOT NULL,
+      ps_supplycost  DECIMALV3(15,2)  NOT NULL,
+      ps_comment     VARCHAR(199) NOT NULL 
+    )
+    DUPLICATE KEY(ps_partkey, ps_suppkey)
+    DISTRIBUTED BY HASH(ps_partkey) BUCKETS 3
+    PROPERTIES (
+      "replication_num" = "1"
+    )
+    """
+
+        sql"""
+    insert into orders_p values 
+    (1, 1, 'ok', 1, '2023-10-17', 'a', 'b', 1, 'yy'),
+    (1, 1, 'ok', 1, '2023-10-17', 'a', 'b', 1, 'yy'),
+    (2, 2, 'ok', 1, '2023-10-18', 'c','d',2, 'mm'),
+    (2, 2, 'ok', 1, '2023-10-18', 'c','d',2, 'mm'),
+    (2, 2, 'ok', 1, '2023-10-18', 'c','d',2, 'mm'),
+    (3, 3, 'ok', 1, '2023-10-19', 'a', 'b', 1, 'yy'),
+    (3, 3, 'ok', 1, '2023-10-19', 'a', 'b', 1, 'yy'),
+    (3, 3, 'ok', 1, '2023-10-19', 'a', 'b', 1, 'yy'),
+    (3, 3, 'ok', 1, '2023-10-19', 'a', 'b', 1, 'yy'),
+    (3, 3, 'ok', 1, '2023-10-22', 'a', 'b', 1, 'yy'),
+    (3, 3, 'ok', 1, '2023-10-22', 'a', 'b', 1, 'yy'),
+    (3, 3, 'ok', 1, '2023-10-22', 'a', 'b', 1, 'yy'),
+    (3, 3, 'ok', 1, '2023-10-22', 'a', 'b', 1, 'yy'); 
+    """
+
+        sql """
+    insert into lineitem_p values 
+    (1, 2, 3, 4, 5.5, 6.5, 1.5, 1.5, 'o', 'k', '2023-10-17', '2023-10-17', 
'2023-10-17', 'a', 'b', 'yyyyyyyyy'),
+    (1, 2, 3, 4, 5.5, 6.5, 2.5, 2.5, 'o', 'k', '2023-10-17', '2023-10-17', 
'2023-10-17', 'a', 'b', 'yyyyyyyyy'),
+    (1, 2, 3, 4, 5.5, 6.5, 3.5, 3.5, 'o', 'k', '2023-10-17', '2023-10-17', 
'2023-10-17', 'a', 'b', 'yyyyyyyyy'),
+    (2, 2, 3, 4, 5.5, 6.5, 4.5, 4.5, 'o', 'k', '2023-10-18', '2023-10-18', 
'2023-10-18', 'a', 'b', 'yyyyyyyyy'),
+    (2, 2, 3, 4, 5.5, 6.5, 5.5, 5.5, 'o', 'k', '2023-10-18', '2023-10-18', 
'2023-10-18', 'a', 'b', 'yyyyyyyyy'),
+    (2, 2, 3, 4, 5.5, 6.5, 6.5, 6.5, 'o', 'k', '2023-10-18', '2023-10-18', 
'2023-10-18', 'a', 'b', 'yyyyyyyyy'),
+    (3, 2, 3, 6, 7.5, 8.5, 7.5, 7.5, 'k', 'o', '2023-10-19', '2023-10-19', 
'2023-10-19', 'c', 'd', 'xxxxxxxxx'),
+    (3, 2, 3, 6, 7.5, 8.5, 9.5, 8.5, 'k', 'o', '2023-10-19', '2023-10-19', 
'2023-10-19', 'c', 'd', 'xxxxxxxxx'),
+    (3, 2, 3, 6, 7.5, 8.5, 9.5, 9.5, 'k', 'o', '2023-10-19', '2023-10-19', 
'2023-10-19', 'c', 'd', 'xxxxxxxxx'),
+    (3, 2, 3, 6, 7.5, 8.5, 9.5, 10.5, 'k', 'o', '2023-10-22', '2023-10-22', 
'2023-10-22', 'c', 'd', 'xxxxxxxxx'),
+    (3, 2, 3, 6, 7.5, 8.5, 9.5, 11.5, 'k', 'o', '2023-10-22', '2023-10-22', 
'2023-10-22', 'c', 'd', 'xxxxxxxxx'),
+    (3, 2, 3, 6, 7.5, 8.5, 9.5, 12.5, 'k', 'o', '2023-10-22', '2023-10-22', 
'2023-10-22', 'c', 'd', 'xxxxxxxxx');
+    """
+
+        sql """
+    insert into partsupp_p values
+    (2, 3, 9, 10.01, 'supply1'),
+    (2, 3, 10, 11.01, 'supply2');
+    """
+
+        multi_sql """
+        analyze table lineitem_p with sync;
+        analyze table orders_p with sync;
+        analyze table partsupp_p with sync;
+        """
+
+        sql """alter table orders_p modify column o_comment set stats 
('row_count'='13');"""
+        sql """alter table lineitem_p modify column l_comment set stats 
('row_count'='12');"""
+        sql """alter table partsupp_p modify column ps_partkey set stats 
('row_count'='2');"""
+    }
+
+
+    def mv_name = "consistency_relaxed_tables_mv_1"
+
+    def mv_def_sql = """
+    select l_shipdate, o_orderdate, ps_partkey,
+    l_suppkey, sum(o_totalprice) as sum_total
+    from lineitem_p
+    left join orders_p on l_shipdate = o_orderdate
+    left join partsupp_p on l_partkey = ps_partkey and l_suppkey = ps_suppkey
+    group by
+    l_shipdate,
+    o_orderdate,
+    ps_partkey,
+    l_suppkey;
+    """
+
+    initTable()
+    create_async_partition_mv(db, mv_name, mv_def_sql, "(l_shipdate)")
+
+    sql """ALTER MATERIALIZED VIEW ${mv_name} 
set('async_mv.query_rewrite.consistency_relaxed_tables'='orders_p');"""
+    sql"""
+    insert into orders_p values 
+    (1, 1, 'ok', 2, '2023-10-17', 'a', 'b', 1, 'yy')
+    """
+    // set consistency_relaxed_tables and dimension table has new data, mv can 
be used
+    mv_rewrite_success(mv_def_sql, mv_name)
+    sql """refresh materialized view ${mv_name} auto;"""
+    waitingMTMVTaskFinishedByMvName(mv_name)
+
+    def refresh_info = sql """select 
+            JobName, Status, RefreshMode
+            from tasks("type"="mv") where JobName="${getJobName(db, mv_name)}" 
order by CreateTime desc limit 1;"""
+    logger.info("refresh_info: " + refresh_info.toString())
+    assert (refresh_info[0][1] == "SUCCESS")
+    assert (refresh_info[0][2] == "COMPLETE")
+
+
+    //  set consistency_relaxed_tables and dimension table has new data, mv 
couldn't be used
+    sql """ALTER MATERIALIZED VIEW ${mv_name} 
set('async_mv.query_rewrite.consistency_relaxed_tables'='');"""
+    sql"""
+    insert into orders_p values 
+    (1, 1, 'ok', 2, '2023-10-17', 'a', 'b', 1, 'yy')
+    """
+    mv_not_part_in(mv_def_sql, mv_name)
+    sql """refresh materialized view ${mv_name} auto;"""
+    waitingMTMVTaskFinishedByMvName(mv_name)
+
+    def refresh_info1 = sql """select 
+            JobName, Status, RefreshMode
+            from tasks("type"="mv") where JobName="${getJobName(db, mv_name)}" 
order by CreateTime desc limit 1;"""
+    logger.info("refresh_info1: " + refresh_info1.toString())
+    assert (refresh_info1[0][1] == "SUCCESS")
+    assert (refresh_info1[0][2] == "COMPLETE")
+    order_qt_mv_1_before_insert "select * from ${mv_name}"
+
+
+    //  set consistency_relaxed_tables and dimension table has new data, 
rewrite in dml should not use the mv
+    def another_mv_name = "consistency_relaxed_tables_mv2"
+    create_async_partition_mv(db, another_mv_name, mv_def_sql, "(l_shipdate)")
+
+    sql """ALTER MATERIALIZED VIEW ${another_mv_name} 
set('async_mv.query_rewrite.consistency_relaxed_tables'='orders_p');"""
+    sql"""
+    insert into orders_p values
+    (1, 1, 'ok', 1, '2023-10-17', 'a', 'b', 1, 'yy'),
+    (1, 1, 'ok', 1, '2023-10-17', 'a', 'b', 1, 'yy'),
+    (2, 2, 'ok', 1, '2023-10-18', 'c','d',2, 'mm'),
+    (2, 2, 'ok', 1, '2023-10-18', 'c','d',2, 'mm'),
+    (2, 2, 'ok', 1, '2023-10-18', 'c','d',2, 'mm'),
+    (3, 3, 'ok', 1, '2023-10-19', 'a', 'b', 1, 'yy'),
+    (3, 3, 'ok', 1, '2023-10-19', 'a', 'b', 1, 'yy'),
+    (3, 3, 'ok', 1, '2023-10-19', 'a', 'b', 1, 'yy'),
+    (3, 3, 'ok', 1, '2023-10-19', 'a', 'b', 1, 'yy'),
+    (3, 3, 'ok', 1, '2023-10-22', 'a', 'b', 1, 'yy'),
+    (3, 3, 'ok', 1, '2023-10-22', 'a', 'b', 1, 'yy'),
+    (3, 3, 'ok', 1, '2023-10-22', 'a', 'b', 1, 'yy'),
+    (3, 3, 'ok', 1, '2023-10-22', 'a', 'b', 1, 'yy');
+    """
+    sql """refresh materialized view ${another_mv_name} auto;"""
+    waitingMTMVTaskFinishedByMvName(another_mv_name, db)
+    sql """set enable_materialized_view_rewrite = false;"""
+    // should contain new data but not use another_mv_name to rewrite when 
insert
+    order_qt_mv_2_after_insert "select * from ${another_mv_name}"
+
+
+
+    //  set consistency_relaxed_tables and dimension table has new data, 
rewrite in dml should not use the mv
+    def another_mv_name2 = "consistency_relaxed_tables_mv3"
+    create_async_partition_mv(db, another_mv_name2, mv_def_sql, "(l_shipdate)")
+
+    sql """ALTER MATERIALIZED VIEW ${another_mv_name2} 
set('async_mv.query_rewrite.consistency_relaxed_tables'='orders_p');"""
+    sql"""
+    insert into orders_p values
+    (1, 1, 'ok', 1, '2023-10-17', 'a', 'b', 1, 'yy'),
+    (1, 1, 'ok', 1, '2023-10-17', 'a', 'b', 1, 'yy'),
+    (2, 2, 'ok', 1, '2023-10-18', 'c','d',2, 'mm'),
+    (2, 2, 'ok', 1, '2023-10-18', 'c','d',2, 'mm'),
+    (2, 2, 'ok', 1, '2023-10-18', 'c','d',2, 'mm'),
+    (3, 3, 'ok', 1, '2023-10-19', 'a', 'b', 1, 'yy'),
+    (3, 3, 'ok', 1, '2023-10-19', 'a', 'b', 1, 'yy'),
+    (3, 3, 'ok', 1, '2023-10-19', 'a', 'b', 1, 'yy'),
+    (3, 3, 'ok', 1, '2023-10-19', 'a', 'b', 1, 'yy'),
+    (3, 3, 'ok', 1, '2023-10-22', 'a', 'b', 1, 'yy'),
+    (3, 3, 'ok', 1, '2023-10-22', 'a', 'b', 1, 'yy'),
+    (3, 3, 'ok', 1, '2023-10-22', 'a', 'b', 1, 'yy'),
+    (3, 3, 'ok', 1, '2023-10-22', 'a', 'b', 1, 'yy');
+    """
+    sql """refresh materialized view ${another_mv_name2} auto;"""
+    waitingMTMVTaskFinishedByMvName(another_mv_name2, db)
+    sql """set enable_materialized_view_rewrite = false;"""
+    // should not use another_mv_name to rewrite when refresh
+    order_qt_mv_3_after_insert "select * from ${another_mv_name2}"
+
+}


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

Reply via email to