(&mut self)
| 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)?; |
no test coverage detected