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

Method parse_alter_index

src/sql-parser/src/parser.rs:6020–6089  ·  view source on GitHub ↗
(&mut self)

Source from the content-addressed store, hash-verified

6018 }
6019
6020 fn parse_alter_index(&mut self) -> Result<Statement<Raw>, ParserStatementError> {
6021 let if_exists = self.parse_if_exists().map_no_statement_parser_err()?;
6022 let name = self.parse_item_name().map_no_statement_parser_err()?;
6023
6024 Ok(
6025 match self
6026 .expect_one_of_keywords(&[RESET, SET, RENAME, OWNER])
6027 .map_no_statement_parser_err()?
6028 {
6029 RESET => {
6030 self.expect_token(&Token::LParen)
6031 .map_parser_err(StatementKind::AlterIndex)?;
6032 let reset_options = self
6033 .parse_comma_separated(Parser::parse_index_option_name)
6034 .map_parser_err(StatementKind::AlterIndex)?;
6035 self.expect_token(&Token::RParen)
6036 .map_parser_err(StatementKind::AlterIndex)?;
6037
6038 Statement::AlterIndex(AlterIndexStatement {
6039 index_name: name,
6040 if_exists,
6041 action: AlterIndexAction::ResetOptions(reset_options),
6042 })
6043 }
6044 SET => {
6045 self.expect_token(&Token::LParen)
6046 .map_parser_err(StatementKind::AlterIndex)?;
6047 let set_options = self
6048 .parse_comma_separated(Parser::parse_index_option)
6049 .map_parser_err(StatementKind::AlterIndex)?;
6050 self.expect_token(&Token::RParen)
6051 .map_parser_err(StatementKind::AlterIndex)?;
6052 Statement::AlterIndex(AlterIndexStatement {
6053 index_name: name,
6054 if_exists,
6055 action: AlterIndexAction::SetOptions(set_options),
6056 })
6057 }
6058 RENAME => {
6059 self.expect_keyword(TO)
6060 .map_parser_err(StatementKind::AlterObjectRename)?;
6061 let to_item_name = self
6062 .parse_identifier()
6063 .map_parser_err(StatementKind::AlterObjectRename)?;
6064
6065 Statement::AlterObjectRename(AlterObjectRenameStatement {
6066 object_type: ObjectType::Index,
6067 if_exists,
6068 name: UnresolvedObjectName::Item(name),
6069 to_item_name,
6070 })
6071 }
6072 OWNER => {
6073 self.expect_keyword(TO)
6074 .map_parser_err(StatementKind::AlterOwner)?;
6075 let new_owner = self
6076 .parse_identifier()
6077 .map_parser_err(StatementKind::AlterOwner)?;

Callers 1

parse_alter_objectMethod · 0.80

Calls 11

AlterIndexClass · 0.85
parse_if_existsMethod · 0.80
parse_item_nameMethod · 0.80
map_parser_errMethod · 0.80
expect_tokenMethod · 0.80
parse_comma_separatedMethod · 0.80
expect_keywordMethod · 0.80
parse_identifierMethod · 0.80
ItemEnum · 0.50

Tested by

no test coverage detected