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 TASK statement for StarRocks.
010 *
011 * Syntax:
012 * DROP TASK [IF EXISTS] `task_name` [FORCE]
013 */
014public class TStarrocksDropTaskStmt extends TCustomSqlStatement {
015
016    // Task identification
017    private TObjectName taskName;
018
019    // IF EXISTS clause
020    private boolean ifExists;
021
022    // FORCE clause
023    private boolean force;
024
025    public TStarrocksDropTaskStmt(EDbVendor dbvendor) {
026        super(dbvendor);
027        sqlstatementtype = ESqlStatementType.sststarrocksDropTask;
028    }
029
030    // Getters
031    public TObjectName getTaskName() {
032        return taskName;
033    }
034
035    public boolean isIfExists() {
036        return ifExists;
037    }
038
039    public boolean isForce() {
040        return force;
041    }
042
043    @Override
044    public int doParseStatement(TCustomSqlStatement psql) {
045        if (rootNode == null) return -1;
046        super.doParseStatement(psql);
047
048        TDropTaskSqlNode node = (TDropTaskSqlNode) rootNode;
049
050        this.taskName = node.getTaskName();
051        this.ifExists = node.isIfExists();
052        this.force = node.isForce();
053
054        return 0;
055    }
056
057    @Override
058    public void accept(TParseTreeVisitor v) {
059        v.preVisit(this);
060        v.postVisit(this);
061    }
062
063    @Override
064    public void acceptChildren(TParseTreeVisitor v) {
065        v.preVisit(this);
066        v.postVisit(this);
067    }
068}