@@ -18067,11 +18067,14 @@ impl<'a> Parser<'a> {
1806718067 /// Parse a 'BEGIN' statement
1806818068 pub fn parse_begin(&mut self) -> Result<Statement, ParserError> {
1806918069 let modifier = self.parse_transaction_modifier();
18070- let transaction = match self.parse_one_of_keywords(&[Keyword::TRANSACTION, Keyword::WORK]) {
18071- Some(Keyword::TRANSACTION) => Some(BeginTransactionKind::Transaction),
18072- Some(Keyword::WORK) => Some(BeginTransactionKind::Work),
18073- _ => None,
18074- };
18070+ let transaction =
18071+ match self.parse_one_of_keywords(&[Keyword::TRANSACTION, Keyword::WORK, Keyword::TRAN])
18072+ {
18073+ Some(Keyword::TRANSACTION) => Some(BeginTransactionKind::Transaction),
18074+ Some(Keyword::WORK) => Some(BeginTransactionKind::Work),
18075+ Some(Keyword::TRAN) => Some(BeginTransactionKind::Tran),
18076+ _ => None,
18077+ };
1807518078 Ok(Statement::StartTransaction {
1807618079 modes: self.parse_transaction_modes()?,
1807718080 begin: true,
@@ -18205,7 +18208,7 @@ impl<'a> Parser<'a> {
1820518208
1820618209 /// Parse an optional `AND [NO] CHAIN` clause for `COMMIT` and `ROLLBACK` statements
1820718210 pub fn parse_commit_rollback_chain(&mut self) -> Result<bool, ParserError> {
18208- let _ = self.parse_one_of_keywords(&[Keyword::TRANSACTION, Keyword::WORK]);
18211+ let _ = self.parse_one_of_keywords(&[Keyword::TRANSACTION, Keyword::WORK, Keyword::TRAN ]);
1820918212 if self.parse_keyword(Keyword::AND) {
1821018213 let chain = !self.parse_keyword(Keyword::NO);
1821118214 self.expect_keyword_is(Keyword::CHAIN)?;
0 commit comments