@@ -1806,11 +1806,26 @@ fn parse_join_nesting() {
18061806 vec![ join( nest!( nest!( nest!( table( "b" ) , table( "c" ) ) ) ) ) ]
18071807 ) ;
18081808
1809- let res = parse_sql_statements ( "SELECT * FROM (a NATURAL JOIN (b))" ) ;
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+
18101814 assert_eq ! (
1811- ParserError :: ParserError ( "Expected joined table, found: )" . to_string ( ) ) ,
1812- res . unwrap_err ( )
1815+ from . relation ,
1816+ nest! ( table ( "a" ) , nest! ( table ( "b" ) ) )
18131817 ) ;
1818+
1819+ // Double parentheses around table names are non-standard, but supported in Snowflake SQL
1820+ let sql = "SELECT * FROM (a NATURAL JOIN ((b)))" ;
1821+ let select = verified_only_select ( sql) ;
1822+ let from = only ( select. from ) ;
1823+
1824+ assert_eq ! (
1825+ from. relation,
1826+ nest!( table( "a" ) , nest!( nest!( table( "b" ) ) ) )
1827+ ) ;
1828+
18141829}
18151830
18161831#[ test]
@@ -1953,11 +1968,27 @@ fn parse_derived_tables() {
19531968 } ) )
19541969 ) ;
19551970
1956- let res = parse_sql_statements ( "SELECT * FROM ((SELECT 1) AS t)" ) ;
1971+ // Nesting a subquery in parentheses is non-standard, but supported in Snowflake SQL
1972+ let sql = "SELECT * FROM ((SELECT 1) AS t)" ;
1973+ let select = verified_only_select ( sql) ;
1974+ let from = only ( select. from ) ;
1975+
19571976 assert_eq ! (
1958- ParserError :: ParserError ( "Expected joined table, found: )" . to_string( ) ) ,
1959- res. unwrap_err( )
1977+ from. relation,
1978+ TableFactor :: NestedJoin ( Box :: new( TableWithJoins {
1979+ relation: TableFactor :: Derived {
1980+ lateral: false ,
1981+ subquery: Box :: new( verified_query( "SELECT 1" ) ) ,
1982+ alias: Some ( TableAlias {
1983+ name: "t" . into( ) ,
1984+ columns: vec![ ] ,
1985+ } )
1986+ } ,
1987+ joins: Vec :: new( ) ,
1988+ } ) )
19601989 ) ;
1990+
1991+
19611992}
19621993
19631994#[ test]
0 commit comments