Skip to content

Commit 3864206

Browse files
committed
parse_identifiers breaks on encountering a semicolon fixing parsing for multiple statements in certain cases
1 parent 355a3bf commit 3864206

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

src/parser/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12024,7 +12024,7 @@ impl<'a> Parser<'a> {
1202412024
Token::Word(w) => {
1202512025
idents.push(w.clone().into_ident(self.peek_token_ref().span));
1202612026
}
12027-
Token::EOF | Token::Eq => break,
12027+
Token::EOF | Token::Eq | Token::SemiColon => break,
1202812028
_ => {}
1202912029
}
1203012030
self.advance_token();

tests/sqlparser_postgres.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7914,3 +7914,11 @@ fn parse_create_operator_class() {
79147914
)
79157915
.is_err());
79167916
}
7917+
7918+
#[test]
7919+
fn parse_identifiers_semicolon_handling() {
7920+
let statement = "SHOW search_path; SELECT 1";
7921+
pg_and_generic().statements_parse_to(statement, statement);
7922+
let statement = "SHOW search_path; SHOW ALL; SHOW ALL";
7923+
pg_and_generic().statements_parse_to(statement, statement);
7924+
}

0 commit comments

Comments
 (0)