001package gudusoft.gsqlparser.stmt.oceanbase;
002
003import gudusoft.gsqlparser.EDbVendor;
004import gudusoft.gsqlparser.ESqlStatementType;
005import gudusoft.gsqlparser.TCustomSqlStatement;
006import gudusoft.gsqlparser.nodes.TObjectName;
007import gudusoft.gsqlparser.nodes.TParseTreeVisitor;
008import gudusoft.gsqlparser.nodes.oceanbase.TOceanbaseDropResourceUnitSqlNode;
009
010/**
011 * OceanBase {@code DROP RESOURCE UNIT} statement (Phase 4 Batch 2).
012 *
013 * <p>Tagged {@link ESqlStatementType#sstoceanbase_drop_resource_unit}.
014 *
015 * @since 4.0.1.4
016 */
017public class TDropResourceUnitSqlStatement extends TCustomSqlStatement {
018
019    private TObjectName unitName;
020
021    public TDropResourceUnitSqlStatement(EDbVendor dbvendor) {
022        super(dbvendor);
023        this.sqlstatementtype = ESqlStatementType.sstoceanbase_drop_resource_unit;
024    }
025
026    public TObjectName getUnitName() {
027        return unitName;
028    }
029
030    @Override
031    public int doParseStatement(TCustomSqlStatement psql) {
032        if (rootNode == null) return -1;
033        super.doParseStatement(psql);
034        TOceanbaseDropResourceUnitSqlNode node =
035                (TOceanbaseDropResourceUnitSqlNode) rootNode;
036        this.unitName = node.getUnitName();
037        return 0;
038    }
039
040    @Override
041    public void accept(TParseTreeVisitor v) {
042        v.preVisit(this);
043        v.postVisit(this);
044    }
045
046    @Override
047    public void acceptChildren(TParseTreeVisitor v) {
048        v.preVisit(this);
049        v.postVisit(this);
050    }
051}