xinyiZzz commented on code in PR #22144: URL: https://github.com/apache/doris/pull/22144#discussion_r1273441950
########## fe/fe-core/src/main/java/org/apache/doris/qe/cache/CacheAnalyzer.java: ########## @@ -288,8 +289,64 @@ private CacheMode innerCheckCacheMode(long now) { return CacheMode.Partition; } + private CacheMode innerCheckCacheModeForNereids(long now) { + // only sql cache + if (!enableSqlCache()) { + LOG.debug("sql cache is disabled. queryid {}", DebugUtil.printId(queryId)); Review Comment: fix ########## fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java: ########## @@ -567,7 +567,7 @@ public class SessionVariable implements Serializable, Writable { + "which can improve query concurrency. default is false."}) public boolean enableScanRunSerial = false; - @VariableMgr.VarAttr(name = ENABLE_SQL_CACHE) + @VariableMgr.VarAttr(name = ENABLE_SQL_CACHE, fuzzy = true) Review Comment: fix ########## fe/fe-core/src/main/java/org/apache/doris/qe/cache/CacheAnalyzer.java: ########## @@ -288,8 +289,64 @@ private CacheMode innerCheckCacheMode(long now) { return CacheMode.Partition; } + private CacheMode innerCheckCacheModeForNereids(long now) { + // only sql cache + if (!enableSqlCache()) { + LOG.debug("sql cache is disabled. queryid {}", DebugUtil.printId(queryId)); + return CacheMode.NoNeed; + } + if (!(parsedStmt instanceof LogicalPlanAdapter) || scanNodes.size() == 0) { + LOG.debug("not a select stmt or no scan node. queryid {}", DebugUtil.printId(queryId)); + return CacheMode.NoNeed; + } + MetricRepo.COUNTER_QUERY_TABLE.increase(1L); + + //Check the last version time of the table + List<CacheTable> tblTimeList = Lists.newArrayList(); + for (int i = 0; i < scanNodes.size(); i++) { + ScanNode node = scanNodes.get(i); + if (!(node instanceof OlapScanNode)) { + LOG.debug("query contains non-olap table. queryid {}", DebugUtil.printId(queryId)); + return CacheMode.None; + } + CacheTable cTable = getSelectedPartitionLastUpdateTime((OlapScanNode) node); + tblTimeList.add(cTable); + } + MetricRepo.COUNTER_QUERY_OLAP_TABLE.increase(1L); + Collections.sort(tblTimeList); + latestTable = tblTimeList.get(0); + latestTable.debug(); + + if (((LogicalPlanAdapter) parsedStmt).getStatementContext().getParsedStatement().isExplain()) { + return CacheMode.NoNeed; + } + + String cacheKey = ((LogicalPlanAdapter) parsedStmt).getStatementContext() + .getOriginStatement().originStmt.toLowerCase(); + if (now == 0) { + now = nowtime(); + } + if (enableSqlCache() + && (now - latestTable.latestTime) >= Config.cache_last_version_interval_second * 1000L) { + LOG.debug("TIME:{},{},{}", now, latestTable.latestTime, Review Comment: fix ########## fe/fe-core/src/main/java/org/apache/doris/qe/cache/SqlCache.java: ########## @@ -35,13 +35,21 @@ public SqlCache(TUniqueId queryId, SelectStmt selectStmt) { super(queryId, selectStmt); } + public SqlCache(TUniqueId queryId) { + super(queryId); + } + public void setCacheInfo(CacheAnalyzer.CacheTable latestTable, String allViewExpandStmtListStr) { this.latestTable = latestTable; this.allViewExpandStmtListStr = allViewExpandStmtListStr; } public String getSqlWithViewStmt() { - return selectStmt.toSql() + "|" + allViewExpandStmtListStr; + if (selectStmt != null) { + return selectStmt.toSql() + "|" + allViewExpandStmtListStr; Review Comment: If there is a random function, the result of sql cache will be wrong. This cannot be solved temporarily and needs to be decided by the user. ########## fe/fe-core/src/main/java/org/apache/doris/qe/cache/CacheAnalyzer.java: ########## @@ -288,8 +289,64 @@ private CacheMode innerCheckCacheMode(long now) { return CacheMode.Partition; } + private CacheMode innerCheckCacheModeForNereids(long now) { + // only sql cache + if (!enableSqlCache()) { + LOG.debug("sql cache is disabled. queryid {}", DebugUtil.printId(queryId)); + return CacheMode.NoNeed; + } + if (!(parsedStmt instanceof LogicalPlanAdapter) || scanNodes.size() == 0) { + LOG.debug("not a select stmt or no scan node. queryid {}", DebugUtil.printId(queryId)); Review Comment: fix -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org