This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.1 by this push:
new b5beaf4eb1a branch-2.1: [fix](mtmv)The refresh method for MTMV is
commit. If the status is PAUSED, no more tasks should be generated #46020
(#46265)
b5beaf4eb1a is described below
commit b5beaf4eb1a52458a2e6d82a6df3b44ee5105f00
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Thu Jan 2 14:03:28 2025 +0800
branch-2.1: [fix](mtmv)The refresh method for MTMV is commit. If the status
is PAUSED, no more tasks should be generated #46020 (#46265)
Cherry-picked from #46020
Co-authored-by: zhangdong <[email protected]>
---
.../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]