diff --git a/fe/fe-core/src/main/java/org/apache/doris/planner/Planner.java b/fe/fe-core/src/main/java/org/apache/doris/planner/Planner.java index 427e2a651c..d461a760d6 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/planner/Planner.java +++ b/fe/fe-core/src/main/java/org/apache/doris/planner/Planner.java @@ -195,7 +195,7 @@ public class Planner { exprs, rootFragment.getPlanRoot().getOutputSmap(), analyzer, true); rootFragment.setOutputExprs(resExprs); } else { - List resExprs = Expr.substituteList(queryStmt.getBaseTblResultExprs(), + List resExprs = Expr.substituteList(queryStmt.getResultExprs(), rootFragment.getPlanRoot().getOutputSmap(), analyzer, false); rootFragment.setOutputExprs(resExprs); } diff --git a/fe/fe-core/src/main/java/org/apache/doris/planner/SingleNodePlanner.java b/fe/fe-core/src/main/java/org/apache/doris/planner/SingleNodePlanner.java index c768045b94..345a13173d 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/planner/SingleNodePlanner.java +++ b/fe/fe-core/src/main/java/org/apache/doris/planner/SingleNodePlanner.java @@ -1036,6 +1036,8 @@ public class SingleNodePlanner { } unionNode.setTblRefIds(Lists.newArrayList(inlineViewRef.getId())); unionNode.addConstExprList(selectStmt.getBaseTblResultExprs()); + //set outputSmap to substitute literal in outputExpr + unionNode.setOutputSmap(inlineViewRef.getSmap()); unionNode.init(analyzer); return unionNode; }