(
&mut self,
object_type: ObjectType,
)
| 6467 | } |
| 6468 | |
| 6469 | fn parse_alter_views( |
| 6470 | &mut self, |
| 6471 | object_type: ObjectType, |
| 6472 | ) -> Result<Statement<Raw>, ParserStatementError> { |
| 6473 | let if_exists = self.parse_if_exists().map_no_statement_parser_err()?; |
| 6474 | let name = self.parse_item_name().map_no_statement_parser_err()?; |
| 6475 | let keywords: &[_] = match object_type { |
| 6476 | ObjectType::Table => &[SET, RENAME, OWNER, RESET, ADD], |
| 6477 | ObjectType::MaterializedView => &[SET, RENAME, OWNER, RESET, APPLY], |
| 6478 | ObjectType::View => &[SET, RENAME, OWNER, RESET], |
| 6479 | ObjectType::Source |
| 6480 | | ObjectType::Sink |
| 6481 | | ObjectType::Index |
| 6482 | | ObjectType::Type |
| 6483 | | ObjectType::Role |
| 6484 | | ObjectType::Cluster |
| 6485 | | ObjectType::ClusterReplica |
| 6486 | | ObjectType::Secret |
| 6487 | | ObjectType::Connection |
| 6488 | | ObjectType::Database |
| 6489 | | ObjectType::Schema |
| 6490 | | ObjectType::Func |
| 6491 | | ObjectType::Subsource |
| 6492 | | ObjectType::NetworkPolicy => { |
| 6493 | unreachable!("parse_alter_views called with unsupported object type: {object_type}") |
| 6494 | } |
| 6495 | }; |
| 6496 | |
| 6497 | let action = self |
| 6498 | .expect_one_of_keywords(keywords) |
| 6499 | .map_no_statement_parser_err()?; |
| 6500 | match action { |
| 6501 | RENAME => { |
| 6502 | self.expect_keyword(TO).map_no_statement_parser_err()?; |
| 6503 | let to_item_name = self |
| 6504 | .parse_identifier() |
| 6505 | .map_parser_err(StatementKind::AlterObjectRename)?; |
| 6506 | Ok(Statement::AlterObjectRename(AlterObjectRenameStatement { |
| 6507 | object_type, |
| 6508 | if_exists, |
| 6509 | name: UnresolvedObjectName::Item(name), |
| 6510 | to_item_name, |
| 6511 | })) |
| 6512 | } |
| 6513 | SET => { |
| 6514 | if self.parse_keyword(CLUSTER) { |
| 6515 | self.parse_alter_set_cluster(if_exists, name, object_type) |
| 6516 | } else { |
| 6517 | self.expect_token(&Token::LParen) |
| 6518 | .map_no_statement_parser_err()?; |
| 6519 | self.expect_keywords(&[RETAIN, HISTORY]) |
| 6520 | .map_parser_err(StatementKind::AlterRetainHistory)?; |
| 6521 | let history = self |
| 6522 | .parse_retain_history() |
| 6523 | .map_parser_err(StatementKind::AlterRetainHistory)?; |
| 6524 | self.expect_token(&Token::RParen) |
| 6525 | .map_parser_err(StatementKind::AlterCluster)?; |
| 6526 | Ok(Statement::AlterRetainHistory(AlterRetainHistoryStatement { |
no test coverage detected