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