This is an automated email from the ASF dual-hosted git repository. kxiao pushed a commit to branch branch-2.0 in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.0 by this push: new c3be8ec136e [branch-2.0](timezone) make TimeUtils formatter use correct time_zone (#37465) (#37653) c3be8ec136e is described below commit c3be8ec136e656d7e858526d74b8c54d39d56fef Author: zclllhhjj <zhaochan...@selectdb.com> AuthorDate: Thu Aug 1 12:11:23 2024 +0800 [branch-2.0](timezone) make TimeUtils formatter use correct time_zone (#37465) (#37653) --- .../java/org/apache/doris/analysis/Analyzer.java | 2 +- .../org/apache/doris/backup/BackupHandler.java | 2 +- .../java/org/apache/doris/backup/BackupJob.java | 3 +- .../java/org/apache/doris/backup/Repository.java | 2 +- .../doris/common/util/DynamicPartitionUtil.java | 8 +- .../org/apache/doris/common/util/TimeUtils.java | 126 +++++++++++---------- .../iceberg/IcebergTableCreationRecordMgr.java | 2 +- .../org/apache/doris/load/StreamLoadRecordMgr.java | 4 +- .../apache/doris/load/sync/canal/CanalUtils.java | 20 ++-- .../java/org/apache/doris/mtmv/MTMVJobFactory.java | 5 +- .../expression/rules/FoldConstantRuleOnBE.java | 2 +- .../apache/doris/planner/StreamLoadPlanner.java | 4 +- .../org/apache/doris/policy/StoragePolicy.java | 8 +- .../main/java/org/apache/doris/qe/Coordinator.java | 4 +- .../java/org/apache/doris/qe/ShowExecutor.java | 4 +- .../apache/doris/rewrite/FoldConstantsRule.java | 2 +- .../analysis/AdminCancelRebalanceDiskStmtTest.java | 2 +- .../doris/analysis/AdminRebalanceDiskStmtTest.java | 2 +- .../doris/analysis/AlterCatalogNameStmtTest.java | 2 +- .../doris/analysis/AlterCatalogPropsStmtTest.java | 2 +- .../doris/analysis/AlterSqlBlockRuleStmtTest.java | 2 +- .../java/org/apache/doris/analysis/BackupTest.java | 3 + .../doris/analysis/CreateCatalogStmtTest.java | 2 +- .../apache/doris/analysis/CreateDbStmtTest.java | 2 +- .../doris/analysis/CreateRoutineLoadStmtTest.java | 6 + .../doris/analysis/CreateSqlBlockRuleStmtTest.java | 2 +- .../apache/doris/analysis/CreateTableStmtTest.java | 5 +- .../org/apache/doris/analysis/DeleteStmtTest.java | 2 +- .../apache/doris/analysis/DropCatalogStmtTest.java | 2 +- .../org/apache/doris/analysis/DropDbStmtTest.java | 2 +- .../apache/doris/analysis/DropTableStmtTest.java | 6 +- .../apache/doris/analysis/DropUserStmtTest.java | 2 +- .../org/apache/doris/analysis/GrantStmtTest.java | 8 ++ .../org/apache/doris/analysis/LoadStmtTest.java | 12 +- .../doris/analysis/SetOperationStmtTest.java | 2 +- .../org/apache/doris/analysis/SetPassVarTest.java | 2 +- .../org/apache/doris/analysis/SetStmtTest.java | 2 +- .../doris/analysis/SetUserPropertyStmtTest.java | 2 +- .../java/org/apache/doris/analysis/SetVarTest.java | 2 +- .../doris/analysis/ShowDataTypesStmtTest.java | 2 +- .../apache/doris/analysis/ShowDbIdStmtTest.java | 2 +- .../doris/analysis/ShowEncryptKeysStmtTest.java | 4 +- .../doris/analysis/ShowFunctionsStmtTest.java | 4 +- .../apache/doris/analysis/ShowIndexStmtTest.java | 2 +- .../doris/analysis/ShowPartitionIdStmtTest.java | 2 +- .../doris/analysis/ShowTableCreationStmtTest.java | 2 +- .../apache/doris/analysis/ShowTableIdStmtTest.java | 2 +- .../apache/doris/analysis/ShowTableStmtTest.java | 2 +- .../doris/analysis/ShowUserPropertyStmtTest.java | 2 +- .../org/apache/doris/analysis/UseStmtTest.java | 2 +- .../apache/doris/common/util/TimeUtilsTest.java | 7 +- .../load/routineload/KafkaRoutineLoadJobTest.java | 3 + .../apache/doris/mysql/privilege/MockedAuth.java | 5 + .../nereids/jobs/cascades/DeriveStatsJobTest.java | 3 + .../doris/nereids/stats/StatsCalculatorTest.java | 18 ++- .../doris/planner/RuntimeFilterGeneratorTest.java | 8 ++ .../java/org/apache/doris/qe/StmtExecutorTest.java | 17 ++- 57 files changed, 213 insertions(+), 146 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/Analyzer.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/Analyzer.java index ea6ed101242..18a4fa68507 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/Analyzer.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/Analyzer.java @@ -648,7 +648,7 @@ public class Analyzer { Calendar currentDate = Calendar.getInstance(); LocalDateTime localDateTime = LocalDateTime.ofInstant(currentDate.toInstant(), currentDate.getTimeZone().toZoneId()); - String nowStr = localDateTime.format(TimeUtils.DATETIME_NS_FORMAT); + String nowStr = localDateTime.format(TimeUtils.getDatetimeNsFormatWithTimeZone()); queryGlobals.setNowString(nowStr); queryGlobals.setNanoSeconds(LocalDateTime.now().getNano()); return queryGlobals; diff --git a/fe/fe-core/src/main/java/org/apache/doris/backup/BackupHandler.java b/fe/fe-core/src/main/java/org/apache/doris/backup/BackupHandler.java index 9bf06286ba8..77213a35b42 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/backup/BackupHandler.java +++ b/fe/fe-core/src/main/java/org/apache/doris/backup/BackupHandler.java @@ -452,7 +452,7 @@ public class BackupHandler extends MasterDaemon implements Writable { throw new DdlException("read backup meta failed", e); } String backupTimestamp = TimeUtils.longToTimeString( - jobInfo.getBackupTime(), TimeUtils.DATETIME_FORMAT_WITH_HYPHEN); + jobInfo.getBackupTime(), TimeUtils.getDatetimeFormatWithHyphenWithTimeZone()); restoreJob = new RestoreJob(stmt.getLabel(), backupTimestamp, db.getId(), db.getFullName(), jobInfo, stmt.allowLoad(), stmt.getReplicaAlloc(), stmt.getTimeoutMs(), metaVersion, stmt.reserveReplica(), diff --git a/fe/fe-core/src/main/java/org/apache/doris/backup/BackupJob.java b/fe/fe-core/src/main/java/org/apache/doris/backup/BackupJob.java index 5fd4e141262..37581e848cb 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/backup/BackupJob.java +++ b/fe/fe-core/src/main/java/org/apache/doris/backup/BackupJob.java @@ -673,7 +673,8 @@ public class BackupJob extends AbstractJob { } private void saveMetaInfo() { - String createTimeStr = TimeUtils.longToTimeString(createTime, TimeUtils.DATETIME_FORMAT_WITH_HYPHEN); + String createTimeStr = TimeUtils.longToTimeString(createTime, + TimeUtils.getDatetimeFormatWithHyphenWithTimeZone()); // local job dir: backup/repo__repo_id/label__createtime/ // Add repo_id to isolate jobs from different repos. localJobDirPath = Paths.get(BackupHandler.BACKUP_ROOT_DIR.toString(), diff --git a/fe/fe-core/src/main/java/org/apache/doris/backup/Repository.java b/fe/fe-core/src/main/java/org/apache/doris/backup/Repository.java index 7105912c7c1..5697b5c67d1 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/backup/Repository.java +++ b/fe/fe-core/src/main/java/org/apache/doris/backup/Repository.java @@ -141,7 +141,7 @@ public class Repository implements Writable { return PREFIX_JOB_INFO; } else { return PREFIX_JOB_INFO - + TimeUtils.longToTimeString(createTime, TimeUtils.DATETIME_FORMAT_WITH_HYPHEN); + + TimeUtils.longToTimeString(createTime, TimeUtils.getDatetimeFormatWithHyphenWithTimeZone()); } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/common/util/DynamicPartitionUtil.java b/fe/fe-core/src/main/java/org/apache/doris/common/util/DynamicPartitionUtil.java index 22a77768b64..bf00a181177 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/common/util/DynamicPartitionUtil.java +++ b/fe/fe-core/src/main/java/org/apache/doris/common/util/DynamicPartitionUtil.java @@ -400,9 +400,9 @@ public class DynamicPartitionUtil { private static DateTimeFormatter getDateTimeFormatter(String timeUnit) { if (timeUnit.equalsIgnoreCase(TimeUnit.HOUR.toString())) { - return TimeUtils.DATETIME_FORMAT; + return TimeUtils.getDatetimeFormatWithTimeZone(); } else { - return TimeUtils.DATE_FORMAT; + return TimeUtils.getDateFormatWithTimeZone(); } } @@ -806,9 +806,9 @@ public class DynamicPartitionUtil { private static LocalDateTime getDateTimeByTimeUnit(String time, String timeUnit) { if (timeUnit.equalsIgnoreCase(TimeUnit.HOUR.toString())) { - return LocalDateTime.parse(time, TimeUtils.DATETIME_FORMAT); + return LocalDateTime.parse(time, TimeUtils.getDatetimeFormatWithTimeZone()); } else { - return LocalDate.from(TimeUtils.DATE_FORMAT.parse(time)).atStartOfDay(); + return LocalDate.from(TimeUtils.getDateFormatWithTimeZone().parse(time)).atStartOfDay(); } } 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 3f570a5f383..00ad77229ed 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 @@ -29,7 +29,6 @@ import org.apache.doris.qe.VariableMgr; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableMap; -import com.google.common.collect.Maps; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -47,6 +46,7 @@ import java.time.temporal.TemporalAccessor; import java.util.Date; import java.util.Map; import java.util.TimeZone; +import java.util.TreeMap; import java.util.function.Function; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -55,13 +55,7 @@ import java.util.regex.Pattern; public class TimeUtils { public static final String UTC_TIME_ZONE = "Europe/London"; // This is just a Country to represent UTC offset +00:00 public static final String DEFAULT_TIME_ZONE = "Asia/Shanghai"; - public static final ZoneId TIME_ZONE; public static final ImmutableMap<String, String> timeZoneAliasMap; - // NOTICE: Date formats are not synchronized. - // it must be used as synchronized externally. - public static final DateTimeFormatter DATE_FORMAT; - public static final DateTimeFormatter DATETIME_FORMAT; - public static final DateTimeFormatter TIME_FORMAT; public static final Pattern DATETIME_FORMAT_REG = Pattern.compile("^((\\d{2}(([02468][048])|([13579][26]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?" + "((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?" @@ -70,25 +64,49 @@ public class TimeUtils { + "[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?" + "((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))" + "(\\s(((0?[0-9])|([1][0-9])|([2][0-3]))\\:([0-5]?[0-9])((\\s)|(\\:([0-5]?[0-9])))))?$"); - public static final DateTimeFormatter DATETIME_MS_FORMAT = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS") - .withZone(ZoneId.systemDefault()); - public static final DateTimeFormatter DATETIME_NS_FORMAT = DateTimeFormatter.ofPattern( - "yyyy-MM-dd HH:mm:ss.SSSSSSSSS") - .withZone(ZoneId.systemDefault()); - public static final DateTimeFormatter DATETIME_FORMAT_WITH_HYPHEN = DateTimeFormatter.ofPattern( - "yyyy-MM-dd-HH-mm-ss") - .withZone(ZoneId.systemDefault()); + + // these formatters must be visited by getter to make sure they have right + // timezone. + // NOTICE: Date formats are not synchronized. + // it must be used as synchronized externally. + private static final DateTimeFormatter DATE_FORMAT = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + private static final DateTimeFormatter DATETIME_FORMAT = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + private static final DateTimeFormatter TIME_FORMAT = DateTimeFormatter.ofPattern("HH"); + private static final DateTimeFormatter DATETIME_MS_FORMAT = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"); + private static final DateTimeFormatter DATETIME_NS_FORMAT = DateTimeFormatter.ofPattern( + "yyyy-MM-dd HH:mm:ss.SSSSSSSSS"); + private static final DateTimeFormatter DATETIME_FORMAT_WITH_HYPHEN = DateTimeFormatter.ofPattern( + "yyyy-MM-dd-HH-mm-ss"); + + public static DateTimeFormatter getDateFormatWithTimeZone() { + return DATE_FORMAT.withZone(getDorisZoneId()); + } + + public static DateTimeFormatter getDatetimeFormatWithTimeZone() { + return DATETIME_FORMAT.withZone(getDorisZoneId()); + } + + public static DateTimeFormatter getTimeFormatWithTimeZone() { + return TIME_FORMAT.withZone(getDorisZoneId()); + } + + public static DateTimeFormatter getDatetimeMsFormatWithTimeZone() { + return DATETIME_MS_FORMAT.withZone(getDorisZoneId()); + } + + public static DateTimeFormatter getDatetimeNsFormatWithTimeZone() { + return DATETIME_NS_FORMAT.withZone(getDorisZoneId()); + } + + public static DateTimeFormatter getDatetimeFormatWithHyphenWithTimeZone() { + return DATETIME_FORMAT_WITH_HYPHEN.withZone(getDorisZoneId()); + } + private static final Logger LOG = LogManager.getLogger(TimeUtils.class); private static final Pattern TIMEZONE_OFFSET_FORMAT_REG = Pattern.compile("^[+-]?\\d{1,2}:\\d{2}$"); - public static Date MIN_DATE = null; - public static Date MAX_DATE = null; - public static Date MIN_DATETIME = null; - public static Date MAX_DATETIME = null; static { - TIME_ZONE = ZoneId.of("UTC+8"); - - Map<String, String> timeZoneMap = Maps.newHashMap(); + Map<String, String> timeZoneMap = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); timeZoneMap.putAll(ZoneId.SHORT_IDS); // set CST to +08:00 instead of America/Chicago @@ -98,32 +116,6 @@ public class TimeUtils { timeZoneMap.put("GMT", UTC_TIME_ZONE); timeZoneAliasMap = ImmutableMap.copyOf(timeZoneMap); - - DATE_FORMAT = DateTimeFormatter.ofPattern("yyyy-MM-dd"); - DATE_FORMAT.withZone(TIME_ZONE); - - DATETIME_FORMAT = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); - DATETIME_FORMAT.withZone(TIME_ZONE); - - TIME_FORMAT = DateTimeFormatter.ofPattern("HH"); - TIME_FORMAT.withZone(TIME_ZONE); - - try { - - MIN_DATE = Date.from( - LocalDate.parse("0001-01-01", DATE_FORMAT).atStartOfDay().atZone(TIME_ZONE).toInstant()); - MAX_DATE = Date.from( - LocalDate.parse("9999-12-31", DATE_FORMAT).atStartOfDay().atZone(TIME_ZONE).toInstant()); - - MIN_DATETIME = Date.from( - LocalDateTime.parse("0001-01-01 00:00:00", DATETIME_FORMAT).atZone(TIME_ZONE).toInstant()); - MAX_DATETIME = Date.from( - LocalDateTime.parse("9999-12-31 23:59:59", DATETIME_FORMAT).atZone(TIME_ZONE).toInstant()); - - } catch (DateTimeParseException e) { - LOG.error("invalid date format", e); - System.exit(-1); - } } public static long getStartTimeMs() { @@ -135,7 +127,7 @@ public class TimeUtils { } public static String getCurrentFormatTime() { - return LocalDateTime.now().format(DATETIME_FORMAT); + return LocalDateTime.now().format(getDatetimeFormatWithTimeZone()); } public static TimeZone getTimeZone() { @@ -148,9 +140,13 @@ public class TimeUtils { return TimeZone.getTimeZone(ZoneId.of(timezone, timeZoneAliasMap)); } + public static ZoneId getDorisZoneId() { + return getTimeZone().toZoneId(); + } + // return the time zone of current system public static TimeZone getSystemTimeZone() { - return TimeZone.getTimeZone(ZoneId.of(ZoneId.systemDefault().getId(), timeZoneAliasMap)); + return TimeZone.getTimeZone(ZoneId.of(TimeZone.getDefault().getID(), timeZoneAliasMap)); } // get time zone of given zone name, or return system time zone if name is null. @@ -165,7 +161,7 @@ public class TimeUtils { if (timeStamp <= 0L) { return FeConstants.null_string; } - return dateFormat.format(LocalDateTime.ofInstant(Instant.ofEpochMilli(timeStamp), ZoneId.systemDefault())); + return dateFormat.format(LocalDateTime.ofInstant(Instant.ofEpochMilli(timeStamp), getDorisZoneId())); } public static String longToTimeStringWithFormat(long timeStamp, DateTimeFormatter datetimeFormatTimeZone) { @@ -174,12 +170,12 @@ public class TimeUtils { return longToTimeString(timeStamp, datetimeFormatTimeZone); } - public static String longToTimeString(long timeStamp) { - return longToTimeStringWithFormat(timeStamp, DATETIME_FORMAT); + public static String longToTimeString(Long timeStamp) { + return longToTimeStringWithFormat(timeStamp, getDatetimeFormatWithTimeZone()); } - public static String longToTimeStringWithms(long timeStamp) { - return longToTimeStringWithFormat(timeStamp, DATETIME_MS_FORMAT); + public static String longToTimeStringWithms(Long timeStamp) { + return longToTimeStringWithFormat(timeStamp, getDatetimeMsFormatWithTimeZone()); } public static Date getHourAsDate(String hour) { @@ -189,7 +185,8 @@ public class TimeUtils { } try { return Date.from( - LocalTime.parse(fullHour, TIME_FORMAT).atDate(LocalDate.now()).atZone(TIME_ZONE).toInstant()); + LocalTime.parse(fullHour, getTimeFormatWithTimeZone()).atDate(LocalDate.now()) + .atZone(getDorisZoneId()).toInstant()); } catch (DateTimeParseException e) { LOG.warn("invalid time format: {}", fullHour); return null; @@ -206,13 +203,15 @@ public class TimeUtils { if (type == PrimitiveType.DATE) { ParsePosition pos = new ParsePosition(0); date = Date.from( - LocalDate.from(DATE_FORMAT.parse(dateStr, pos)).atStartOfDay().atZone(TIME_ZONE).toInstant()); + LocalDate.from(getDateFormatWithTimeZone().parse(dateStr, pos)).atStartOfDay() + .atZone(getDorisZoneId()).toInstant()); if (pos.getIndex() != dateStr.length() || date == null) { throw new AnalysisException("Invalid date string: " + dateStr); } } else if (type == PrimitiveType.DATETIME) { try { - date = Date.from(LocalDateTime.parse(dateStr, DATETIME_FORMAT).atZone(TIME_ZONE).toInstant()); + date = Date.from(LocalDateTime.parse(dateStr, getDatetimeFormatWithTimeZone()) + .atZone(getDorisZoneId()).toInstant()); } catch (DateTimeParseException e) { throw new AnalysisException("Invalid date string: " + dateStr); } @@ -229,9 +228,11 @@ public class TimeUtils { public static String format(Date date, PrimitiveType type) { if (type == PrimitiveType.DATE) { - return LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault()).format(DATE_FORMAT); + return LocalDateTime.ofInstant(date.toInstant(), getDorisZoneId()) + .format(getDateFormatWithTimeZone()); } else if (type == PrimitiveType.DATETIME) { - return LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault()).format(DATETIME_FORMAT); + return LocalDateTime.ofInstant(date.toInstant(), getDorisZoneId()) + .format(getDatetimeFormatWithTimeZone()); } else { return "INVALID"; } @@ -244,7 +245,8 @@ public class TimeUtils { public static long timeStringToLong(String timeStr) { Date d; try { - d = Date.from(LocalDateTime.parse(timeStr, DATETIME_FORMAT).atZone(TIME_ZONE).toInstant()); + d = Date.from(LocalDateTime.parse(timeStr, getDatetimeFormatWithTimeZone()) + .atZone(getDorisZoneId()).toInstant()); } catch (DateTimeParseException e) { return -1; } @@ -252,7 +254,7 @@ public class TimeUtils { } public static long timeStringToLong(String timeStr, TimeZone timeZone) { - DateTimeFormatter dateFormatTimeZone = DATETIME_FORMAT; + DateTimeFormatter dateFormatTimeZone = getDatetimeFormatWithTimeZone(); dateFormatTimeZone.withZone(timeZone.toZoneId()); LocalDateTime d; try { 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 8061166050d..b01eeb82a81 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 @@ public class IcebergTableCreationRecordMgr extends MasterDaemon { @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<Map.Entry<Long, Database>> it = icebergDbs.entrySet().iterator(); it.hasNext(); it.remove()) { diff --git a/fe/fe-core/src/main/java/org/apache/doris/load/StreamLoadRecordMgr.java b/fe/fe-core/src/main/java/org/apache/doris/load/StreamLoadRecordMgr.java index 2848311f895..5b58425dfa0 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/load/StreamLoadRecordMgr.java +++ b/fe/fe-core/src/main/java/org/apache/doris/load/StreamLoadRecordMgr.java @@ -249,9 +249,9 @@ public class StreamLoadRecordMgr extends MasterDaemon { for (Map.Entry<String, TStreamLoadRecord> entry : streamLoadRecordBatch.entrySet()) { TStreamLoadRecord streamLoadItem = entry.getValue(); String startTime = TimeUtils.longToTimeString(streamLoadItem.getStartTime(), - TimeUtils.DATETIME_MS_FORMAT); + TimeUtils.getDatetimeMsFormatWithTimeZone()); String finishTime = TimeUtils.longToTimeString(streamLoadItem.getFinishTime(), - TimeUtils.DATETIME_MS_FORMAT); + TimeUtils.getDatetimeMsFormatWithTimeZone()); if (LOG.isDebugEnabled()) { LOG.debug("receive stream load record info from backend: {}." + " label: {}, db: {}, tbl: {}, user: {}, user_ip: {}," diff --git a/fe/fe-core/src/main/java/org/apache/doris/load/sync/canal/CanalUtils.java b/fe/fe-core/src/main/java/org/apache/doris/load/sync/canal/CanalUtils.java index f4e2818aa03..4c5706e29f6 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/load/sync/canal/CanalUtils.java +++ b/fe/fe-core/src/main/java/org/apache/doris/load/sync/canal/CanalUtils.java @@ -69,7 +69,7 @@ public class CanalUtils { String startPosition = buildPositionForDump(entries.get(0)); String endPosition = buildPositionForDump(entries.get(entries.size() - 1)); logger.info(context_format, dataEvents.getId(), entries.size(), dataEvents.getMemSize(), - TimeUtils.DATETIME_FORMAT.format(LocalDateTime.now()), startPosition, endPosition); + TimeUtils.getDatetimeFormatWithTimeZone().format(LocalDateTime.now()), startPosition, endPosition); } public static void printSummary(Message message, int size, long memsize) { @@ -80,7 +80,7 @@ public class CanalUtils { String startPosition = buildPositionForDump(message.getEntries().get(0)); String endPosition = buildPositionForDump(message.getEntries().get(message.getEntries().size() - 1)); logger.info(context_format, message.getId(), size, memsize, - TimeUtils.DATETIME_FORMAT.format(LocalDateTime.now()), startPosition, endPosition); + TimeUtils.getDatetimeFormatWithTimeZone().format(LocalDateTime.now()), startPosition, endPosition); } public static String buildPositionForDump(CanalEntry.Entry entry) { @@ -94,7 +94,7 @@ public class CanalUtils { .append(":") .append(header.getExecuteTime()) .append("(") - .append(TimeUtils.DATETIME_FORMAT.format(date)) + .append(TimeUtils.getDatetimeFormatWithTimeZone().format(date)) .append(")"); if (StringUtils.isNotEmpty(entry.getHeader().getGtid())) { sb.append(" gtid(").append(entry.getHeader().getGtid()) @@ -120,8 +120,8 @@ public class CanalUtils { logger.info(row_format, header.getLogfileName(), String.valueOf(header.getLogfileOffset()), header.getSchemaName(), header.getTableName(), eventType, - String.valueOf(header.getExecuteTime()), TimeUtils.DATETIME_FORMAT.format(date), - header.getGtid(), String.valueOf(delayTime)); + String.valueOf(header.getExecuteTime()), TimeUtils.getDatetimeFormatWithTimeZone().format(date), + header.getGtid(), String.valueOf(delayTime)); if (eventType == CanalEntry.EventType.QUERY || rowChange.getIsDdl()) { logger.info(" sql ----> " + rowChange.getSql() + SEP); return; @@ -197,8 +197,9 @@ public class CanalUtils { // print transaction begin info, thread ID, time consumption logger.info(transaction_format, entry.getHeader().getLogfileName(), String.valueOf(entry.getHeader().getLogfileOffset()), - String.valueOf(entry.getHeader().getExecuteTime()), TimeUtils.DATETIME_FORMAT.format(date), - entry.getHeader().getGtid(), String.valueOf(delayTime)); + String.valueOf(entry.getHeader().getExecuteTime()), + TimeUtils.getDatetimeFormatWithTimeZone().format(date), + entry.getHeader().getGtid(), String.valueOf(delayTime)); logger.info(" BEGIN ----> Thread id: {}", begin.getThreadId()); printXAInfo(begin.getPropsList()); } @@ -219,8 +220,9 @@ public class CanalUtils { printXAInfo(end.getPropsList()); logger.info(transaction_format, entry.getHeader().getLogfileName(), String.valueOf(entry.getHeader().getLogfileOffset()), - String.valueOf(entry.getHeader().getExecuteTime()), TimeUtils.DATETIME_FORMAT.format(date), - entry.getHeader().getGtid(), String.valueOf(delayTime)); + String.valueOf(entry.getHeader().getExecuteTime()), + TimeUtils.getDatetimeFormatWithTimeZone().format(date), + entry.getHeader().getGtid(), String.valueOf(delayTime)); } public static boolean isDML(CanalEntry.EventType eventType) { 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 3ac142d0639..5036bd85636 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 @@ public class MTMVJobFactory { 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/nereids/rules/expression/rules/FoldConstantRuleOnBE.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/FoldConstantRuleOnBE.java index 89955dc4950..1739c147d86 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/FoldConstantRuleOnBE.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/FoldConstantRuleOnBE.java @@ -164,7 +164,7 @@ public class FoldConstantRuleOnBE extends AbstractExpressionRewriteRule { TNetworkAddress brpcAddress = new TNetworkAddress(be.getHost(), be.getBrpcPort()); 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(TimeUtils.DEFAULT_TIME_ZONE); if (context.getSessionVariable().getTimeZone().equals("CST")) { 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 26c0f1fae65..5a28fbdb710 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 @@ -316,7 +316,7 @@ public class StreamLoadPlanner { params.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); @@ -536,7 +536,7 @@ public class StreamLoadPlanner { 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/main/java/org/apache/doris/policy/StoragePolicy.java b/fe/fe-core/src/main/java/org/apache/doris/policy/StoragePolicy.java index 4f1cbd96b7d..e18495c50d0 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/policy/StoragePolicy.java +++ b/fe/fe-core/src/main/java/org/apache/doris/policy/StoragePolicy.java @@ -162,8 +162,9 @@ public class StoragePolicy extends Policy { } if (hasCooldownDatetime) { try { - this.cooldownTimestampMs = LocalDateTime.parse(props.get(COOLDOWN_DATETIME), TimeUtils.DATETIME_FORMAT) - .atZone(TimeUtils.TIME_ZONE).toInstant().toEpochMilli(); + this.cooldownTimestampMs = LocalDateTime + .parse(props.get(COOLDOWN_DATETIME), TimeUtils.getDatetimeFormatWithTimeZone()) + .atZone(TimeUtils.getDorisZoneId()).toInstant().toEpochMilli(); } catch (DateTimeParseException e) { throw new AnalysisException(String.format("cooldown_datetime format error: %s", props.get(COOLDOWN_DATETIME)), e); @@ -327,7 +328,8 @@ public class StoragePolicy extends Policy { } else { try { cooldownTimestampMs = LocalDateTime.parse(properties.get(COOLDOWN_DATETIME), - TimeUtils.DATETIME_FORMAT).atZone(TimeUtils.TIME_ZONE).toInstant().toEpochMilli(); + TimeUtils.getDatetimeFormatWithTimeZone()).atZone(TimeUtils.getDorisZoneId()).toInstant() + .toEpochMilli(); } catch (DateTimeParseException e) { throw new RuntimeException(e); } diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/Coordinator.java b/fe/fe-core/src/main/java/org/apache/doris/qe/Coordinator.java index c6c6cd2cc3c..869db1e7d89 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/qe/Coordinator.java +++ b/fe/fe-core/src/main/java/org/apache/doris/qe/Coordinator.java @@ -309,7 +309,7 @@ public class Coordinator implements CoordInterface { setFromUserProperty(context); - this.queryGlobals.setNowString(TimeUtils.DATETIME_FORMAT.format(LocalDateTime.now())); + this.queryGlobals.setNowString(TimeUtils.getDatetimeFormatWithTimeZone().format(LocalDateTime.now())); this.queryGlobals.setTimestampMs(System.currentTimeMillis()); this.queryGlobals.setNanoSeconds(LocalDateTime.now().getNano()); this.queryGlobals.setLoadZeroTolerance(false); @@ -337,7 +337,7 @@ public class Coordinator implements CoordInterface { this.fragments = fragments; this.scanNodes = scanNodes; this.queryOptions = new TQueryOptions(); - this.queryGlobals.setNowString(TimeUtils.DATETIME_FORMAT.format(LocalDateTime.now())); + this.queryGlobals.setNowString(TimeUtils.getDatetimeFormatWithTimeZone().format(LocalDateTime.now())); this.queryGlobals.setTimestampMs(System.currentTimeMillis()); this.queryGlobals.setTimeZone(timezone); this.queryGlobals.setLoadZeroTolerance(loadZeroTolerance); diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/ShowExecutor.java b/fe/fe-core/src/main/java/org/apache/doris/qe/ShowExecutor.java index 4726d036619..e176d5c784e 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/qe/ShowExecutor.java +++ b/fe/fe-core/src/main/java/org/apache/doris/qe/ShowExecutor.java @@ -2748,7 +2748,7 @@ public class ShowExecutor { row.add(analysisInfo.jobType.toString()); row.add(analysisInfo.analysisType.toString()); row.add(analysisInfo.message); - row.add(TimeUtils.DATETIME_FORMAT.format( + row.add(TimeUtils.getDatetimeFormatWithTimeZone().format( LocalDateTime.ofInstant(Instant.ofEpochMilli(analysisInfo.lastExecTimeInMs), ZoneId.systemDefault()))); row.add(analysisInfo.state.toString()); @@ -3026,7 +3026,7 @@ public class ShowExecutor { row.add("N/A"); } row.add(analysisInfo.message); - row.add(TimeUtils.DATETIME_FORMAT.format( + row.add(TimeUtils.getDatetimeFormatWithTimeZone().format( LocalDateTime.ofInstant(Instant.ofEpochMilli(analysisInfo.lastExecTimeInMs), ZoneId.systemDefault()))); row.add(String.valueOf(analysisInfo.timeCostInMs)); diff --git a/fe/fe-core/src/main/java/org/apache/doris/rewrite/FoldConstantsRule.java b/fe/fe-core/src/main/java/org/apache/doris/rewrite/FoldConstantsRule.java index ed1b45b19db..1b1cc42d51c 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/rewrite/FoldConstantsRule.java +++ b/fe/fe-core/src/main/java/org/apache/doris/rewrite/FoldConstantsRule.java @@ -370,7 +370,7 @@ public class FoldConstantsRule implements ExprRewriteRule { brpcAddress = new TNetworkAddress(be.getHost(), be.getBrpcPort()); TQueryGlobals queryGlobals = new TQueryGlobals(); - queryGlobals.setNowString(TimeUtils.DATETIME_FORMAT.format(LocalDateTime.now())); + queryGlobals.setNowString(TimeUtils.getDatetimeFormatWithTimeZone().format(LocalDateTime.now())); queryGlobals.setTimestampMs(System.currentTimeMillis()); queryGlobals.setNanoSeconds(LocalDateTime.now().getNano()); queryGlobals.setTimeZone(TimeUtils.DEFAULT_TIME_ZONE); diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/AdminCancelRebalanceDiskStmtTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/AdminCancelRebalanceDiskStmtTest.java index 453ea5dc176..aace70b6e3e 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/analysis/AdminCancelRebalanceDiskStmtTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/AdminCancelRebalanceDiskStmtTest.java @@ -43,9 +43,9 @@ public class AdminCancelRebalanceDiskStmtTest { @Before() public void setUp() { - analyzer = AccessTestUtil.fetchAdminAnalyzer(true); MockedAuth.mockedAccess(accessManager); MockedAuth.mockedConnectContext(ctx, "root", "192.168.1.1"); + analyzer = AccessTestUtil.fetchAdminAnalyzer(true); List<Long> beIds = Lists.newArrayList(10001L, 10002L, 10003L, 10004L); beIds.forEach(id -> Env.getCurrentSystemInfo().addBackend(RebalancerTestUtil.createBackend(id, 2048, 0))); diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/AdminRebalanceDiskStmtTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/AdminRebalanceDiskStmtTest.java index 268126b1ca7..86f2e97890d 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/analysis/AdminRebalanceDiskStmtTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/AdminRebalanceDiskStmtTest.java @@ -43,9 +43,9 @@ public class AdminRebalanceDiskStmtTest { @Before public void setUp() { - analyzer = AccessTestUtil.fetchAdminAnalyzer(true); MockedAuth.mockedAccess(accessManager); MockedAuth.mockedConnectContext(ctx, "root", "192.168.1.1"); + analyzer = AccessTestUtil.fetchAdminAnalyzer(true); List<Long> beIds = Lists.newArrayList(10001L, 10002L, 10003L, 10004L); beIds.forEach(id -> Env.getCurrentSystemInfo().addBackend(RebalancerTestUtil.createBackend(id, 2048, 0))); diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/AlterCatalogNameStmtTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/AlterCatalogNameStmtTest.java index 9a1ec62021d..5a59ad725b2 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/analysis/AlterCatalogNameStmtTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/AlterCatalogNameStmtTest.java @@ -39,9 +39,9 @@ public class AlterCatalogNameStmtTest { @Before public void setUp() throws DdlException { - analyzer = AccessTestUtil.fetchAdminAnalyzer(false); MockedAuth.mockedAccess(accessManager); MockedAuth.mockedConnectContext(ctx, "root", "%"); + analyzer = AccessTestUtil.fetchAdminAnalyzer(false); } @Test diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/AlterCatalogPropsStmtTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/AlterCatalogPropsStmtTest.java index 803d7f976d9..bd096138424 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/analysis/AlterCatalogPropsStmtTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/AlterCatalogPropsStmtTest.java @@ -42,9 +42,9 @@ public class AlterCatalogPropsStmtTest { @Before public void setUp() throws DdlException { - analyzer = AccessTestUtil.fetchAdminAnalyzer(false); MockedAuth.mockedAccess(accessManager); MockedAuth.mockedConnectContext(ctx, "root", "%"); + analyzer = AccessTestUtil.fetchAdminAnalyzer(false); } @Test diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/AlterSqlBlockRuleStmtTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/AlterSqlBlockRuleStmtTest.java index 08f0ee9c650..736c1022486 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/analysis/AlterSqlBlockRuleStmtTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/AlterSqlBlockRuleStmtTest.java @@ -45,9 +45,9 @@ public class AlterSqlBlockRuleStmtTest { @Before public void setUp() { - analyzer = AccessTestUtil.fetchAdminAnalyzer(true); MockedAuth.mockedAccess(accessManager); MockedAuth.mockedConnectContext(ctx, "root", "192.168.1.1"); + analyzer = AccessTestUtil.fetchAdminAnalyzer(true); } @Test diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/BackupTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/BackupTest.java index 7a0e969f597..c7e8ece0956 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/analysis/BackupTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/BackupTest.java @@ -19,6 +19,7 @@ package org.apache.doris.analysis; import org.apache.doris.catalog.Env; import org.apache.doris.datasource.InternalCatalog; +import org.apache.doris.mysql.privilege.MockedAuth; import org.apache.doris.qe.ConnectContext; import com.google.common.collect.Lists; @@ -41,6 +42,8 @@ public class BackupTest { @Before public void setUp() { + MockedAuth.mockedConnectContext(ctx, "root", "192.188.3.1"); + analyzer = AccessTestUtil.fetchAdminAnalyzer(true); env = AccessTestUtil.fetchAdminCatalog(); new MockUp<Env>() { diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateCatalogStmtTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateCatalogStmtTest.java index 60d14464ebe..2defacb2c24 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateCatalogStmtTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateCatalogStmtTest.java @@ -43,9 +43,9 @@ public class CreateCatalogStmtTest { @Before() public void setUp() throws DdlException { - analyzer = AccessTestUtil.fetchAdminAnalyzer(true); MockedAuth.mockedAccess(accessManager); MockedAuth.mockedConnectContext(ctx, "root", "%"); + analyzer = AccessTestUtil.fetchAdminAnalyzer(true); } @Test diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateDbStmtTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateDbStmtTest.java index 4e0a1fcc0bc..e9c98f66faa 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateDbStmtTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateDbStmtTest.java @@ -41,9 +41,9 @@ public class CreateDbStmtTest { @Before() public void setUp() { - analyzer = AccessTestUtil.fetchAdminAnalyzer(true); MockedAuth.mockedAccess(accessManager); MockedAuth.mockedConnectContext(ctx, "root", "192.168.1.1"); + analyzer = AccessTestUtil.fetchAdminAnalyzer(true); } @Test diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateRoutineLoadStmtTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateRoutineLoadStmtTest.java index 51c5177b84d..ef103873ae3 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateRoutineLoadStmtTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateRoutineLoadStmtTest.java @@ -189,6 +189,9 @@ public class CreateRoutineLoadStmtTest { result = sessionVariable; sessionVariable.getSendBatchParallelism(); result = 1; + + sessionVariable.getTimeZone(); + result = "Asia/Hong_Kong"; } }; @@ -254,6 +257,9 @@ public class CreateRoutineLoadStmtTest { result = sessionVariable; sessionVariable.getSendBatchParallelism(); result = 1; + + sessionVariable.getTimeZone(); + result = "Asia/Hong_Kong"; } }; diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateSqlBlockRuleStmtTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateSqlBlockRuleStmtTest.java index 48a86548bfb..ea832e04c53 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateSqlBlockRuleStmtTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateSqlBlockRuleStmtTest.java @@ -45,9 +45,9 @@ public class CreateSqlBlockRuleStmtTest { @Before public void setUp() { - analyzer = AccessTestUtil.fetchAdminAnalyzer(true); MockedAuth.mockedAccess(accessManager); MockedAuth.mockedConnectContext(ctx, "root", "192.168.1.1"); + analyzer = AccessTestUtil.fetchAdminAnalyzer(true); } @Test diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateTableStmtTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateTableStmtTest.java index d856599a3d7..1567886cb62 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateTableStmtTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateTableStmtTest.java @@ -77,6 +77,8 @@ public class CreateTableStmtTest { **/ @Before public void setUp() { + MockedAuth.mockedAccess(accessManager); + MockedAuth.mockedConnectContext(ctx, "root", "192.168.1.1"); // analyzer analyzer = AccessTestUtil.fetchAdminAnalyzer(false); // table name @@ -98,9 +100,6 @@ public class CreateTableStmtTest { invalidColsName.add("col1"); invalidColsName.add("col2"); invalidColsName.add("col2"); - - MockedAuth.mockedAccess(accessManager); - MockedAuth.mockedConnectContext(ctx, "root", "192.168.1.1"); } @Test diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/DeleteStmtTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/DeleteStmtTest.java index 2bd53e8d3e6..3a93eb9983a 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/analysis/DeleteStmtTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/DeleteStmtTest.java @@ -45,9 +45,9 @@ public class DeleteStmtTest { @Before public void setUp() { - analyzer = AccessTestUtil.fetchAdminAnalyzer(false); MockedAuth.mockedAccess(accessManager); MockedAuth.mockedConnectContext(ctx, "root", "192.168.1.1"); + analyzer = AccessTestUtil.fetchAdminAnalyzer(false); } @Test diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/DropCatalogStmtTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/DropCatalogStmtTest.java index 2eebed775f6..a9b89a0a393 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/analysis/DropCatalogStmtTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/DropCatalogStmtTest.java @@ -40,9 +40,9 @@ public class DropCatalogStmtTest { @Before public void setUp() throws DdlException { - analyzer = AccessTestUtil.fetchAdminAnalyzer(true); MockedAuth.mockedAccess(accessManager); MockedAuth.mockedConnectContext(ctx, "root", "%"); + analyzer = AccessTestUtil.fetchAdminAnalyzer(true); } @Test diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/DropDbStmtTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/DropDbStmtTest.java index f74b3d76b74..86cbc61e87d 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/analysis/DropDbStmtTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/DropDbStmtTest.java @@ -38,9 +38,9 @@ public class DropDbStmtTest { @Before public void setUp() { - analyzer = AccessTestUtil.fetchAdminAnalyzer(true); MockedAuth.mockedAccess(accessManager); MockedAuth.mockedConnectContext(ctx, "root", "192.168.1.1"); + analyzer = AccessTestUtil.fetchAdminAnalyzer(true); } @Test diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/DropTableStmtTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/DropTableStmtTest.java index ac9aa6f9027..32da71064f1 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/analysis/DropTableStmtTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/DropTableStmtTest.java @@ -46,6 +46,9 @@ public class DropTableStmtTest { @Before public void setUp() { + MockedAuth.mockedAccess(accessManager); + MockedAuth.mockedConnectContext(ctx, "root", "192.168.1.1"); + tbl = new TableName(internalCtl, "db1", "table1"); noDbTbl = new TableName(internalCtl, "", "table1"); analyzer = AccessTestUtil.fetchAdminAnalyzer(true); @@ -65,9 +68,6 @@ public class DropTableStmtTest { result = "testCluster"; } }; - - MockedAuth.mockedAccess(accessManager); - MockedAuth.mockedConnectContext(ctx, "root", "192.168.1.1"); } @Test diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/DropUserStmtTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/DropUserStmtTest.java index 54142222181..ad483bd6719 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/analysis/DropUserStmtTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/DropUserStmtTest.java @@ -38,9 +38,9 @@ public class DropUserStmtTest { @Before public void setUp() { - analyzer = AccessTestUtil.fetchAdminAnalyzer(true); MockedAuth.mockedAccess(accessManager); MockedAuth.mockedConnectContext(ctx, "root", "192.168.1.1"); + analyzer = AccessTestUtil.fetchAdminAnalyzer(true); } @Test 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 37bf2c8bfb5..61e49d4f975 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.common.UserException; 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/analysis/LoadStmtTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/LoadStmtTest.java index e8f83098671..21511478dd5 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/analysis/LoadStmtTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/LoadStmtTest.java @@ -30,6 +30,7 @@ import org.apache.doris.load.loadv2.LoadTask; import org.apache.doris.mysql.privilege.AccessControllerManager; import org.apache.doris.mysql.privilege.PrivPredicate; import org.apache.doris.qe.ConnectContext; +import org.apache.doris.qe.VariableMgr; import org.apache.doris.task.LoadTaskInfo; import com.google.common.collect.Lists; @@ -57,9 +58,6 @@ public class LoadStmtTest { @Before public void setUp() { - analyzer = AccessTestUtil.fetchAdminAnalyzer(true); - dataDescriptions = Lists.newArrayList(); - dataDescriptions.add(desc); new Expectations() { { ConnectContext.get(); @@ -70,11 +68,19 @@ public class LoadStmtTest { minTimes = 0; result = "default_cluster:user"; + ctx.getSessionVariable(); + minTimes = 0; + result = VariableMgr.newSessionVariable(); + desc.toSql(); minTimes = 0; result = "XXX"; } }; + + analyzer = AccessTestUtil.fetchAdminAnalyzer(true); + dataDescriptions = Lists.newArrayList(); + dataDescriptions.add(desc); } @Test diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/SetOperationStmtTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/SetOperationStmtTest.java index ab9131ffb9e..203b30935e6 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/analysis/SetOperationStmtTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/SetOperationStmtTest.java @@ -39,9 +39,9 @@ public class SetOperationStmtTest { @Before public void setUp() { - analyzer = AccessTestUtil.fetchAdminAnalyzer(true); MockedAuth.mockedAccess(accessManager); MockedAuth.mockedConnectContext(ctx, "root", "192.168.1.1"); + analyzer = AccessTestUtil.fetchAdminAnalyzer(true); } @Test diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/SetPassVarTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/SetPassVarTest.java index 5157da16452..f9d91473942 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/analysis/SetPassVarTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/SetPassVarTest.java @@ -38,9 +38,9 @@ public class SetPassVarTest { @Before public void setUp() { - analyzer = AccessTestUtil.fetchAdminAnalyzer(true); MockedAuth.mockedAccess(accessManager); MockedAuth.mockedConnectContext(ctx, "root", "192.168.1.1"); + analyzer = AccessTestUtil.fetchAdminAnalyzer(true); UserIdentity currentUser = new UserIdentity("root", "192.168.1.1"); currentUser.setIsAnalyzed(); ctx.setCurrentUserIdentity(currentUser); diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/SetStmtTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/SetStmtTest.java index 4de1d76c0d2..29b1c13ddfb 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/analysis/SetStmtTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/SetStmtTest.java @@ -41,9 +41,9 @@ public class SetStmtTest { @Before public void setUp() { - analyzer = AccessTestUtil.fetchAdminAnalyzer(true); MockedAuth.mockedAccess(accessManager); MockedAuth.mockedConnectContext(ctx, "root", "192.168.1.1"); + analyzer = AccessTestUtil.fetchAdminAnalyzer(true); } @Test diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/SetUserPropertyStmtTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/SetUserPropertyStmtTest.java index f926903b785..0a4a331a153 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/analysis/SetUserPropertyStmtTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/SetUserPropertyStmtTest.java @@ -41,9 +41,9 @@ public class SetUserPropertyStmtTest { @Before public void setUp() { - analyzer = AccessTestUtil.fetchAdminAnalyzer(true); MockedAuth.mockedAccess(accessManager); MockedAuth.mockedConnectContext(ctx, "root", "192.168.1.1"); + analyzer = AccessTestUtil.fetchAdminAnalyzer(true); } @Test diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/SetVarTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/SetVarTest.java index d88538a9a58..68ccf0ec0c6 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/analysis/SetVarTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/SetVarTest.java @@ -38,9 +38,9 @@ public class SetVarTest { @Before public void setUp() { - analyzer = AccessTestUtil.fetchAdminAnalyzer(false); MockedAuth.mockedAccess(accessManager); MockedAuth.mockedConnectContext(ctx, "root", "192.168.1.1"); + analyzer = AccessTestUtil.fetchAdminAnalyzer(false); } @Test diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowDataTypesStmtTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowDataTypesStmtTest.java index 197f5cc7230..3856bbf7f93 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowDataTypesStmtTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowDataTypesStmtTest.java @@ -35,8 +35,8 @@ public class ShowDataTypesStmtTest { @Before public void setUp() { - analyzer = AccessTestUtil.fetchAdminAnalyzer(true); MockedAuth.mockedConnectContext(ctx, "root", "192.168.1.1"); + analyzer = AccessTestUtil.fetchAdminAnalyzer(true); } @Test diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowDbIdStmtTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowDbIdStmtTest.java index 052f82ab61a..ff139dfc713 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowDbIdStmtTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowDbIdStmtTest.java @@ -38,9 +38,9 @@ public class ShowDbIdStmtTest { @Before public void setUp() { - analyzer = AccessTestUtil.fetchAdminAnalyzer(true); MockedAuth.mockedAccess(accessManager); MockedAuth.mockedConnectContext(ctx, "root", "192.168.1.1"); + analyzer = AccessTestUtil.fetchAdminAnalyzer(true); } @Test diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowEncryptKeysStmtTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowEncryptKeysStmtTest.java index 5246f2e0386..337ffb264df 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowEncryptKeysStmtTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowEncryptKeysStmtTest.java @@ -48,10 +48,10 @@ public class ShowEncryptKeysStmtTest { @Before public void setUp() { - fakeEnv = new FakeEnv(); - env = AccessTestUtil.fetchAdminCatalog(); MockedAuth.mockedAccess(accessManager); MockedAuth.mockedConnectContext(ctx, "root", "192.188.3.1"); + fakeEnv = new FakeEnv(); + env = AccessTestUtil.fetchAdminCatalog(); FakeEnv.setEnv(env); new Expectations() { diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowFunctionsStmtTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowFunctionsStmtTest.java index 0c39cb67b3b..b55ef9d67ff 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowFunctionsStmtTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowFunctionsStmtTest.java @@ -49,10 +49,10 @@ public class ShowFunctionsStmtTest { @Before public void setUp() { - fakeEnv = new FakeEnv(); - env = AccessTestUtil.fetchAdminCatalog(); MockedAuth.mockedAccess(accessManager); MockedAuth.mockedConnectContext(ctx, "root", "192.188.3.1"); + fakeEnv = new FakeEnv(); + env = AccessTestUtil.fetchAdminCatalog(); FakeEnv.setEnv(env); new Expectations() { diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowIndexStmtTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowIndexStmtTest.java index 72137921048..3af2a7dd035 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowIndexStmtTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowIndexStmtTest.java @@ -41,9 +41,9 @@ public class ShowIndexStmtTest { @Before public void setUp() { - analyzer = AccessTestUtil.fetchAdminAnalyzer(true); MockedAuth.mockedAccess(accessManager); MockedAuth.mockedConnectContext(ctx, "root", "192.168.1.1"); + analyzer = AccessTestUtil.fetchAdminAnalyzer(true); } @Test diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowPartitionIdStmtTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowPartitionIdStmtTest.java index 5df375e646f..4682bc660b8 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowPartitionIdStmtTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowPartitionIdStmtTest.java @@ -38,9 +38,9 @@ public class ShowPartitionIdStmtTest { @Before public void setUp() { - analyzer = AccessTestUtil.fetchAdminAnalyzer(true); MockedAuth.mockedAccess(accessManager); MockedAuth.mockedConnectContext(ctx, "root", "192.168.1.1"); + analyzer = AccessTestUtil.fetchAdminAnalyzer(true); } @Test diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowTableCreationStmtTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowTableCreationStmtTest.java index bc9e2455220..20218413550 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowTableCreationStmtTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowTableCreationStmtTest.java @@ -37,9 +37,9 @@ public class ShowTableCreationStmtTest { @Before public void setUp() { - analyzer = AccessTestUtil.fetchAdminAnalyzer(true); MockedAuth.mockedAccess(accessManager); MockedAuth.mockedConnectContext(ctx, "root", "192.168.1.1"); + analyzer = AccessTestUtil.fetchAdminAnalyzer(true); } @Test diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowTableIdStmtTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowTableIdStmtTest.java index d24e6a1b8f3..13f1f3a095d 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowTableIdStmtTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowTableIdStmtTest.java @@ -38,9 +38,9 @@ public class ShowTableIdStmtTest { @Before public void setUp() { - analyzer = AccessTestUtil.fetchAdminAnalyzer(true); MockedAuth.mockedAccess(accessManager); MockedAuth.mockedConnectContext(ctx, "root", "192.168.1.1"); + analyzer = AccessTestUtil.fetchAdminAnalyzer(true); } @Test diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowTableStmtTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowTableStmtTest.java index b6c63850b6e..44dde1725bd 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowTableStmtTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowTableStmtTest.java @@ -38,9 +38,9 @@ public class ShowTableStmtTest { @Before public void setUp() { - analyzer = AccessTestUtil.fetchAdminAnalyzer(true); MockedAuth.mockedAccess(accessManager); MockedAuth.mockedConnectContext(ctx, "root", "192.168.1.1"); + analyzer = AccessTestUtil.fetchAdminAnalyzer(true); } @Test diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowUserPropertyStmtTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowUserPropertyStmtTest.java index 53b63a568b0..dfe1f909050 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowUserPropertyStmtTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowUserPropertyStmtTest.java @@ -41,9 +41,9 @@ public class ShowUserPropertyStmtTest { @Before public void setUp() { - analyzer = AccessTestUtil.fetchAdminAnalyzer(true); MockedAuth.mockedAccess(accessManager); MockedAuth.mockedConnectContext(ctx, "root", "192.168.1.1"); + analyzer = AccessTestUtil.fetchAdminAnalyzer(true); } @Test diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/UseStmtTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/UseStmtTest.java index 3cb96451bed..5153968ed54 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/analysis/UseStmtTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/UseStmtTest.java @@ -38,9 +38,9 @@ public class UseStmtTest { @Before public void setUp() { - analyzer = AccessTestUtil.fetchAdminAnalyzer(true); MockedAuth.mockedAccess(accessManager); MockedAuth.mockedConnectContext(ctx, "root", "192.168.1.1"); + analyzer = AccessTestUtil.fetchAdminAnalyzer(true); } @Test 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 44491ed1cf6..7aa4051ad0a 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 class TimeUtilsTest { 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 class TimeUtilsTest { @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/load/routineload/KafkaRoutineLoadJobTest.java b/fe/fe-core/src/test/java/org/apache/doris/load/routineload/KafkaRoutineLoadJobTest.java index 73213fc7ffc..842d4d4003f 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/load/routineload/KafkaRoutineLoadJobTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/load/routineload/KafkaRoutineLoadJobTest.java @@ -40,6 +40,7 @@ import org.apache.doris.load.RoutineLoadDesc; import org.apache.doris.load.loadv2.LoadTask; import org.apache.doris.load.routineload.kafka.KafkaConfiguration; import org.apache.doris.load.routineload.kafka.KafkaDataSourceProperties; +import org.apache.doris.mysql.privilege.MockedAuth; import org.apache.doris.qe.ConnectContext; import org.apache.doris.system.SystemInfoService; import org.apache.doris.thrift.TResourceInfo; @@ -92,6 +93,8 @@ public class KafkaRoutineLoadJobTest { @Before public void init() { + MockedAuth.mockedConnectContext(connectContext, "root", "192.168.1.1"); + List<String> partitionNameList = Lists.newArrayList(); partitionNameList.add("p1"); partitionNames = new PartitionNames(false, partitionNameList); diff --git a/fe/fe-core/src/test/java/org/apache/doris/mysql/privilege/MockedAuth.java b/fe/fe-core/src/test/java/org/apache/doris/mysql/privilege/MockedAuth.java index db8b3cd98f2..2dbd4c0fa72 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/mysql/privilege/MockedAuth.java +++ b/fe/fe-core/src/test/java/org/apache/doris/mysql/privilege/MockedAuth.java @@ -20,6 +20,7 @@ package org.apache.doris.mysql.privilege; import org.apache.doris.analysis.UserIdentity; import org.apache.doris.qe.ConnectContext; import org.apache.doris.qe.QueryState; +import org.apache.doris.qe.VariableMgr; import mockit.Expectations; @@ -73,6 +74,10 @@ public class MockedAuth { UserIdentity userIdentity = new UserIdentity(user, ip); userIdentity.setIsAnalyzed(); result = userIdentity; + + ctx.getSessionVariable(); + minTimes = 0; + result = VariableMgr.newSessionVariable(); } }; } diff --git a/fe/fe-core/src/test/java/org/apache/doris/nereids/jobs/cascades/DeriveStatsJobTest.java b/fe/fe-core/src/test/java/org/apache/doris/nereids/jobs/cascades/DeriveStatsJobTest.java index fd60eb2e00c..12f03dc5888 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/nereids/jobs/cascades/DeriveStatsJobTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/nereids/jobs/cascades/DeriveStatsJobTest.java @@ -20,6 +20,7 @@ package org.apache.doris.nereids.jobs.cascades; import org.apache.doris.catalog.Column; import org.apache.doris.catalog.OlapTable; import org.apache.doris.catalog.PrimitiveType; +import org.apache.doris.mysql.privilege.MockedAuth; import org.apache.doris.nereids.CascadesContext; import org.apache.doris.nereids.jobs.JobContext; import org.apache.doris.nereids.properties.LogicalProperties; @@ -60,6 +61,8 @@ public class DeriveStatsJobTest { @Test public void testExecute() throws Exception { + MockedAuth.mockedConnectContext(context, "root", "192.168.1.1"); + LogicalOlapScan olapScan = constructOlapSCan(); LogicalAggregate agg = constructAgg(olapScan); CascadesContext cascadesContext = MemoTestUtils.createCascadesContext(agg); 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 bd9a971401a..986cd5f0630 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,8 @@ import org.apache.doris.nereids.trees.plans.logical.LogicalTopN; 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.SessionVariable; +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,6 +51,7 @@ import org.apache.doris.statistics.Statistics; 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.jupiter.api.Assertions; import org.junit.jupiter.api.Test; @@ -61,7 +64,6 @@ import java.util.Map; import java.util.Optional; public class StatsCalculatorTest { - private Group newGroup() { GroupExpression groupExpression = new GroupExpression(new FakePlan()); Group group = new Group(null, groupExpression, null); @@ -250,6 +252,20 @@ public class StatsCalculatorTest { @Test public void testOlapScan(@Mocked ConnectContext context) { + ConnectContext connectContext = ConnectContext.get(); + SessionVariable sessionVariable = VariableMgr.newSessionVariable(); + new Expectations() { + { + ConnectContext.get(); + minTimes = 0; + result = connectContext; + + connectContext.getSessionVariable(); + minTimes = 0; + result = sessionVariable; + } + }; + long tableId1 = 0; List<String> qualifier = ImmutableList.of("test", "t"); SlotReference slot1 = new SlotReference(new ExprId(0), diff --git a/fe/fe-core/src/test/java/org/apache/doris/planner/RuntimeFilterGeneratorTest.java b/fe/fe-core/src/test/java/org/apache/doris/planner/RuntimeFilterGeneratorTest.java index a7c8f8ed79c..f89ac1535d1 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/planner/RuntimeFilterGeneratorTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/planner/RuntimeFilterGeneratorTest.java @@ -38,6 +38,7 @@ import org.apache.doris.common.UserException; import org.apache.doris.common.jmockit.Deencapsulation; import org.apache.doris.datasource.InternalCatalog; import org.apache.doris.qe.ConnectContext; +import org.apache.doris.qe.VariableMgr; import org.apache.doris.thrift.TPartitionType; import com.google.common.collect.ImmutableList; @@ -60,6 +61,13 @@ public class RuntimeFilterGeneratorTest { @Before public void setUp() throws UserException { + new Expectations() { + { + ConnectContext.get().getSessionVariable(); + minTimes = 0; + result = VariableMgr.newSessionVariable(); + } + }; Env env = Deencapsulation.newInstance(Env.class); analyzer = new Analyzer(env, connectContext); new Expectations() { diff --git a/fe/fe-core/src/test/java/org/apache/doris/qe/StmtExecutorTest.java b/fe/fe-core/src/test/java/org/apache/doris/qe/StmtExecutorTest.java index 507102fb0d2..953b5104457 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/qe/StmtExecutorTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/qe/StmtExecutorTest.java @@ -85,9 +85,20 @@ public class StmtExecutorTest { ctx = new ConnectContext(); SessionVariable sessionVariable = new SessionVariable(); + new Expectations(ctx) { + { + ctx.getSessionVariable(); + minTimes = 0; + result = sessionVariable; + + ConnectContext.get().getSessionVariable(); + minTimes = 0; + result = sessionVariable; + } + }; + MysqlSerializer serializer = MysqlSerializer.newInstance(); Env env = AccessTestUtil.fetchAdminCatalog(); - new Expectations(channel) { { channel.sendOnePacket((ByteBuffer) any); @@ -153,10 +164,6 @@ public class StmtExecutorTest { minTimes = 0; result = "testCluster:testDb"; - ctx.getSessionVariable(); - minTimes = 0; - result = sessionVariable; - ctx.setStmtId(anyLong); minTimes = 0; --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org