(
&mut self,
object_type: ObjectType,
)
| 5739 | } |
| 5740 | |
| 5741 | fn parse_alter_cluster( |
| 5742 | &mut self, |
| 5743 | object_type: ObjectType, |
| 5744 | ) -> Result<Statement<Raw>, ParserStatementError> { |
| 5745 | let if_exists = self.parse_if_exists().map_no_statement_parser_err()?; |
| 5746 | let name = self.parse_identifier().map_no_statement_parser_err()?; |
| 5747 | let action = self |
| 5748 | .expect_one_of_keywords(&[OWNER, RENAME, RESET, SET, SWAP]) |
| 5749 | .map_no_statement_parser_err()?; |
| 5750 | match action { |
| 5751 | OWNER => { |
| 5752 | self.expect_keyword(TO) |
| 5753 | .map_parser_err(StatementKind::AlterOwner)?; |
| 5754 | let new_owner = self |
| 5755 | .parse_identifier() |
| 5756 | .map_parser_err(StatementKind::AlterOwner)?; |
| 5757 | let name = UnresolvedObjectName::Cluster(name); |
| 5758 | Ok(Statement::AlterOwner(AlterOwnerStatement { |
| 5759 | object_type, |
| 5760 | if_exists, |
| 5761 | name, |
| 5762 | new_owner, |
| 5763 | })) |
| 5764 | } |
| 5765 | RENAME => { |
| 5766 | self.expect_keyword(TO) |
| 5767 | .map_parser_err(StatementKind::AlterObjectRename)?; |
| 5768 | let to_item_name = self |
| 5769 | .parse_identifier() |
| 5770 | .map_parser_err(StatementKind::AlterObjectRename)?; |
| 5771 | let name = UnresolvedObjectName::Cluster(name); |
| 5772 | Ok(Statement::AlterObjectRename(AlterObjectRenameStatement { |
| 5773 | object_type, |
| 5774 | if_exists, |
| 5775 | name, |
| 5776 | to_item_name, |
| 5777 | })) |
| 5778 | } |
| 5779 | RESET => { |
| 5780 | self.expect_token(&Token::LParen) |
| 5781 | .map_parser_err(StatementKind::AlterCluster)?; |
| 5782 | let names = self |
| 5783 | .parse_comma_separated(Parser::parse_cluster_option_name) |
| 5784 | .map_parser_err(StatementKind::AlterCluster)?; |
| 5785 | self.expect_token(&Token::RParen) |
| 5786 | .map_parser_err(StatementKind::AlterCluster)?; |
| 5787 | Ok(Statement::AlterCluster(AlterClusterStatement { |
| 5788 | if_exists, |
| 5789 | name, |
| 5790 | action: AlterClusterAction::ResetOptions(names), |
| 5791 | })) |
| 5792 | } |
| 5793 | SET => { |
| 5794 | self.expect_token(&Token::LParen) |
| 5795 | .map_parser_err(StatementKind::AlterCluster)?; |
| 5796 | let options = self |
| 5797 | .parse_comma_separated(Parser::parse_cluster_option) |
| 5798 | .map_parser_err(StatementKind::AlterCluster)?; |
no test coverage detected