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 4e9827695497dc..2fe58db9ecfa05 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 @@ -1409,7 +1409,15 @@ public void rewriteExprs(ExprRewriter rewriter) throws AnalysisException { } if (orderByElements != null) { for (OrderByElement orderByElem : orderByElements) { + // we must make sure the expr is analyzed before rewrite + try { + orderByElem.getExpr().analyze(analyzer); + } catch (AnalysisException ex) { + //ignore any exception + } orderByElem.setExpr(rewriter.rewrite(orderByElem.getExpr(), analyzer)); + // after rewrite, need reset the analyze status for later re-analyze + orderByElem.getExpr().reset(); } } }