@@ -222,7 +222,8 @@ pub enum Expr {
222222 index_expr : Box < Expr > ,
223223 } ,
224224 /// Nested expression e.g. `(foo > bar)` or `(1)`
225- Nested ( Box < Expr > ) ,
225+ /// Snowflake allows multiple comma-separated expressions here
226+ Nested ( Vec < Expr > ) ,
226227 /// A literal value, such as string, number, date or NULL
227228 Value ( Value ) ,
228229 /// A constant of form `<data_type> 'value'`.
@@ -339,7 +340,15 @@ impl fmt::Display for Expr {
339340 Expr :: Extract { field, expr } => write ! ( f, "EXTRACT({} FROM {})" , field, expr) ,
340341 Expr :: Collate { expr, collation } => write ! ( f, "{} COLLATE {}" , expr, collation) ,
341342 Expr :: Index { expr, index_expr } => write ! ( f, "{}[{}]" , expr, index_expr) ,
342- Expr :: Nested ( ast) => write ! ( f, "({})" , ast) ,
343+ Expr :: Nested ( exprs) => {
344+ write ! ( f, "(" ) ?;
345+ let mut delim = "" ;
346+ for expr in exprs {
347+ write ! ( f, "{}{}" , delim, expr) ?;
348+ delim = ", " ;
349+ }
350+ write ! ( f, ")" )
351+ }
343352 Expr :: Value ( v) => write ! ( f, "{}" , v) ,
344353 Expr :: TypedString { data_type, value } => {
345354 write ! ( f, "{}" , data_type) ?;
0 commit comments