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.TOceanbaseDropResourcePoolSqlNode;
009
010/**
011 * OceanBase {@code DROP RESOURCE POOL} statement (Phase 4 Batch 2).
012 *
013 * <p>Tagged {@link ESqlStatementType#sstoceanbase_drop_resource_pool}.
014 *
015 * @since 4.0.1.4
016 */
017public class TDropResourcePoolSqlStatement extends TCustomSqlStatement {
018
019    private TObjectName poolName;
020
021    public TDropResourcePoolSqlStatement(EDbVendor dbvendor) {
022        super(dbvendor);
023        this.sqlstatementtype = ESqlStatementType.sstoceanbase_drop_resource_pool;
024    }
025
026    public TObjectName getPoolName() {
027        return poolName;
028    }
029
030    @Override
031    public int doParseStatement(TCustomSqlStatement psql) {
032        if (rootNode == null) return -1;
033        super.doParseStatement(psql);
034        TOceanbaseDropResourcePoolSqlNode node =
035                (TOceanbaseDropResourcePoolSqlNode) rootNode;
036        this.poolName = node.getPoolName();
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}