From d9fb77ad106bee4597ae9df4105964ab0f1f14a3 Mon Sep 17 00:00:00 2001 From: zhangdong <493738387@qq.com> Date: Tue, 12 Dec 2023 15:20:02 +0800 Subject: [PATCH] [fix](mtmv)fix show task tvf finishTime is null (#28252) --- .../java/org/apache/doris/common/util/TimeUtils.java | 10 +++++----- .../org/apache/doris/job/extensions/mtmv/MTMVTask.java | 9 ++++++--- .../org/apache/doris/common/util/TimeUtilsTest.java | 2 +- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/common/util/TimeUtils.java b/fe/fe-core/src/main/java/org/apache/doris/common/util/TimeUtils.java index 3f570a5f38..0076ddcaf0 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/common/util/TimeUtils.java +++ b/fe/fe-core/src/main/java/org/apache/doris/common/util/TimeUtils.java @@ -161,24 +161,24 @@ public class TimeUtils { return TimeZone.getTimeZone(ZoneId.of(timeZone, timeZoneAliasMap)); } - public static String longToTimeString(long timeStamp, DateTimeFormatter dateFormat) { - if (timeStamp <= 0L) { + public static String longToTimeString(Long timeStamp, DateTimeFormatter dateFormat) { + if (timeStamp == null || timeStamp <= 0L) { return FeConstants.null_string; } return dateFormat.format(LocalDateTime.ofInstant(Instant.ofEpochMilli(timeStamp), ZoneId.systemDefault())); } - public static String longToTimeStringWithFormat(long timeStamp, DateTimeFormatter datetimeFormatTimeZone) { + public static String longToTimeStringWithFormat(Long timeStamp, DateTimeFormatter datetimeFormatTimeZone) { TimeZone timeZone = getTimeZone(); datetimeFormatTimeZone.withZone(timeZone.toZoneId()); return longToTimeString(timeStamp, datetimeFormatTimeZone); } - public static String longToTimeString(long timeStamp) { + public static String longToTimeString(Long timeStamp) { return longToTimeStringWithFormat(timeStamp, DATETIME_FORMAT); } - public static String longToTimeStringWithms(long timeStamp) { + public static String longToTimeStringWithms(Long timeStamp) { return longToTimeStringWithFormat(timeStamp, DATETIME_MS_FORMAT); } diff --git a/fe/fe-core/src/main/java/org/apache/doris/job/extensions/mtmv/MTMVTask.java b/fe/fe-core/src/main/java/org/apache/doris/job/extensions/mtmv/MTMVTask.java index e82dc7dbff..80f454d628 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/job/extensions/mtmv/MTMVTask.java +++ b/fe/fe-core/src/main/java/org/apache/doris/job/extensions/mtmv/MTMVTask.java @@ -26,6 +26,7 @@ import org.apache.doris.catalog.ScalarType; import org.apache.doris.catalog.TableIf.TableType; import org.apache.doris.cluster.ClusterNamespace; import org.apache.doris.common.AnalysisException; +import org.apache.doris.common.FeConstants; import org.apache.doris.common.UserException; import org.apache.doris.common.util.TimeUtils; import org.apache.doris.datasource.CatalogIf; @@ -147,12 +148,14 @@ public class MTMVTask extends AbstractTask { trow.addToColumnValue(new TCell().setStringVal(String.valueOf(super.getTaskId()))); trow.addToColumnValue(new TCell().setStringVal(String.valueOf(super.getJobId()))); trow.addToColumnValue(new TCell().setStringVal(super.getJobName())); - trow.addToColumnValue(new TCell().setStringVal(super.getStatus().toString())); + trow.addToColumnValue(new TCell() + .setStringVal(super.getStatus() == null ? FeConstants.null_string : super.getStatus().toString())); trow.addToColumnValue(new TCell().setStringVal(TimeUtils.longToTimeString(super.getCreateTimeMs()))); trow.addToColumnValue(new TCell().setStringVal(TimeUtils.longToTimeString(super.getStartTimeMs()))); trow.addToColumnValue(new TCell().setStringVal(TimeUtils.longToTimeString(super.getFinishTimeMs()))); - trow.addToColumnValue( - new TCell().setStringVal(String.valueOf(super.getFinishTimeMs() - super.getStartTimeMs()))); + trow.addToColumnValue(new TCell().setStringVal( + (super.getFinishTimeMs() == null || super.getFinishTimeMs() == 0) ? FeConstants.null_string + : String.valueOf(super.getFinishTimeMs() - super.getStartTimeMs()))); trow.addToColumnValue(new TCell().setStringVal(sql)); return trow; } 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 44491ed1cf..a4347c5aca 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 @@ -148,7 +148,7 @@ public class TimeUtilsTest { @Test public void testDateTrans() throws AnalysisException { - Assert.assertEquals(FeConstants.null_string, TimeUtils.longToTimeString(-2)); + Assert.assertEquals(FeConstants.null_string, TimeUtils.longToTimeString(-2L)); long timestamp = 1426125600000L; Assert.assertEquals("2015-03-12 10:00:00", TimeUtils.longToTimeString(timestamp));