diff --git a/nom-sql/src/common.rs b/nom-sql/src/common.rs index b89069fdcd..0289911410 100644 --- a/nom-sql/src/common.rs +++ b/nom-sql/src/common.rs @@ -417,13 +417,8 @@ fn group_concat_fx_helper( fn group_concat_fx( dialect: Dialect, -) -> impl Fn(LocatedSpan<&[u8]>) -> NomSqlResult<&[u8], (Column, Option)> { - move |i| { - pair( - column_identifier_no_alias(dialect), - opt(group_concat_fx_helper(dialect)), - )(i) - } +) -> impl Fn(LocatedSpan<&[u8]>) -> NomSqlResult<&[u8], (Expr, Option)> { + move |i| pair(expression(dialect), opt(group_concat_fx_helper(dialect)))(i) } fn agg_fx_args( @@ -576,8 +571,8 @@ pub fn function_expr( ), ), ), - |(col, separator)| FunctionExpr::GroupConcat { - expr: Box::new(Expr::Column(col)), + |(expr, separator)| FunctionExpr::GroupConcat { + expr: Box::new(expr), separator, }, ), @@ -896,9 +891,9 @@ mod tests { assert_eq!(res.unwrap().1, expected); assert_eq!( - test_parse!(function_expr(Dialect::MySQL), b"group_concat(a)"), + test_parse!(function_expr(Dialect::MySQL), b"group_concat('a')"), FunctionExpr::GroupConcat { - expr: Box::new(Expr::Column("a".into())), + expr: Box::new(Expr::Literal("a".into())), separator: None } );