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