(&mut self)
| 5634 | } |
| 5635 | |
| 5636 | fn parse_alter_object(&mut self) -> Result<Statement<Raw>, ParserStatementError> { |
| 5637 | let object_type = self.expect_object_type().map_no_statement_parser_err()?; |
| 5638 | |
| 5639 | match object_type { |
| 5640 | ObjectType::Role => self |
| 5641 | .parse_alter_role() |
| 5642 | .map_parser_err(StatementKind::AlterRole), |
| 5643 | ObjectType::Sink => self.parse_alter_sink(), |
| 5644 | ObjectType::Source => self.parse_alter_source(), |
| 5645 | ObjectType::Index => self.parse_alter_index(), |
| 5646 | ObjectType::Secret => self.parse_alter_secret(), |
| 5647 | ObjectType::Connection => self.parse_alter_connection(), |
| 5648 | ObjectType::View | ObjectType::MaterializedView | ObjectType::Table => { |
| 5649 | self.parse_alter_views(object_type) |
| 5650 | } |
| 5651 | ObjectType::Type => { |
| 5652 | let if_exists = self |
| 5653 | .parse_if_exists() |
| 5654 | .map_parser_err(StatementKind::AlterOwner)?; |
| 5655 | let name = UnresolvedObjectName::Item( |
| 5656 | self.parse_item_name() |
| 5657 | .map_parser_err(StatementKind::AlterOwner)?, |
| 5658 | ); |
| 5659 | self.expect_keywords(&[OWNER, TO]) |
| 5660 | .map_parser_err(StatementKind::AlterOwner)?; |
| 5661 | let new_owner = self |
| 5662 | .parse_identifier() |
| 5663 | .map_parser_err(StatementKind::AlterOwner)?; |
| 5664 | Ok(Statement::AlterOwner(AlterOwnerStatement { |
| 5665 | object_type, |
| 5666 | if_exists, |
| 5667 | name, |
| 5668 | new_owner, |
| 5669 | })) |
| 5670 | } |
| 5671 | ObjectType::Cluster => self.parse_alter_cluster(object_type), |
| 5672 | ObjectType::ClusterReplica => { |
| 5673 | let if_exists = self.parse_if_exists().map_no_statement_parser_err()?; |
| 5674 | let name = UnresolvedObjectName::ClusterReplica( |
| 5675 | self.parse_cluster_replica_name() |
| 5676 | .map_no_statement_parser_err()?, |
| 5677 | ); |
| 5678 | let action = self |
| 5679 | .expect_one_of_keywords(&[OWNER, RENAME]) |
| 5680 | .map_no_statement_parser_err()?; |
| 5681 | self.expect_keyword(TO).map_no_statement_parser_err()?; |
| 5682 | match action { |
| 5683 | OWNER => { |
| 5684 | let new_owner = self |
| 5685 | .parse_identifier() |
| 5686 | .map_parser_err(StatementKind::AlterOwner)?; |
| 5687 | Ok(Statement::AlterOwner(AlterOwnerStatement { |
| 5688 | object_type, |
| 5689 | if_exists, |
| 5690 | name, |
| 5691 | new_owner, |
| 5692 | })) |
| 5693 | } |
no test coverage detected