@@ -6662,8 +6662,16 @@ fn parse_joins_on() {
6662
6662
only( & verified_only_select( "SELECT * FROM t1 JOIN t2 ON c1 = c2" ) . from) . joins,
6663
6663
vec![ join_with_constraint( "t2" , None , false , JoinOperator :: Join ) ]
6664
6664
) ;
6665
+ assert_eq ! (
6666
+ only( & verified_only_select( "SELECT * FROM t1 INNER JOIN t2 ON c1 = c2" ) . from) . joins,
6667
+ vec![ join_with_constraint( "t2" , None , false , JoinOperator :: Inner ) ]
6668
+ ) ;
6665
6669
assert_eq ! (
6666
6670
only( & verified_only_select( "SELECT * FROM t1 LEFT JOIN t2 ON c1 = c2" ) . from) . joins,
6671
+ vec![ join_with_constraint( "t2" , None , false , JoinOperator :: Left ) ]
6672
+ ) ;
6673
+ assert_eq ! (
6674
+ only( & verified_only_select( "SELECT * FROM t1 LEFT OUTER JOIN t2 ON c1 = c2" ) . from) . joins,
6667
6675
vec![ join_with_constraint(
6668
6676
"t2" ,
6669
6677
None ,
@@ -6673,6 +6681,10 @@ fn parse_joins_on() {
6673
6681
) ;
6674
6682
assert_eq ! (
6675
6683
only( & verified_only_select( "SELECT * FROM t1 RIGHT JOIN t2 ON c1 = c2" ) . from) . joins,
6684
+ vec![ join_with_constraint( "t2" , None , false , JoinOperator :: Right ) ]
6685
+ ) ;
6686
+ assert_eq ! (
6687
+ only( & verified_only_select( "SELECT * FROM t1 RIGHT OUTER JOIN t2 ON c1 = c2" ) . from) . joins,
6676
6688
vec![ join_with_constraint(
6677
6689
"t2" ,
6678
6690
None ,
@@ -6795,10 +6807,18 @@ fn parse_joins_using() {
6795
6807
) ;
6796
6808
assert_eq ! (
6797
6809
only( & verified_only_select( "SELECT * FROM t1 LEFT JOIN t2 USING(c1)" ) . from) . joins,
6810
+ vec![ join_with_constraint( "t2" , None , JoinOperator :: Left ) ]
6811
+ ) ;
6812
+ assert_eq ! (
6813
+ only( & verified_only_select( "SELECT * FROM t1 LEFT OUTER JOIN t2 USING(c1)" ) . from) . joins,
6798
6814
vec![ join_with_constraint( "t2" , None , JoinOperator :: LeftOuter ) ]
6799
6815
) ;
6800
6816
assert_eq ! (
6801
6817
only( & verified_only_select( "SELECT * FROM t1 RIGHT JOIN t2 USING(c1)" ) . from) . joins,
6818
+ vec![ join_with_constraint( "t2" , None , JoinOperator :: Right ) ]
6819
+ ) ;
6820
+ assert_eq ! (
6821
+ only( & verified_only_select( "SELECT * FROM t1 RIGHT OUTER JOIN t2 USING(c1)" ) . from) . joins,
6802
6822
vec![ join_with_constraint( "t2" , None , JoinOperator :: RightOuter ) ]
6803
6823
) ;
6804
6824
assert_eq ! (
@@ -6858,20 +6878,34 @@ fn parse_natural_join() {
6858
6878
only( & verified_only_select( "SELECT * FROM t1 NATURAL JOIN t2" ) . from) . joins,
6859
6879
vec![ natural_join( JoinOperator :: Join , None ) ]
6860
6880
) ;
6881
+
6861
6882
// inner join explicitly
6862
6883
assert_eq ! (
6863
6884
only( & verified_only_select( "SELECT * FROM t1 NATURAL INNER JOIN t2" ) . from) . joins,
6864
6885
vec![ natural_join( JoinOperator :: Inner , None ) ]
6865
6886
) ;
6887
+
6866
6888
// left join explicitly
6867
6889
assert_eq ! (
6868
6890
only( & verified_only_select( "SELECT * FROM t1 NATURAL LEFT JOIN t2" ) . from) . joins,
6891
+ vec![ natural_join( JoinOperator :: Left , None ) ]
6892
+ ) ;
6893
+
6894
+ // left outer join explicitly
6895
+ assert_eq ! (
6896
+ only( & verified_only_select( "SELECT * FROM t1 NATURAL LEFT OUTER JOIN t2" ) . from) . joins,
6869
6897
vec![ natural_join( JoinOperator :: LeftOuter , None ) ]
6870
6898
) ;
6871
6899
6872
6900
// right join explicitly
6873
6901
assert_eq ! (
6874
6902
only( & verified_only_select( "SELECT * FROM t1 NATURAL RIGHT JOIN t2" ) . from) . joins,
6903
+ vec![ natural_join( JoinOperator :: Right , None ) ]
6904
+ ) ;
6905
+
6906
+ // right outer join explicitly
6907
+ assert_eq ! (
6908
+ only( & verified_only_select( "SELECT * FROM t1 NATURAL RIGHT OUTER JOIN t2" ) . from) . joins,
6875
6909
vec![ natural_join( JoinOperator :: RightOuter , None ) ]
6876
6910
) ;
6877
6911
@@ -6951,22 +6985,12 @@ fn parse_join_nesting() {
6951
6985
6952
6986
#[ test]
6953
6987
fn parse_join_syntax_variants ( ) {
6954
- one_statement_parses_to (
6955
- "SELECT c1 FROM t1 JOIN t2 USING(c1)" ,
6956
- "SELECT c1 FROM t1 JOIN t2 USING(c1)" ,
6957
- ) ;
6958
- one_statement_parses_to (
6959
- "SELECT c1 FROM t1 INNER JOIN t2 USING(c1)" ,
6960
- "SELECT c1 FROM t1 INNER JOIN t2 USING(c1)" ,
6961
- ) ;
6962
- one_statement_parses_to (
6963
- "SELECT c1 FROM t1 LEFT OUTER JOIN t2 USING(c1)" ,
6964
- "SELECT c1 FROM t1 LEFT JOIN t2 USING(c1)" ,
6965
- ) ;
6966
- one_statement_parses_to (
6967
- "SELECT c1 FROM t1 RIGHT OUTER JOIN t2 USING(c1)" ,
6968
- "SELECT c1 FROM t1 RIGHT JOIN t2 USING(c1)" ,
6969
- ) ;
6988
+ verified_stmt ( "SELECT c1 FROM t1 JOIN t2 USING(c1)" ) ;
6989
+ verified_stmt ( "SELECT c1 FROM t1 INNER JOIN t2 USING(c1)" ) ;
6990
+ verified_stmt ( "SELECT c1 FROM t1 LEFT JOIN t2 USING(c1)" ) ;
6991
+ verified_stmt ( "SELECT c1 FROM t1 LEFT OUTER JOIN t2 USING(c1)" ) ;
6992
+ verified_stmt ( "SELECT c1 FROM t1 RIGHT JOIN t2 USING(c1)" ) ;
6993
+ verified_stmt ( "SELECT c1 FROM t1 RIGHT OUTER JOIN t2 USING(c1)" ) ;
6970
6994
one_statement_parses_to (
6971
6995
"SELECT c1 FROM t1 FULL OUTER JOIN t2 USING(c1)" ,
6972
6996
"SELECT c1 FROM t1 FULL JOIN t2 USING(c1)" ,
@@ -8028,7 +8052,7 @@ fn lateral_derived() {
8028
8052
let join = & from. joins [ 0 ] ;
8029
8053
assert_eq ! (
8030
8054
join. join_operator,
8031
- JoinOperator :: LeftOuter ( JoinConstraint :: On ( Expr :: Value ( test_utils:: number( "1" ) ) ) )
8055
+ JoinOperator :: Left ( JoinConstraint :: On ( Expr :: Value ( test_utils:: number( "1" ) ) ) )
8032
8056
) ;
8033
8057
if let TableFactor :: Derived {
8034
8058
lateral,
@@ -8096,7 +8120,7 @@ fn lateral_function() {
8096
8120
alias: None ,
8097
8121
} ,
8098
8122
global: false ,
8099
- join_operator: JoinOperator :: LeftOuter ( JoinConstraint :: None ) ,
8123
+ join_operator: JoinOperator :: Left ( JoinConstraint :: None ) ,
8100
8124
} ] ,
8101
8125
} ] ,
8102
8126
lateral_views : vec ! [ ] ,
0 commit comments