From 32709c4d234fbade55ec259fbe7f4df0113ef02e Mon Sep 17 00:00:00 2001 From: zhangdong <493738387@qq.com> Date: Mon, 19 Aug 2024 16:28:22 +0800 Subject: [PATCH 1/4] 1 --- .../main/java/org/apache/doris/mtmv/MTMVJobManager.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 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 bed44e8d37d136..eb93249e1d4727 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 @@ -105,14 +105,14 @@ private void setScheduleJobConfig(JobExecutionConfiguration jobExecutionConfigur .setInterval(mtmv.getRefreshInfo().getRefreshTriggerInfo().getIntervalTrigger().getInterval()); timerDefinition .setIntervalUnit(mtmv.getRefreshInfo().getRefreshTriggerInfo().getIntervalTrigger().getTimeUnit()); - if (mtmv.getRefreshInfo().getBuildMode().equals(BuildMode.IMMEDIATE)) { - jobExecutionConfiguration.setImmediate(true); - } else if (mtmv.getRefreshInfo().getBuildMode().equals(BuildMode.DEFERRED) && !StringUtils + if (!StringUtils .isEmpty(mtmv.getRefreshInfo().getRefreshTriggerInfo().getIntervalTrigger().getStartTime())) { timerDefinition.setStartTimeMs(TimeUtils.timeStringToLong( mtmv.getRefreshInfo().getRefreshTriggerInfo().getIntervalTrigger().getStartTime())); } - + if (mtmv.getRefreshInfo().getBuildMode().equals(BuildMode.IMMEDIATE)) { + jobExecutionConfiguration.setImmediate(true); + } jobExecutionConfiguration.setTimerDefinition(timerDefinition); } From 44cf47ae66940d34956b00e419eba7a77525ae33 Mon Sep 17 00:00:00 2001 From: zhangdong <493738387@qq.com> Date: Mon, 19 Aug 2024 18:21:47 +0800 Subject: [PATCH 2/4] 1 --- .../mtmv_p0/test_start_time_mtmv.groovy | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 regression-test/suites/mtmv_p0/test_start_time_mtmv.groovy diff --git a/regression-test/suites/mtmv_p0/test_start_time_mtmv.groovy b/regression-test/suites/mtmv_p0/test_start_time_mtmv.groovy new file mode 100644 index 00000000000000..a8fd547f169866 --- /dev/null +++ b/regression-test/suites/mtmv_p0/test_start_time_mtmv.groovy @@ -0,0 +1,76 @@ +// 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. + +import org.junit.Assert; + +suite("test_start_time_mtmv","mtmv") { + String suiteName = "test_start_time_mtmv" + String tableName = "${suiteName}_table" + String mvName = "${suiteName}_mv" + + sql """drop table if exists `${tableName}`""" + sql """drop materialized view if exists ${mvName};""" + + sql """ + CREATE TABLE ${tableName} + ( + k2 INT, + k3 varchar(32) + ) + DISTRIBUTED BY HASH(k2) BUCKETS 2 + PROPERTIES ( + "replication_num" = "1" + ); + """ + + sql """ + insert into ${tableName} values(1,1),(2,2),(3,3); + """ + + sql """ + CREATE MATERIALIZED VIEW ${mvName} + BUILD immediate REFRESH AUTO ON SCHEDULE EVERY 2 HOUR STARTS "9999-12-13 21:07:09" + DISTRIBUTED BY RANDOM BUCKETS 2 + PROPERTIES ( + 'replication_num' = '1' + ) + AS + SELECT * from ${tableName}; + """ + + waitingMTMVTaskFinishedByMvName(mvName) + order_qt_init "SELECT * FROM ${mvName}" + + order_qt_create "select RecurringStrategy from jobs("type"="mv") where MvName="${mvName}" + + sql """ + alter MATERIALIZED VIEW ${mvName} REFRESH auto ON SCHEDULE EVERY 2 HOUR STARTS "9998-12-13 21:07:09"; + """ + + order_qt_alter "select RecurringStrategy from jobs("type"="mv") where MvName="${mvName}" + + // refresh mv + sql """ + REFRESH MATERIALIZED VIEW ${mvName} complete + """ + + waitingMTMVTaskFinishedByMvName(mvName) + order_qt_refresh "SELECT * FROM ${mvName}" + + sql """drop table if exists `${tableName}`""" + sql """drop materialized view if exists ${mvName};""" +} From 28641340bafd96a2fe964d98ebccdf672043b536 Mon Sep 17 00:00:00 2001 From: zhangdong <493738387@qq.com> Date: Mon, 19 Aug 2024 18:24:37 +0800 Subject: [PATCH 3/4] 1 --- regression-test/suites/mtmv_p0/test_start_time_mtmv.groovy | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/regression-test/suites/mtmv_p0/test_start_time_mtmv.groovy b/regression-test/suites/mtmv_p0/test_start_time_mtmv.groovy index a8fd547f169866..89872adc253b7b 100644 --- a/regression-test/suites/mtmv_p0/test_start_time_mtmv.groovy +++ b/regression-test/suites/mtmv_p0/test_start_time_mtmv.groovy @@ -55,13 +55,13 @@ suite("test_start_time_mtmv","mtmv") { waitingMTMVTaskFinishedByMvName(mvName) order_qt_init "SELECT * FROM ${mvName}" - order_qt_create "select RecurringStrategy from jobs("type"="mv") where MvName="${mvName}" + order_qt_create "select RecurringStrategy from jobs('type'='mv') where MvName='${mvName}'" sql """ alter MATERIALIZED VIEW ${mvName} REFRESH auto ON SCHEDULE EVERY 2 HOUR STARTS "9998-12-13 21:07:09"; """ - order_qt_alter "select RecurringStrategy from jobs("type"="mv") where MvName="${mvName}" + order_qt_alter "select RecurringStrategy from jobs('type'='mv') where MvName='${mvName}'" // refresh mv sql """ From 221dd7da340631102534435ac9d45450de6d6aa5 Mon Sep 17 00:00:00 2001 From: zhangdong <493738387@qq.com> Date: Mon, 19 Aug 2024 18:25:56 +0800 Subject: [PATCH 4/4] 1 --- .../data/mtmv_p0/test_start_time_mtmv.out | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 regression-test/data/mtmv_p0/test_start_time_mtmv.out diff --git a/regression-test/data/mtmv_p0/test_start_time_mtmv.out b/regression-test/data/mtmv_p0/test_start_time_mtmv.out new file mode 100644 index 00000000000000..8e17dcacec9139 --- /dev/null +++ b/regression-test/data/mtmv_p0/test_start_time_mtmv.out @@ -0,0 +1,17 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !init -- +1 1 +2 2 +3 3 + +-- !create -- +EVERY 2 HOUR STARTS 9999-12-13 21:07:09 + +-- !alter -- +EVERY 2 HOUR STARTS 9998-12-13 21:07:09 + +-- !refresh -- +1 1 +2 2 +3 3 +