This is an automated email from the ASF dual-hosted git repository. panxiaolei pushed a commit to branch fix_0406 in repository https://gitbox.apache.org/repos/asf/doris.git
commit bf06517cbd77f4f6cbcd9047542cbe82ef621aba Author: BiteTheDDDDt <pxl...@qq.com> AuthorDate: Thu Apr 6 18:42:39 2023 +0800 fix mv match failed when aggregate function not materialized --- .../java/org/apache/doris/planner/MaterializedViewSelector.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/fe/fe-core/src/main/java/org/apache/doris/planner/MaterializedViewSelector.java b/fe/fe-core/src/main/java/org/apache/doris/planner/MaterializedViewSelector.java index a3e7f2b0f8..94ce9e1b53 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/planner/MaterializedViewSelector.java +++ b/fe/fe-core/src/main/java/org/apache/doris/planner/MaterializedViewSelector.java @@ -43,6 +43,7 @@ import com.google.common.collect.Sets; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.List; @@ -455,6 +456,14 @@ public class MaterializedViewSelector { aggExpr.getTableIdToColumnNames(tableIdToAggColumnNames); // count(*): tableIdToAggColumnNames is empty which must forbidden the SPJG MV. // TODO(ml): support count(*) + List<SlotRef> slots = new ArrayList<>(); + aggExpr.collect(SlotRef.class, slots); + if (!slots.isEmpty()) { + SlotDescriptor desc = ((SlotRef) slots.get(0)).getDesc(); + if (desc != null && !desc.isMaterialized()) { + continue; + } + } if (tableIdToAggColumnNames.size() != 1) { reasonOfDisable = "aggExpr[" + aggExpr.debugString() + "] should involved only one column"; disableSPJGView = true; --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org