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

Reply via email to