@@ -1466,7 +1466,7 @@ fn parse_join_nesting() {
1466
1466
}
1467
1467
1468
1468
macro_rules! nest {
1469
- ( $base: expr, $( $join: expr) , * ) => {
1469
+ ( $base: expr $( , $join: expr) * ) => {
1470
1470
TableFactor :: NestedJoin {
1471
1471
base: Box :: new( $base) ,
1472
1472
joins: vec![ $( join( $join) ) ,* ]
@@ -1487,7 +1487,23 @@ fn parse_join_nesting() {
1487
1487
let sql = "SELECT * FROM (a NATURAL JOIN b) NATURAL JOIN c" ;
1488
1488
let select = verified_only_select ( sql) ;
1489
1489
assert_eq ! ( select. relation. unwrap( ) , nest!( table( "a" ) , table( "b" ) ) , ) ;
1490
- assert_eq ! ( select. joins, vec![ join( table( "c" ) ) ] , )
1490
+ assert_eq ! ( select. joins, vec![ join( table( "c" ) ) ] ) ;
1491
+
1492
+ let sql = "SELECT * FROM (((a NATURAL JOIN b)))" ;
1493
+ let select = verified_only_select ( sql) ;
1494
+ assert_eq ! (
1495
+ select. relation. unwrap( ) ,
1496
+ nest!( nest!( nest!( table( "a" ) , table( "b" ) ) ) )
1497
+ ) ;
1498
+ assert_eq ! ( select. joins, vec![ ] ) ;
1499
+
1500
+ let sql = "SELECT * FROM a NATURAL JOIN (((b NATURAL JOIN c)))" ;
1501
+ let select = verified_only_select ( sql) ;
1502
+ assert_eq ! ( select. relation. unwrap( ) , table( "a" ) ) ;
1503
+ assert_eq ! (
1504
+ select. joins,
1505
+ vec![ join( nest!( nest!( nest!( table( "b" ) , table( "c" ) ) ) ) ) ]
1506
+ ) ;
1491
1507
}
1492
1508
1493
1509
#[ test]
@@ -1586,6 +1602,14 @@ fn parse_derived_tables() {
1586
1602
CROSS JOIN (SELECT y FROM bar) AS b (y)";
1587
1603
let _ = verified_only_select ( sql) ;
1588
1604
//TODO: add assertions
1605
+
1606
+ let sql = "SELECT * FROM (((SELECT 1)))" ;
1607
+ let _ = verified_only_select ( sql) ;
1608
+ // TODO: add assertions
1609
+
1610
+ let sql = "SELECT * FROM t NATURAL JOIN (((SELECT 1)))" ;
1611
+ let _ = verified_only_select ( sql) ;
1612
+ // TODO: add assertions
1589
1613
}
1590
1614
1591
1615
#[ test]
0 commit comments