From d93a06cb76aa4322262db0f723be13bc82aa5f0d Mon Sep 17 00:00:00 2001 From: zhaochangle Date: Thu, 11 Jul 2024 16:04:09 +0800 Subject: [PATCH] fix --- .../IcebergTableCreationRecordMgr.java | 2 +- .../org/apache/doris/mtmv/MTMVJobFactory.java | 5 +++-- .../doris/planner/StreamLoadPlanner.java | 2 +- .../apache/doris/analysis/GrantStmtTest.java | 8 +++++++ .../doris/common/util/TimeUtilsTest.java | 7 +----- .../nereids/stats/StatsCalculatorTest.java | 22 ++++++++++++++++++- 6 files changed, 35 insertions(+), 11 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/external/iceberg/IcebergTableCreationRecordMgr.java b/fe/fe-core/src/main/java/org/apache/doris/external/iceberg/IcebergTableCreationRecordMgr.java index 8061166050d938c..b01eeb82a815700 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/external/iceberg/IcebergTableCreationRecordMgr.java +++ b/fe/fe-core/src/main/java/org/apache/doris/external/iceberg/IcebergTableCreationRecordMgr.java @@ -132,7 +132,7 @@ private void removeDuplicateTables() { @Override protected void runAfterCatalogReady() { PropertySchema.DateProperty prop = - new PropertySchema.DateProperty("key", TimeUtils.DATETIME_FORMAT); + new PropertySchema.DateProperty("key", TimeUtils.getDatetimeFormatWithTimeZone()); // list iceberg tables in dbs // When listing table is done, remove database from icebergDbs. for (Iterator> it = icebergDbs.entrySet().iterator(); it.hasNext(); it.remove()) { diff --git a/fe/fe-core/src/main/java/org/apache/doris/mtmv/MTMVJobFactory.java b/fe/fe-core/src/main/java/org/apache/doris/mtmv/MTMVJobFactory.java index 3ac142d0639a6a6..5036bd8563663f2 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/mtmv/MTMVJobFactory.java +++ b/fe/fe-core/src/main/java/org/apache/doris/mtmv/MTMVJobFactory.java @@ -106,8 +106,9 @@ private static JobSchedule genJobSchedule(MaterializedView materializedView) { MVRefreshIntervalTriggerInfo info = materializedView.getRefreshInfo().getTriggerInfo().getIntervalTrigger(); long startTime; try { - LocalDateTime dateTime = LocalDateTime.parse(info.getStartTime(), TimeUtils.DATETIME_FORMAT); - startTime = dateTime.toEpochSecond(TimeUtils.TIME_ZONE.getRules().getOffset(dateTime)); + LocalDateTime dateTime = LocalDateTime.parse(info.getStartTime(), + TimeUtils.getDatetimeFormatWithTimeZone()); + startTime = dateTime.toEpochSecond(TimeUtils.getDorisZoneId().getRules().getOffset(dateTime)); } catch (DateTimeParseException e) { throw new RuntimeException(e); } diff --git a/fe/fe-core/src/main/java/org/apache/doris/planner/StreamLoadPlanner.java b/fe/fe-core/src/main/java/org/apache/doris/planner/StreamLoadPlanner.java index ae53aa68d738413..5a28fbdb7109b26 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/planner/StreamLoadPlanner.java +++ b/fe/fe-core/src/main/java/org/apache/doris/planner/StreamLoadPlanner.java @@ -536,7 +536,7 @@ public TPipelineFragmentParams planForPipeline(TUniqueId loadId, int fragmentIns pipParams.setQueryOptions(queryOptions); TQueryGlobals queryGlobals = new TQueryGlobals(); - queryGlobals.setNowString(TimeUtils.DATETIME_FORMAT.format(LocalDateTime.now())); + queryGlobals.setNowString(TimeUtils.getDatetimeFormatWithTimeZone().format(LocalDateTime.now())); queryGlobals.setTimestampMs(System.currentTimeMillis()); queryGlobals.setTimeZone(taskInfo.getTimezone()); queryGlobals.setLoadZeroTolerance(taskInfo.getMaxFilterRatio() <= 0.0); diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/GrantStmtTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/GrantStmtTest.java index 37bf2c8bfb5b687..61e49d4f975adb9 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/analysis/GrantStmtTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/GrantStmtTest.java @@ -25,6 +25,7 @@ import org.apache.doris.mysql.privilege.AccessControllerManager; import org.apache.doris.mysql.privilege.Auth; import org.apache.doris.qe.ConnectContext; +import org.apache.doris.qe.VariableMgr; import com.google.common.collect.Lists; import mockit.Expectations; @@ -47,6 +48,13 @@ public class GrantStmtTest { @Before public void setUp() { + new Expectations() { + { + ctx.getSessionVariable(); + minTimes = 0; + result = VariableMgr.newSessionVariable(); + } + }; analyzer = AccessTestUtil.fetchAdminAnalyzer(true); Auth auth = new Auth(); AccessControllerManager accessManager = new AccessControllerManager(auth); diff --git a/fe/fe-core/src/test/java/org/apache/doris/common/util/TimeUtilsTest.java b/fe/fe-core/src/test/java/org/apache/doris/common/util/TimeUtilsTest.java index 44491ed1cf636e9..7aa4051ad0a0ecd 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/common/util/TimeUtilsTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/common/util/TimeUtilsTest.java @@ -59,11 +59,6 @@ public void testNormal() { Assert.assertNotNull(TimeUtils.getCurrentFormatTime()); Assert.assertNotNull(TimeUtils.getStartTimeMs()); Assert.assertTrue(TimeUtils.getElapsedTimeMs(0L) > 0); - - Assert.assertEquals(-62135625600000L, TimeUtils.MIN_DATE.getTime()); - Assert.assertEquals(253402185600000L, TimeUtils.MAX_DATE.getTime()); - Assert.assertEquals(-62135625600000L, TimeUtils.MIN_DATETIME.getTime()); - Assert.assertEquals(253402271999000L, TimeUtils.MAX_DATETIME.getTime()); } @Test @@ -148,7 +143,7 @@ public void testDateParse() { @Test public void testDateTrans() throws AnalysisException { - Assert.assertEquals(FeConstants.null_string, TimeUtils.longToTimeString(-2)); + Assert.assertEquals(FeConstants.null_string, TimeUtils.longToTimeString((long) -2)); long timestamp = 1426125600000L; Assert.assertEquals("2015-03-12 10:00:00", TimeUtils.longToTimeString(timestamp)); diff --git a/fe/fe-core/src/test/java/org/apache/doris/nereids/stats/StatsCalculatorTest.java b/fe/fe-core/src/test/java/org/apache/doris/nereids/stats/StatsCalculatorTest.java index bd9a971401aec7c..c506205c1d1f420 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/nereids/stats/StatsCalculatorTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/nereids/stats/StatsCalculatorTest.java @@ -42,6 +42,7 @@ import org.apache.doris.nereids.types.IntegerType; import org.apache.doris.nereids.util.PlanConstructor; import org.apache.doris.qe.ConnectContext; +import org.apache.doris.qe.VariableMgr; import org.apache.doris.statistics.ColumnStatistic; import org.apache.doris.statistics.ColumnStatisticBuilder; import org.apache.doris.statistics.Statistics; @@ -49,9 +50,11 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Lists; +import mockit.Expectations; import mockit.Mocked; +import org.junit.Before; +import org.junit.Test; import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; import java.util.ArrayList; import java.util.Collections; @@ -61,6 +64,8 @@ import java.util.Optional; public class StatsCalculatorTest { + @Mocked + private ConnectContext connectContext; private Group newGroup() { GroupExpression groupExpression = new GroupExpression(new FakePlan()); @@ -69,6 +74,21 @@ private Group newGroup() { return group; } + @Before + public void setUp() { + new Expectations() { + { + ConnectContext.get(); + minTimes = 0; + result = connectContext; + + connectContext.getSessionVariable(); + minTimes = 0; + result = VariableMgr.newSessionVariable(); + } + }; + } + // TODO: temporary disable this test, until we could get column stats // @Test // public void testAgg() {