Support Update Set From statement (#450)

This commit is contained in:
slhmy 2022-04-02 18:34:59 +08:00 committed by GitHub
parent 803fd6c970
commit fd8f2df10d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 92 additions and 0 deletions

View file

@ -3611,6 +3611,11 @@ impl<'a> Parser<'a> {
let table = self.parse_table_and_joins()?;
self.expect_keyword(Keyword::SET)?;
let assignments = self.parse_comma_separated(Parser::parse_assignment)?;
let from = if self.parse_keyword(Keyword::FROM) && dialect_of!(self is PostgreSqlDialect) {
Some(self.parse_table_and_joins()?)
} else {
None
};
let selection = if self.parse_keyword(Keyword::WHERE) {
Some(self.parse_expr()?)
} else {
@ -3619,6 +3624,7 @@ impl<'a> Parser<'a> {
Ok(Statement::Update {
table,
assignments,
from,
selection,
})
}