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 a9dee132f64b12..7ea3d9dc05f9f1 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 void cancelMTMVTask(CancelMTMVTaskInfo info) throws DdlException, MetaNot 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 fafb8f883a4c25..208638b4c10a11 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 cd02dcd57d7fa5..d8161a3fc922e0 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}"