diff --git a/core/translate/planner.rs b/core/translate/planner.rs index 02bf9cdcd..c2c5aa115 100644 --- a/core/translate/planner.rs +++ b/core/translate/planner.rs @@ -20,6 +20,9 @@ impl OperatorIdCounter { } fn resolve_aggregates(expr: &ast::Expr, aggs: &mut Vec) { + if aggs.iter().any(|a| a.original_expr == *expr) { + return; + } match expr { ast::Expr::FunctionCall { name, args, .. } => { let args_count = if let Some(args) = &args { @@ -433,6 +436,9 @@ pub fn prepare_select_plan<'a>(schema: &Schema, select: ast::Select) -> Result