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.TOceanbaseDropTablegroupSqlNode;
009
010/**
011 * OceanBase {@code DROP TABLEGROUP} statement (Phase 4 Batch 6).
012 *
013 * <p>Tagged {@link ESqlStatementType#sstoceanbase_drop_tablegroup}.
014 *
015 * @since 4.0.1.4
016 */
017public class TDropTablegroupSqlStatement extends TCustomSqlStatement {
018
019    private TObjectName tablegroupName;
020    private boolean ifExists;
021
022    public TDropTablegroupSqlStatement(EDbVendor dbvendor) {
023        super(dbvendor);
024        this.sqlstatementtype = ESqlStatementType.sstoceanbase_drop_tablegroup;
025    }
026
027    public TObjectName getTablegroupName() {
028        return tablegroupName;
029    }
030
031    public boolean isIfExists() {
032        return ifExists;
033    }
034
035    @Override
036    public int doParseStatement(TCustomSqlStatement psql) {
037        if (rootNode == null) return -1;
038        super.doParseStatement(psql);
039        TOceanbaseDropTablegroupSqlNode node =
040                (TOceanbaseDropTablegroupSqlNode) rootNode;
041        this.tablegroupName = node.getTablegroupName();
042        this.ifExists = node.isIfExists();
043        return 0;
044    }
045
046    @Override
047    public void accept(TParseTreeVisitor v) {
048        v.preVisit(this);
049        v.postVisit(this);
050    }
051
052    @Override
053    public void acceptChildren(TParseTreeVisitor v) {
054        v.preVisit(this);
055        v.postVisit(this);
056    }
057}