MCPcopy Create free account
hub / github.com/MaterializeInc/materialize / parse_alter_cluster

Method parse_alter_cluster

src/sql-parser/src/parser.rs:5741–5838  ·  view source on GitHub ↗
(
        &mut self,
        object_type: ObjectType,
    )

Source from the content-addressed store, hash-verified

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)?;

Callers 1

parse_alter_objectMethod · 0.80

Calls 11

parse_if_existsMethod · 0.80
parse_identifierMethod · 0.80
map_parser_errMethod · 0.80
expect_keywordMethod · 0.80
expect_tokenMethod · 0.80
parse_comma_separatedMethod · 0.80
parse_keywordMethod · 0.80
ClusterClass · 0.50
AlterClusterClass · 0.50

Tested by

no test coverage detected