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

Method parse_alter_connection

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

Source from the content-addressed store, hash-verified

6269 }
6270
6271 fn parse_alter_connection(&mut self) -> Result<Statement<Raw>, ParserStatementError> {
6272 let if_exists = self.parse_if_exists().map_no_statement_parser_err()?;
6273 let name = self.parse_item_name().map_no_statement_parser_err()?;
6274
6275 Ok(
6276 match self
6277 .expect_one_of_keywords(&[RENAME, OWNER, ROTATE, SET, RESET, DROP])
6278 .map_no_statement_parser_err()?
6279 {
6280 RENAME => {
6281 self.expect_keyword(TO)
6282 .map_parser_err(StatementKind::AlterObjectRename)?;
6283 let to_item_name = self
6284 .parse_identifier()
6285 .map_parser_err(StatementKind::AlterObjectRename)?;
6286
6287 Statement::AlterObjectRename(AlterObjectRenameStatement {
6288 object_type: ObjectType::Connection,
6289 if_exists,
6290 name: UnresolvedObjectName::Item(name),
6291 to_item_name,
6292 })
6293 }
6294 OWNER => {
6295 self.expect_keyword(TO)
6296 .map_parser_err(StatementKind::AlterOwner)?;
6297 let new_owner = self
6298 .parse_identifier()
6299 .map_parser_err(StatementKind::AlterOwner)?;
6300
6301 Statement::AlterOwner(AlterOwnerStatement {
6302 object_type: ObjectType::Connection,
6303 if_exists,
6304 name: UnresolvedObjectName::Item(name),
6305 new_owner,
6306 })
6307 }
6308 _ => {
6309 self.prev_token();
6310 let actions = self
6311 .parse_comma_separated(Parser::parse_alter_connection_action)
6312 .map_parser_err(StatementKind::AlterConnection)?;
6313
6314 let with_options = if self.parse_keyword(WITH) {
6315 self.expect_token(&Token::LParen)
6316 .map_parser_err(StatementKind::AlterConnection)?;
6317 let options = self
6318 .parse_comma_separated(Parser::parse_alter_connection_option)
6319 .map_parser_err(StatementKind::AlterConnection)?;
6320 self.expect_token(&Token::RParen)
6321 .map_parser_err(StatementKind::AlterConnection)?;
6322 options
6323 } else {
6324 vec![]
6325 };
6326
6327 Statement::AlterConnection(AlterConnectionStatement {
6328 name,

Callers 1

parse_alter_objectMethod · 0.80

Calls 12

parse_if_existsMethod · 0.80
parse_item_nameMethod · 0.80
map_parser_errMethod · 0.80
expect_keywordMethod · 0.80
parse_identifierMethod · 0.80
prev_tokenMethod · 0.80
parse_comma_separatedMethod · 0.80
parse_keywordMethod · 0.80
expect_tokenMethod · 0.80
ItemEnum · 0.50

Tested by

no test coverage detected