Skip to content

Commit 4f944dd

Browse files
authored
Merge pull request #71 from benesch/infix
Don't panic when NOT is not followed by an expected keyword
2 parents 908082d + 143846d commit 4f944dd

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

src/sqlparser.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -441,7 +441,7 @@ impl Parser {
441441
} else if self.parse_keyword("BETWEEN") {
442442
self.parse_between(expr, negated)
443443
} else {
444-
panic!()
444+
self.expected("IN or BETWEEN after NOT", self.peek_token())
445445
}
446446
}
447447
// Can only happen if `get_precedence` got out of sync with this function

tests/sqlparser_common.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,15 @@ fn parse_not() {
209209
//TODO: add assertions
210210
}
211211

212+
#[test]
213+
fn parse_invalid_infix_not() {
214+
let res = parse_sql_statements("SELECT c FROM t WHERE c NOT (");
215+
assert_eq!(
216+
ParserError::ParserError("Expected IN or BETWEEN after NOT, found: (".to_string()),
217+
res.unwrap_err(),
218+
);
219+
}
220+
212221
#[test]
213222
fn parse_collate() {
214223
let sql = "SELECT name COLLATE \"de_DE\" FROM customer";

0 commit comments

Comments
 (0)