zhengshiJ commented on code in PR #10227: URL: https://github.com/apache/doris/pull/10227#discussion_r901489770
########## fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java: ########## @@ -278,6 +317,70 @@ last, plan(join.relationPrimary()) return last; } + private LogicalPlan withAggClause(List<Expression> expressions, + GroupByItemContext ctx, LogicalPlan aggClause) { + List<Expression> tmpExpressions = new ArrayList<>(); + for (ExpressionContext expressionCtx : ctx.expression()) { + tmpExpressions.add(typedVisit(expressionCtx)); + } + List<NamedExpression> groupByExpressions = tmpExpressions.stream().map(expression -> { + if (expression instanceof NamedExpression) { + return (NamedExpression) expression; + } else { + return new UnboundAlias(expression); + } + }).collect(Collectors.toList()); + List<Expression> aggExpressions = new ArrayList<>(); + for (Expression expression : expressions) { + if (expression instanceof FunctionCall) { + aggExpressions.add(expression); + } + } + return new LogicalUnaryPlan(new LogicalAggregation(groupByExpressions, aggExpressions), aggClause); + } + + /** + * Generate sortItems. + * + * @param ctx SortItemContext + * @return SortItems + */ + public SortItems genSortItems(SortItemContext ctx) { + boolean orderDirection = true; + if (ctx.DESC() != null) { + orderDirection = false; Review Comment: done ########## fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java: ########## @@ -278,6 +317,70 @@ last, plan(join.relationPrimary()) return last; } + private LogicalPlan withAggClause(List<Expression> expressions, + GroupByItemContext ctx, LogicalPlan aggClause) { + List<Expression> tmpExpressions = new ArrayList<>(); + for (ExpressionContext expressionCtx : ctx.expression()) { + tmpExpressions.add(typedVisit(expressionCtx)); + } + List<NamedExpression> groupByExpressions = tmpExpressions.stream().map(expression -> { + if (expression instanceof NamedExpression) { + return (NamedExpression) expression; + } else { + return new UnboundAlias(expression); + } + }).collect(Collectors.toList()); + List<Expression> aggExpressions = new ArrayList<>(); + for (Expression expression : expressions) { + if (expression instanceof FunctionCall) { Review Comment: done -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org