File tree Expand file tree Collapse file tree 3 files changed +11
-4
lines changed Expand file tree Collapse file tree 3 files changed +11
-4
lines changed Original file line number Diff line number Diff line change @@ -748,7 +748,7 @@ pub enum Expr {
748
748
/// `[ NOT ] IN (SELECT ...)`
749
749
InSubquery {
750
750
expr : Box < Expr > ,
751
- subquery : Box < SetExpr > ,
751
+ subquery : Box < Query > ,
752
752
negated : bool ,
753
753
} ,
754
754
/// `[ NOT ] IN UNNEST(array_expression)`
Original file line number Diff line number Diff line change @@ -3817,7 +3817,7 @@ impl<'a> Parser<'a> {
3817
3817
});
3818
3818
}
3819
3819
self.expect_token(&Token::LParen)?;
3820
- let in_op = match self.maybe_parse(|p| p.parse_query_body(p.dialect.prec_unknown() ))? {
3820
+ let in_op = match self.maybe_parse(|p| p.parse_query( ))? {
3821
3821
Some(subquery) => Expr::InSubquery {
3822
3822
expr: Box::new(expr),
3823
3823
subquery,
Original file line number Diff line number Diff line change @@ -2225,7 +2225,7 @@ fn parse_in_subquery() {
2225
2225
assert_eq!(
2226
2226
Expr::InSubquery {
2227
2227
expr: Box::new(Expr::Identifier(Ident::new("segment"))),
2228
- subquery: verified_query("SELECT segm FROM bar").body ,
2228
+ subquery: Box::new( verified_query("SELECT segm FROM bar")) ,
2229
2229
negated: false,
2230
2230
},
2231
2231
select.selection.unwrap()
@@ -2239,7 +2239,9 @@ fn parse_in_union() {
2239
2239
assert_eq!(
2240
2240
Expr::InSubquery {
2241
2241
expr: Box::new(Expr::Identifier(Ident::new("segment"))),
2242
- subquery: verified_query("(SELECT segm FROM bar) UNION (SELECT segm FROM bar2)").body,
2242
+ subquery: Box::new(verified_query(
2243
+ "(SELECT segm FROM bar) UNION (SELECT segm FROM bar2)"
2244
+ )),
2243
2245
negated: false,
2244
2246
},
2245
2247
select.selection.unwrap()
@@ -15303,6 +15305,11 @@ fn parse_return() {
15303
15305
let _ = all_dialects().verified_stmt("RETURN 1");
15304
15306
}
15305
15307
15308
+ #[test]
15309
+ fn parse_subquery_limit() {
15310
+ let _ = all_dialects().verified_stmt("SELECT t1_id, t1_name FROM t1 WHERE t1_id IN (SELECT t2_id FROM t2 WHERE t1_name = t2_name LIMIT 10)");
15311
+ }
15312
+
15306
15313
#[test]
15307
15314
fn test_open() {
15308
15315
let open_cursor = "OPEN Employee_Cursor";
You can’t perform that action at this time.
0 commit comments