From e3031c25948b250498ec276e945cfce8a999e21d Mon Sep 17 00:00:00 2001 From: Pekka Enberg Date: Thu, 4 Jul 2024 11:37:34 +0300 Subject: [PATCH] Simplify translate_select() --- core/translate.rs | 52 ++++++++++++++++++----------------------------- 1 file changed, 20 insertions(+), 32 deletions(-) diff --git a/core/translate.rs b/core/translate.rs index e6468ac2d..a3d795c8f 100644 --- a/core/translate.rs +++ b/core/translate.rs @@ -14,6 +14,7 @@ struct Select<'a> { column_info: Vec, from: Option<&'a Table>, limit: Option, + exist_aggregation: bool, } enum AggregationFunc { @@ -57,7 +58,7 @@ pub fn translate( match stmt { ast::Stmt::Select(select) => { let select = build_select(schema, select)?; - translate_select(schema, select) + translate_select(select) } ast::Stmt::Pragma(name, body) => translate_pragma(&name, body, database_header, pager), _ => todo!(), @@ -84,11 +85,13 @@ fn build_select(schema: &Schema, select: ast::Select) -> Result { .. } => { let column_info = analyze_columns(&columns, None); + let exist_aggregation = column_info.iter().any(|info| info.func.is_some()); Ok(Select { columns, column_info, from: None, limit: select.limit.clone(), + exist_aggregation, }) } _ => todo!(), @@ -109,11 +114,11 @@ fn build_select(schema: &Schema, select: ast::Select) -> Result