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

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


The following commit(s) were added to refs/heads/master by this push:
     new 685f87cad81 [fix](mtmv)The refresh method for MTMV is commit. If the 
status is PAUSED, no more tasks should be generated (#46020)
685f87cad81 is described below

commit 685f87cad81b9fd987bd7127d06b432c0f80ad42
Author: zhangdong <[email protected]>
AuthorDate: Thu Jan 2 11:56:58 2025 +0800

    [fix](mtmv)The refresh method for MTMV is commit. If the status is PAUSED, 
no more tasks should be generated (#46020)
    
    ### What problem does this PR solve?
    The refresh method for MTMV is commit. If the status is PAUSED, no more
    tasks should be generated
    
    Issue Number: close #xxx
    
    Related PR: #xxx
    
    Problem Summary:
    The refresh method for MTMV is commit. If the status is PAUSED, no more
    tasks should be generated
---
 .../java/org/apache/doris/mtmv/MTMVJobManager.java |  7 ++++++
 regression-test/data/mtmv_p0/test_commit_mtmv.out  | 25 +++++++++++++++++++++-
 .../suites/mtmv_p0/test_commit_mtmv.groovy         | 24 ++++++++++++++++++++-
 3 files changed, 54 insertions(+), 2 deletions(-)

diff --git a/fe/fe-core/src/main/java/org/apache/doris/mtmv/MTMVJobManager.java 
b/fe/fe-core/src/main/java/org/apache/doris/mtmv/MTMVJobManager.java
index a9dee132f64..7ea3d9dc05f 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/mtmv/MTMVJobManager.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/mtmv/MTMVJobManager.java
@@ -213,6 +213,13 @@ public class MTMVJobManager implements MTMVHookService {
 
     public void onCommit(MTMV mtmv) throws DdlException, JobException {
         MTMVJob job = getJobByMTMV(mtmv);
+        if (!job.getJobStatus().equals(JobStatus.RUNNING)) {
+            if (LOG.isDebugEnabled()) {
+                LOG.debug("job status of async materialized view: [{}] is: 
[{}], ignore this event.", mtmv.getName(),
+                        job.getJobStatus());
+            }
+            return;
+        }
         MTMVTaskContext mtmvTaskContext = new 
MTMVTaskContext(MTMVTaskTriggerMode.COMMIT, Lists.newArrayList(),
                 false);
         Env.getCurrentEnv().getJobManager().triggerJob(job.getJobId(), 
mtmvTaskContext);
diff --git a/regression-test/data/mtmv_p0/test_commit_mtmv.out 
b/regression-test/data/mtmv_p0/test_commit_mtmv.out
index fafb8f883a4..208638b4c10 100644
--- a/regression-test/data/mtmv_p0/test_commit_mtmv.out
+++ b/regression-test/data/mtmv_p0/test_commit_mtmv.out
@@ -15,16 +15,39 @@
 -- !task2 --
 {"triggerMode":"COMMIT","partitions":[],"isComplete":false}
 
--- !mv1_2 --
+-- !mv1_pause --
 1      2017-01-15      1
+2      2017-02-15      2
+3      2017-03-15      3
+
+-- !mv1_resume --
+1      2017-01-15      1
+2      2017-02-15      2
+3      2017-03-15      3
+4      2017-01-15      4
+5      2017-01-15      5
+
+-- !mv2_resume --
+1      2017-01-15      1
+2      2017-02-15      2
+3      2017-03-15      3
+4      2017-01-15      4
+5      2017-01-15      5
+
+-- !mv1_2 --
 1      2017-01-15      1
 2      2017-02-15      2
 3      2017-03-15      3
+4      2017-01-15      4
+5      2017-01-15      5
+6      2017-01-15      6
 
 -- !mv2_2 --
 1      2017-01-15      1
 2      2017-02-15      2
 3      2017-03-15      3
+4      2017-01-15      4
+5      2017-01-15      5
 
 -- !mv1_init --
 1      2017-01-15      1
diff --git a/regression-test/suites/mtmv_p0/test_commit_mtmv.groovy 
b/regression-test/suites/mtmv_p0/test_commit_mtmv.groovy
index cd02dcd57d7..d8161a3fc92 100644
--- a/regression-test/suites/mtmv_p0/test_commit_mtmv.groovy
+++ b/regression-test/suites/mtmv_p0/test_commit_mtmv.groovy
@@ -64,13 +64,35 @@ suite("test_commit_mtmv") {
     order_qt_mv2 "SELECT * FROM ${mvName2}"
     order_qt_task2 "SELECT TaskContext from tasks('type'='mv') where 
MvName='${mvName2}' order by CreateTime desc limit 1"
 
+    // PAUSE MTMV should not refresh
+    sql """
+        PAUSE MATERIALIZED VIEW JOB ON ${mvName1};
+        """
+     sql """
+         insert into ${tableName} values(4,"2017-01-15",4);
+     """
+    waitingMTMVTaskFinished(jobName1)
+    order_qt_mv1_pause "SELECT * FROM ${mvName1}"
+
+    // resume MTMV should refresh
+    sql """
+        RESUME MATERIALIZED VIEW JOB ON ${mvName1};
+        """
+     sql """
+         insert into ${tableName} values(5,"2017-01-15",5);
+     """
+    waitingMTMVTaskFinished(jobName1)
+    order_qt_mv1_resume "SELECT * FROM ${mvName1}"
+    waitingMTMVTaskFinished(jobName2)
+    order_qt_mv2_resume "SELECT * FROM ${mvName2}"
+
     // on manual can not trigger by commit
     sql """
             alter MATERIALIZED VIEW ${mvName2} REFRESH ON MANUAL;
         """
 
      sql """
-          insert into ${tableName} values(1,"2017-01-15",1);;
+          insert into ${tableName} values(6,"2017-01-15",6);;
       """
     waitingMTMVTaskFinished(jobName1)
     order_qt_mv1_2 "SELECT * FROM ${mvName1}"


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

Reply via email to