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 RESOURCE GROUP statement for StarRocks.
010 *
011 * Syntax:
012 * DROP RESOURCE GROUP [IF EXISTS] resource_group_name
013 *
014 * This statement drops a resource group from StarRocks.
015 */
016public class TStarrocksDropResourceGroupStmt extends TCustomSqlStatement {
017
018    // Resource group name
019    private TObjectName resourceGroupName;
020
021    // IF EXISTS flag
022    private boolean ifExists;
023
024    public TStarrocksDropResourceGroupStmt(EDbVendor dbvendor) {
025        super(dbvendor);
026        sqlstatementtype = ESqlStatementType.sststarrocksDropResourceGroup;
027    }
028
029    // Getters
030    public TObjectName getResourceGroupName() {
031        return resourceGroupName;
032    }
033
034    public boolean isIfExists() {
035        return ifExists;
036    }
037
038    @Override
039    public int doParseStatement(TCustomSqlStatement psql) {
040        if (rootNode == null) return -1;
041        super.doParseStatement(psql);
042
043        TDropResourceGroupSqlNode node = (TDropResourceGroupSqlNode) rootNode;
044
045        this.resourceGroupName = node.getResourceGroupName();
046        this.ifExists = node.isIfExists();
047
048        return 0;
049    }
050
051    @Override
052    public void accept(TParseTreeVisitor v) {
053        v.preVisit(this);
054        v.postVisit(this);
055    }
056
057    @Override
058    public void acceptChildren(TParseTreeVisitor v) {
059        v.preVisit(this);
060        v.postVisit(this);
061    }
062}