(&mut self)
| 6269 | } |
| 6270 | |
| 6271 | fn parse_alter_connection(&mut self) -> Result<Statement<Raw>, ParserStatementError> { |
| 6272 | let if_exists = self.parse_if_exists().map_no_statement_parser_err()?; |
| 6273 | let name = self.parse_item_name().map_no_statement_parser_err()?; |
| 6274 | |
| 6275 | Ok( |
| 6276 | match self |
| 6277 | .expect_one_of_keywords(&[RENAME, OWNER, ROTATE, SET, RESET, DROP]) |
| 6278 | .map_no_statement_parser_err()? |
| 6279 | { |
| 6280 | RENAME => { |
| 6281 | self.expect_keyword(TO) |
| 6282 | .map_parser_err(StatementKind::AlterObjectRename)?; |
| 6283 | let to_item_name = self |
| 6284 | .parse_identifier() |
| 6285 | .map_parser_err(StatementKind::AlterObjectRename)?; |
| 6286 | |
| 6287 | Statement::AlterObjectRename(AlterObjectRenameStatement { |
| 6288 | object_type: ObjectType::Connection, |
| 6289 | if_exists, |
| 6290 | name: UnresolvedObjectName::Item(name), |
| 6291 | to_item_name, |
| 6292 | }) |
| 6293 | } |
| 6294 | OWNER => { |
| 6295 | self.expect_keyword(TO) |
| 6296 | .map_parser_err(StatementKind::AlterOwner)?; |
| 6297 | let new_owner = self |
| 6298 | .parse_identifier() |
| 6299 | .map_parser_err(StatementKind::AlterOwner)?; |
| 6300 | |
| 6301 | Statement::AlterOwner(AlterOwnerStatement { |
| 6302 | object_type: ObjectType::Connection, |
| 6303 | if_exists, |
| 6304 | name: UnresolvedObjectName::Item(name), |
| 6305 | new_owner, |
| 6306 | }) |
| 6307 | } |
| 6308 | _ => { |
| 6309 | self.prev_token(); |
| 6310 | let actions = self |
| 6311 | .parse_comma_separated(Parser::parse_alter_connection_action) |
| 6312 | .map_parser_err(StatementKind::AlterConnection)?; |
| 6313 | |
| 6314 | let with_options = if self.parse_keyword(WITH) { |
| 6315 | self.expect_token(&Token::LParen) |
| 6316 | .map_parser_err(StatementKind::AlterConnection)?; |
| 6317 | let options = self |
| 6318 | .parse_comma_separated(Parser::parse_alter_connection_option) |
| 6319 | .map_parser_err(StatementKind::AlterConnection)?; |
| 6320 | self.expect_token(&Token::RParen) |
| 6321 | .map_parser_err(StatementKind::AlterConnection)?; |
| 6322 | options |
| 6323 | } else { |
| 6324 | vec![] |
| 6325 | }; |
| 6326 | |
| 6327 | Statement::AlterConnection(AlterConnectionStatement { |
| 6328 | name, |
no test coverage detected