From 0724ef13a437ee13e936b58b6ed5b63e9ec77472 Mon Sep 17 00:00:00 2001 From: Alex Qyoun-ae <4062971+MazterQyou@users.noreply.github.com> Date: Tue, 27 Sep 2022 17:03:58 +0400 Subject: [PATCH] Box `Query` in `Cte` (#572) --- src/ast/query.rs | 2 +- src/parser.rs | 4 ++-- tests/sqlparser_common.rs | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ast/query.rs b/src/ast/query.rs index bc5af9e5f..011d4658b 100644 --- a/src/ast/query.rs +++ b/src/ast/query.rs @@ -271,7 +271,7 @@ impl fmt::Display for With { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] pub struct Cte { pub alias: TableAlias, - pub query: Query, + pub query: Box, pub from: Option, } diff --git a/src/parser.rs b/src/parser.rs index 41b2f7b2a..280483c13 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -3550,7 +3550,7 @@ impl<'a> Parser<'a> { let mut cte = if self.parse_keyword(Keyword::AS) { self.expect_token(&Token::LParen)?; - let query = self.parse_query()?; + let query = Box::new(self.parse_query()?); self.expect_token(&Token::RParen)?; let alias = TableAlias { name, @@ -3565,7 +3565,7 @@ impl<'a> Parser<'a> { let columns = self.parse_parenthesized_column_list(Optional)?; self.expect_keyword(Keyword::AS)?; self.expect_token(&Token::LParen)?; - let query = self.parse_query()?; + let query = Box::new(self.parse_query()?); self.expect_token(&Token::RParen)?; let alias = TableAlias { name, columns }; Cte { diff --git a/tests/sqlparser_common.rs b/tests/sqlparser_common.rs index 9cdd492e6..5ac093a89 100644 --- a/tests/sqlparser_common.rs +++ b/tests/sqlparser_common.rs @@ -3861,7 +3861,7 @@ fn parse_recursive_cte() { quote_style: None, }], }, - query: cte_query, + query: Box::new(cte_query), from: None, }; assert_eq!(with.cte_tables.first().unwrap(), &expected);