mirror of
https://github.com/apache/datafusion-sqlparser-rs.git
synced 2025-08-19 21:50:19 +00:00
support for session transaction and transaction snapshot. (#379)
* add support for snapshot id in set transaction Signed-off-by: poonai <rbalajis25@gmail.com> * add support for default session transaction characteristics Signed-off-by: poonai <rbalajis25@gmail.com> * add additional assertion for parse_set_transaction test Signed-off-by: poonai <rbalajis25@gmail.com> * Fix clippy Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>
This commit is contained in:
parent
a81805ea30
commit
4c121a92a6
5 changed files with 78 additions and 11 deletions
|
@ -2670,9 +2670,26 @@ impl<'a> Parser<'a> {
|
|||
value: values,
|
||||
});
|
||||
}
|
||||
} else if variable.value == "TRANSACTION" && modifier.is_none() {
|
||||
} else if variable.value == "CHARACTERISTICS" {
|
||||
self.expect_keywords(&[Keyword::AS, Keyword::TRANSACTION])?;
|
||||
Ok(Statement::SetTransaction {
|
||||
modes: self.parse_transaction_modes()?,
|
||||
snapshot: None,
|
||||
session: true,
|
||||
})
|
||||
} else if variable.value == "TRANSACTION" && modifier.is_none() {
|
||||
if self.parse_keyword(Keyword::SNAPSHOT) {
|
||||
let snaphot_id = self.parse_value()?;
|
||||
return Ok(Statement::SetTransaction {
|
||||
modes: vec![],
|
||||
snapshot: Some(snaphot_id),
|
||||
session: false,
|
||||
});
|
||||
}
|
||||
Ok(Statement::SetTransaction {
|
||||
modes: self.parse_transaction_modes()?,
|
||||
snapshot: None,
|
||||
session: false,
|
||||
})
|
||||
} else {
|
||||
self.expected("equals sign or TO", self.peek_token())
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue