Parse DROP INDEX statement
(tokens: &[Token])
| 4917 | |
| 4918 | /// Parse DROP INDEX statement |
| 4919 | fn drop_index_statement(tokens: &[Token]) -> IResult<&[Token], DropIndexStatement> { |
| 4920 | let (tokens, _) = expect_token(Token::Drop)(tokens)?; |
| 4921 | let (tokens, _) = expect_identifier("INDEX")(tokens)?; |
| 4922 | |
| 4923 | // Parse optional IF EXISTS |
| 4924 | let (tokens, if_exists) = opt(preceded( |
| 4925 | expect_token(Token::If), |
| 4926 | expect_token(Token::Exists), |
| 4927 | ))(tokens)?; |
| 4928 | |
| 4929 | // Parse index name - use lenient parser to accept various tokens for better error messages |
| 4930 | let (tokens, name) = parse_index_name(tokens)?; |
| 4931 | |
| 4932 | Ok(( |
| 4933 | tokens, |
| 4934 | DropIndexStatement { |
| 4935 | name, |
| 4936 | if_exists: if_exists.is_some(), |
| 4937 | location: Location::default(), |
| 4938 | }, |
| 4939 | )) |
| 4940 | } |
| 4941 | |
| 4942 | /// Parse ALTER INDEX statement |
| 4943 | fn alter_index_statement(tokens: &[Token]) -> IResult<&[Token], AlterIndexStatement> { |
nothing calls this directly
no test coverage detected