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

Method parse_alter_secret

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

Source from the content-addressed store, hash-verified

6089 }
6090
6091 fn parse_alter_secret(&mut self) -> Result<Statement<Raw>, ParserStatementError> {
6092 let if_exists = self.parse_if_exists().map_no_statement_parser_err()?;
6093 let name = self.parse_item_name().map_no_statement_parser_err()?;
6094
6095 Ok(
6096 match self
6097 .expect_one_of_keywords(&[AS, RENAME, OWNER])
6098 .map_no_statement_parser_err()?
6099 {
6100 AS => {
6101 let value = self
6102 .parse_expr()
6103 .map_parser_err(StatementKind::AlterSecret)?;
6104 Statement::AlterSecret(AlterSecretStatement {
6105 name,
6106 if_exists,
6107 value,
6108 })
6109 }
6110 RENAME => {
6111 self.expect_keyword(TO)
6112 .map_parser_err(StatementKind::AlterObjectRename)?;
6113 let to_item_name = self
6114 .parse_identifier()
6115 .map_parser_err(StatementKind::AlterObjectRename)?;
6116
6117 Statement::AlterObjectRename(AlterObjectRenameStatement {
6118 object_type: ObjectType::Secret,
6119 if_exists,
6120 name: UnresolvedObjectName::Item(name),
6121 to_item_name,
6122 })
6123 }
6124 OWNER => {
6125 self.expect_keyword(TO)
6126 .map_parser_err(StatementKind::AlterOwner)?;
6127 let new_owner = self
6128 .parse_identifier()
6129 .map_parser_err(StatementKind::AlterOwner)?;
6130
6131 Statement::AlterOwner(AlterOwnerStatement {
6132 object_type: ObjectType::Secret,
6133 if_exists,
6134 name: UnresolvedObjectName::Item(name),
6135 new_owner,
6136 })
6137 }
6138 _ => unreachable!(),
6139 },
6140 )
6141 }
6142
6143 /// Parse an ALTER SINK statement.
6144 fn parse_alter_sink(&mut self) -> Result<Statement<Raw>, ParserStatementError> {

Callers 1

parse_alter_objectMethod · 0.80

Calls 10

AlterSecretClass · 0.85
parse_if_existsMethod · 0.80
parse_item_nameMethod · 0.80
map_parser_errMethod · 0.80
parse_exprMethod · 0.80
expect_keywordMethod · 0.80
parse_identifierMethod · 0.80
ItemEnum · 0.50

Tested by

no test coverage detected