Skip to content

Commit 144c049

Browse files
committed
Simplify dialect parse_create
1 parent 9b7ea9d commit 144c049

File tree

2 files changed

+8
-20
lines changed

2 files changed

+8
-20
lines changed

src/dialect/mssql.rs

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -220,21 +220,14 @@ impl MsSqlDialect {
220220

221221
/// Parse a SQL CREATE statement
222222
fn parse_create(&self, parser: &mut Parser) -> Option<Result<Statement, ParserError>> {
223-
let original_index = parser.index();
224-
225-
if !parser.parse_keyword(Keyword::CREATE) {
226-
parser.set_index(original_index);
227-
return None;
228-
}
229-
230-
let or_alter = parser.parse_keywords(&[Keyword::OR, Keyword::ALTER]);
231-
232-
if parser.parse_keyword(Keyword::TRIGGER) {
233-
return Some(self.parse_create_trigger(parser, or_alter));
234-
}
235-
236-
parser.set_index(original_index);
237-
None
223+
let result = parser.maybe_parse(|p| {
224+
p.expect_keyword(Keyword::CREATE)?;
225+
let or_alter = p.parse_keywords(&[Keyword::OR, Keyword::ALTER]);
226+
p.expect_keyword(Keyword::TRIGGER)?;
227+
self.parse_create_trigger(p, or_alter)
228+
});
229+
230+
result.ok()?.map(Ok)
238231
}
239232

240233
/// Parse `CREATE TRIGGER` for [MsSql]

src/parser/mod.rs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15081,11 +15081,6 @@ impl<'a> Parser<'a> {
1508115081
self.index
1508215082
}
1508315083

15084-
/// Manually change the parser index.
15085-
pub(crate) fn set_index(&mut self, index: usize) {
15086-
self.index = index;
15087-
}
15088-
1508915084
pub fn parse_named_window(&mut self) -> Result<NamedWindowDefinition, ParserError> {
1509015085
let ident = self.parse_identifier()?;
1509115086
self.expect_keyword_is(Keyword::AS)?;

0 commit comments

Comments
 (0)