diff --git a/src/sqlast/query.rs b/src/sqlast/query.rs index 93a12a92..385173a1 100644 --- a/src/sqlast/query.rs +++ b/src/sqlast/query.rs @@ -170,16 +170,10 @@ pub enum JoinConstraint { /// SQL ORDER BY expression #[derive(Debug, Clone, PartialEq)] pub struct SQLOrderByExpr { - pub expr: Box, + pub expr: ASTNode, pub asc: Option, } -impl SQLOrderByExpr { - pub fn new(expr: Box, asc: Option) -> Self { - SQLOrderByExpr { expr, asc } - } -} - impl ToString for SQLOrderByExpr { fn to_string(&self) -> String { match self.asc { diff --git a/src/sqlparser.rs b/src/sqlparser.rs index 91928cfb..be57c121 100644 --- a/src/sqlparser.rs +++ b/src/sqlparser.rs @@ -1362,7 +1362,7 @@ impl Parser { None }; - expr_list.push(SQLOrderByExpr::new(Box::new(expr), asc)); + expr_list.push(SQLOrderByExpr { expr, asc }); if let Some(Token::Comma) = self.peek_token() { self.next_token(); diff --git a/tests/sqlparser_generic.rs b/tests/sqlparser_generic.rs index 1d331af3..480b3147 100644 --- a/tests/sqlparser_generic.rs +++ b/tests/sqlparser_generic.rs @@ -242,15 +242,15 @@ fn parse_select_order_by() { assert_eq!( Some(vec![ SQLOrderByExpr { - expr: Box::new(ASTNode::SQLIdentifier("lname".to_string())), + expr: ASTNode::SQLIdentifier("lname".to_string()), asc: Some(true), }, SQLOrderByExpr { - expr: Box::new(ASTNode::SQLIdentifier("fname".to_string())), + expr: ASTNode::SQLIdentifier("fname".to_string()), asc: Some(false), }, SQLOrderByExpr { - expr: Box::new(ASTNode::SQLIdentifier("id".to_string())), + expr: ASTNode::SQLIdentifier("id".to_string()), asc: None, }, ]), @@ -277,11 +277,11 @@ fn parse_select_order_by_limit() { assert_eq!( Some(vec![ SQLOrderByExpr { - expr: Box::new(ASTNode::SQLIdentifier("lname".to_string())), + expr: ASTNode::SQLIdentifier("lname".to_string()), asc: Some(true), }, SQLOrderByExpr { - expr: Box::new(ASTNode::SQLIdentifier("fname".to_string())), + expr: ASTNode::SQLIdentifier("fname".to_string()), asc: Some(false), }, ]),