This is an automated email from the ASF dual-hosted git repository.

yangbowen 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 0d9dfd8f8d0 [Improve](Legacy planner)forbidden mvrewrite when there is 
no mv index in legacy planner (#40000)
0d9dfd8f8d0 is described below

commit 0d9dfd8f8d0f95afe04d8a30d5bb30ff86bc2967
Author: wangqt <mongo3...@gmail.com>
AuthorDate: Mon Sep 2 20:22:58 2024 +0800

    [Improve](Legacy planner)forbidden mvrewrite when there is no mv index in 
legacy planner (#40000)
    
    Problem:
    In legacy planner mode, when do select request from a table with rollup
    index; It will do mv rewrite operation, this will invoker too much
    Expr.toSql that will cause cpu consumption。
    Solution:
    when do mv rewrite judgement,add mv index check when the tables index
    number > 1;if there is no mv index, do not do mv rewrite.
    
    ---------
    
    Co-authored-by: wangqingtao6 <wangqingt...@jd.com>
---
 .../src/main/java/org/apache/doris/analysis/BinaryPredicate.java | 4 +++-
 .../src/main/java/org/apache/doris/analysis/SelectStmt.java      | 9 ++++++++-
 fe/fe-core/src/main/java/org/apache/doris/analysis/SlotRef.java  | 4 +++-
 3 files changed, 14 insertions(+), 3 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/BinaryPredicate.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/BinaryPredicate.java
index 05014a4e0f0..00c67ab1203 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/BinaryPredicate.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/BinaryPredicate.java
@@ -309,7 +309,9 @@ public class BinaryPredicate extends Predicate implements 
Writable {
         Preconditions.checkState(match.getReturnType().getPrimitiveType() == 
PrimitiveType.BOOLEAN);
         //todo(dhc): should add oppCode
         //this.vectorOpcode = match.opcode;
-        LOG.debug(debugString() + " opcode: " + vectorOpcode);
+        if (LOG.isDebugEnabled()) {
+            LOG.debug(debugString() + " opcode: " + vectorOpcode);
+        }
     }
 
     private boolean canCompareDate(PrimitiveType t1, PrimitiveType t2) {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/SelectStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/SelectStmt.java
index 01352d2ab10..793ebf63e33 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/SelectStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/SelectStmt.java
@@ -26,6 +26,7 @@ import org.apache.doris.catalog.Column;
 import org.apache.doris.catalog.DatabaseIf;
 import org.apache.doris.catalog.Env;
 import org.apache.doris.catalog.FunctionSet;
+import org.apache.doris.catalog.MaterializedIndexMeta;
 import org.apache.doris.catalog.OlapTable;
 import org.apache.doris.catalog.PrimitiveType;
 import org.apache.doris.catalog.Table;
@@ -512,7 +513,13 @@ public class SelectStmt extends QueryStmt {
                 }
                 OlapTable olapTable = (OlapTable) tbl.getTable();
                 if (olapTable.getIndexIds().size() != 1) {
-                    haveMv = true;
+                    for (MaterializedIndexMeta meta : 
olapTable.getIndexIdToMeta().values()) {
+                        List<Column> idxColumns = meta.getSchema();
+                        // check the index is a mv index
+                        if (!idxColumns.isEmpty() && null != 
idxColumns.get(0).getDefineExpr()) {
+                            haveMv = true;
+                        }
+                    }
                 }
             }
 
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/SlotRef.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/SlotRef.java
index bab3ac1baef..7275572c5b4 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/SlotRef.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/SlotRef.java
@@ -199,7 +199,9 @@ public class SlotRef extends Expr {
     @Override
     public void computeOutputColumn(Analyzer analyzer) {
         outputColumn = desc.getSlotOffset();
-        LOG.debug("SlotRef: " + debugString() + " outputColumn: " + 
outputColumn);
+        if (LOG.isDebugEnabled()) {
+            LOG.debug("SlotRef: " + debugString() + " outputColumn: " + 
outputColumn);
+        }
     }
 
     @Override


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to