From 3619e89e9c79f5fb70b967a7bb8d3d3f909deadf Mon Sep 17 00:00:00 2001 From: Nickolay Ponomarev Date: Thu, 31 Jan 2019 15:10:52 +0300 Subject: [PATCH] Remove Box<> from SQLOrderByExpr It was probably copied from somewhere else when most types were variants in ASTNode, and needed Box<> to prevent recursion in the ASTNode definition. --- src/sqlast/query.rs | 8 +------- src/sqlparser.rs | 2 +- tests/sqlparser_generic.rs | 10 +++++----- 3 files changed, 7 insertions(+), 13 deletions(-) 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), }, ]),