@@ -18099,11 +18099,14 @@ impl<'a> Parser<'a> {
1809918099 /// Parse a 'BEGIN' statement
1810018100 pub fn parse_begin(&mut self) -> Result<Statement, ParserError> {
1810118101 let modifier = self.parse_transaction_modifier();
18102- let transaction = match self.parse_one_of_keywords(&[Keyword::TRANSACTION, Keyword::WORK]) {
18103- Some(Keyword::TRANSACTION) => Some(BeginTransactionKind::Transaction),
18104- Some(Keyword::WORK) => Some(BeginTransactionKind::Work),
18105- _ => None,
18106- };
18102+ let transaction =
18103+ match self.parse_one_of_keywords(&[Keyword::TRANSACTION, Keyword::WORK, Keyword::TRAN])
18104+ {
18105+ Some(Keyword::TRANSACTION) => Some(BeginTransactionKind::Transaction),
18106+ Some(Keyword::WORK) => Some(BeginTransactionKind::Work),
18107+ Some(Keyword::TRAN) => Some(BeginTransactionKind::Tran),
18108+ _ => None,
18109+ };
1810718110 Ok(Statement::StartTransaction {
1810818111 modes: self.parse_transaction_modes()?,
1810918112 begin: true,
@@ -18237,7 +18240,7 @@ impl<'a> Parser<'a> {
1823718240
1823818241 /// Parse an optional `AND [NO] CHAIN` clause for `COMMIT` and `ROLLBACK` statements
1823918242 pub fn parse_commit_rollback_chain(&mut self) -> Result<bool, ParserError> {
18240- let _ = self.parse_one_of_keywords(&[Keyword::TRANSACTION, Keyword::WORK]);
18243+ let _ = self.parse_one_of_keywords(&[Keyword::TRANSACTION, Keyword::WORK, Keyword::TRAN ]);
1824118244 if self.parse_keyword(Keyword::AND) {
1824218245 let chain = !self.parse_keyword(Keyword::NO);
1824318246 self.expect_keyword_is(Keyword::CHAIN)?;
0 commit comments