File tree 3 files changed +10
-18
lines changed
3 files changed +10
-18
lines changed Original file line number Diff line number Diff line change @@ -163,18 +163,13 @@ impl ToString for SQLSelect {
163
163
/// number of columns in the query matches the number of columns in the query.
164
164
#[ derive( Debug , Clone , PartialEq , Hash ) ]
165
165
pub struct Cte {
166
- pub alias : SQLIdent ,
166
+ pub alias : TableAlias ,
167
167
pub query : SQLQuery ,
168
- pub renamed_columns : Vec < SQLIdent > ,
169
168
}
170
169
171
170
impl ToString for Cte {
172
171
fn to_string ( & self ) -> String {
173
- let mut s = self . alias . clone ( ) ;
174
- if !self . renamed_columns . is_empty ( ) {
175
- s += & format ! ( " ({})" , comma_separated_string( & self . renamed_columns) ) ;
176
- }
177
- s + & format ! ( " AS ({})" , self . query. to_string( ) )
172
+ format ! ( "{} AS ({})" , self . alias. to_string( ) , self . query. to_string( ) )
178
173
}
179
174
}
180
175
Original file line number Diff line number Diff line change @@ -1475,14 +1475,15 @@ impl Parser {
1475
1475
fn parse_cte_list ( & mut self ) -> Result < Vec < Cte > , ParserError > {
1476
1476
let mut cte = vec ! [ ] ;
1477
1477
loop {
1478
- let alias = self . parse_identifier ( ) ?;
1479
- let renamed_columns = self . parse_parenthesized_column_list ( Optional ) ?;
1478
+ let alias = TableAlias {
1479
+ name : self . parse_identifier ( ) ?,
1480
+ columns : self . parse_parenthesized_column_list ( Optional ) ?,
1481
+ } ;
1480
1482
self . expect_keyword ( "AS" ) ?;
1481
1483
self . expect_token ( & Token :: LParen ) ?;
1482
1484
cte. push ( Cte {
1483
1485
alias,
1484
1486
query : self . parse_query ( ) ?,
1485
- renamed_columns,
1486
1487
} ) ;
1487
1488
self . expect_token ( & Token :: RParen ) ?;
1488
1489
if !self . consume_token ( & Token :: Comma ) {
Original file line number Diff line number Diff line change @@ -1791,14 +1791,10 @@ fn parse_ctes() {
1791
1791
fn assert_ctes_in_select ( expected : & [ & str ] , sel : & SQLQuery ) {
1792
1792
let mut i = 0 ;
1793
1793
for exp in expected {
1794
- let Cte {
1795
- query,
1796
- alias,
1797
- renamed_columns,
1798
- } = & sel. ctes [ i] ;
1794
+ let Cte { alias, query } = & sel. ctes [ i] ;
1799
1795
assert_eq ! ( * exp, query. to_string( ) ) ;
1800
- assert_eq ! ( if i == 0 { "a" } else { "b" } , alias) ;
1801
- assert ! ( renamed_columns . is_empty( ) ) ;
1796
+ assert_eq ! ( if i == 0 { "a" } else { "b" } , alias. name ) ;
1797
+ assert ! ( alias . columns . is_empty( ) ) ;
1802
1798
i += 1 ;
1803
1799
}
1804
1800
}
@@ -1841,7 +1837,7 @@ fn parse_cte_renamed_columns() {
1841
1837
let query = all_dialects ( ) . verified_query ( sql) ;
1842
1838
assert_eq ! (
1843
1839
vec![ "col1" , "col2" ] ,
1844
- query. ctes. first( ) . unwrap( ) . renamed_columns
1840
+ query. ctes. first( ) . unwrap( ) . alias . columns
1845
1841
) ;
1846
1842
}
1847
1843
You can’t perform that action at this time.
0 commit comments