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

Method parse_alter_role

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

Source from the content-addressed store, hash-verified

6373 }
6374
6375 fn parse_alter_role(&mut self) -> Result<Statement<Raw>, ParserError> {
6376 let name = self.parse_identifier()?;
6377
6378 let option = match self.parse_one_of_keywords(&[SET, RESET, WITH]) {
6379 Some(SET) => {
6380 let name = self.parse_identifier()?;
6381 self.expect_keyword_or_token(TO, &Token::Eq)?;
6382 let value = self.parse_set_variable_to()?;
6383 let var = SetRoleVar::Set { name, value };
6384 AlterRoleOption::Variable(var)
6385 }
6386 Some(RESET) => {
6387 let name = self.parse_identifier()?;
6388 let var = SetRoleVar::Reset { name };
6389 AlterRoleOption::Variable(var)
6390 }
6391 Some(WITH) | None => {
6392 let _ = self.parse_keyword(WITH);
6393 let attrs = self.parse_role_attributes()?;
6394 AlterRoleOption::Attributes(attrs)
6395 }
6396 Some(k) => unreachable!("unmatched keyword: {k}"),
6397 };
6398
6399 Ok(Statement::AlterRole(AlterRoleStatement { name, option }))
6400 }
6401
6402 fn parse_alter_default_privileges(&mut self) -> Result<Statement<Raw>, ParserError> {
6403 self.expect_keyword(FOR)?;

Callers 1

parse_alter_objectMethod · 0.80

Calls 6

parse_identifierMethod · 0.80
parse_one_of_keywordsMethod · 0.80
parse_set_variable_toMethod · 0.80
parse_keywordMethod · 0.80
parse_role_attributesMethod · 0.80

Tested by

no test coverage detected