diff --git a/fe/src/main/java/org/apache/doris/analysis/SelectStmt.java b/fe/src/main/java/org/apache/doris/analysis/SelectStmt.java index f4e66f9f056928..2ad443b23b68b4 100644 --- a/fe/src/main/java/org/apache/doris/analysis/SelectStmt.java +++ b/fe/src/main/java/org/apache/doris/analysis/SelectStmt.java @@ -497,6 +497,19 @@ public List getTableRefIds() { return result; } + public List getTableRefIdsWithoutInlineView() { + List result = Lists.newArrayList(); + + for (TableRef ref : fromClause_) { + if (ref instanceof InlineViewRef) { + continue; + } + result.add(ref.getId()); + } + + return result; + } + @Override public List collectTupleIds() { List result = Lists.newArrayList(); diff --git a/fe/src/main/java/org/apache/doris/planner/MaterializedViewSelector.java b/fe/src/main/java/org/apache/doris/planner/MaterializedViewSelector.java index e0502711692b73..35a99905cb4def 100644 --- a/fe/src/main/java/org/apache/doris/planner/MaterializedViewSelector.java +++ b/fe/src/main/java/org/apache/doris/planner/MaterializedViewSelector.java @@ -43,7 +43,6 @@ 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; @@ -474,8 +473,7 @@ private void init() { // Step4: compute the output column // ISSUE-3174: all of columns which belong to top tuple should be considered in selector. - ArrayList topTupleIds = Lists.newArrayList(); - selectStmt.getMaterializedTupleIds(topTupleIds); + List topTupleIds = selectStmt.getTableRefIdsWithoutInlineView(); for (TupleId tupleId : topTupleIds) { TupleDescriptor tupleDescriptor = analyzer.getTupleDesc(tupleId); tupleDescriptor.getTableNameToColumnNames(columnNamesInQueryOutput);