@@ -1806,11 +1806,19 @@ fn parse_join_nesting() {
1806
1806
vec![ join( nest!( nest!( nest!( table( "b" ) , table( "c" ) ) ) ) ) ]
1807
1807
) ;
1808
1808
1809
- let res = parse_sql_statements ( "SELECT * FROM (a NATURAL JOIN (b))" ) ;
1810
- assert_eq ! (
1811
- ParserError :: ParserError ( "Expected joined table, found: )" . to_string( ) ) ,
1812
- res. unwrap_err( )
1813
- ) ;
1809
+ // Parenthesized table names are non-standard, but supported in Snowflake SQL
1810
+ let sql = "SELECT * FROM (a NATURAL JOIN (b))" ;
1811
+ let select = verified_only_select ( sql) ;
1812
+ let from = only ( select. from ) ;
1813
+
1814
+ assert_eq ! ( from. relation, nest!( table( "a" ) , nest!( table( "b" ) ) ) ) ;
1815
+
1816
+ // Double parentheses around table names are non-standard, but supported in Snowflake SQL
1817
+ let sql = "SELECT * FROM (a NATURAL JOIN ((b)))" ;
1818
+ let select = verified_only_select ( sql) ;
1819
+ let from = only ( select. from ) ;
1820
+
1821
+ assert_eq ! ( from. relation, nest!( table( "a" ) , nest!( nest!( table( "b" ) ) ) ) ) ;
1814
1822
}
1815
1823
1816
1824
#[ test]
@@ -1953,10 +1961,24 @@ fn parse_derived_tables() {
1953
1961
} ) )
1954
1962
) ;
1955
1963
1956
- let res = parse_sql_statements ( "SELECT * FROM ((SELECT 1) AS t)" ) ;
1964
+ // Nesting a subquery in parentheses is non-standard, but supported in Snowflake SQL
1965
+ let sql = "SELECT * FROM ((SELECT 1) AS t)" ;
1966
+ let select = verified_only_select ( sql) ;
1967
+ let from = only ( select. from ) ;
1968
+
1957
1969
assert_eq ! (
1958
- ParserError :: ParserError ( "Expected joined table, found: )" . to_string( ) ) ,
1959
- res. unwrap_err( )
1970
+ from. relation,
1971
+ TableFactor :: NestedJoin ( Box :: new( TableWithJoins {
1972
+ relation: TableFactor :: Derived {
1973
+ lateral: false ,
1974
+ subquery: Box :: new( verified_query( "SELECT 1" ) ) ,
1975
+ alias: Some ( TableAlias {
1976
+ name: "t" . into( ) ,
1977
+ columns: vec![ ] ,
1978
+ } )
1979
+ } ,
1980
+ joins: Vec :: new( ) ,
1981
+ } ) )
1960
1982
) ;
1961
1983
}
1962
1984
0 commit comments