001package gudusoft.gsqlparser.stmt;
002
003import gudusoft.gsqlparser.EDbVendor;
004import gudusoft.gsqlparser.ESqlStatementType;
005import gudusoft.gsqlparser.TCustomSqlStatement;
006import gudusoft.gsqlparser.nodes.*;
007
008/**
009 * DROP REPOSITORY statement for StarRocks.
010 *
011 * Syntax:
012 * DROP REPOSITORY `repo_name`;
013 *
014 * This statement deletes the mapping of a repository in StarRocks.
015 * Note: This does not delete the actual data in the remote storage.
016 */
017public class TStarrocksDropRepositoryStmt extends TCustomSqlStatement {
018
019    // Repository name
020    private TObjectName repositoryName;
021
022    public TStarrocksDropRepositoryStmt(EDbVendor dbvendor) {
023        super(dbvendor);
024        sqlstatementtype = ESqlStatementType.sststarrocksDropRepository;
025    }
026
027    // Getters
028    public TObjectName getRepositoryName() {
029        return repositoryName;
030    }
031
032    @Override
033    public int doParseStatement(TCustomSqlStatement psql) {
034        if (rootNode == null) return -1;
035        super.doParseStatement(psql);
036
037        TDropRepositorySqlNode node = (TDropRepositorySqlNode) rootNode;
038
039        this.repositoryName = node.getRepositoryName();
040
041        return 0;
042    }
043
044    @Override
045    public void accept(TParseTreeVisitor v) {
046        v.preVisit(this);
047        v.postVisit(this);
048    }
049
050    @Override
051    public void acceptChildren(TParseTreeVisitor v) {
052        v.preVisit(this);
053        v.postVisit(this);
054    }
055}