001package gudusoft.gsqlparser.stmt;
002/*
003 * Date: 13-7-29
004 */
005
006import gudusoft.gsqlparser.EDbVendor;
007import gudusoft.gsqlparser.ESqlStatementType;
008import gudusoft.gsqlparser.TCustomSqlStatement;
009import gudusoft.gsqlparser.nodes.TObjectName;
010import gudusoft.gsqlparser.nodes.TPTNodeList;
011import gudusoft.gsqlparser.nodes.TParseTreeVisitor;
012import gudusoft.gsqlparser.nodes.TPartitionExtensionClause;
013import gudusoft.gsqlparser.nodes.TMSCKSqlNode;
014
015import java.util.ArrayList;
016
017public class TMSCKStmt extends TCustomSqlStatement {
018
019    private boolean repair;
020    private TObjectName tableName;
021    private ArrayList<TPartitionExtensionClause> partitionSpecList;
022
023    public TMSCKStmt(EDbVendor dbvendor) {
024        super(dbvendor);
025        sqlstatementtype = ESqlStatementType.sstmsck;
026    }
027
028    public ArrayList<TPartitionExtensionClause> getPartitionSpecList() {
029        return partitionSpecList;
030    }
031
032    public boolean isRepair() {
033        return repair;
034    }
035
036    public TObjectName getTableName() {
037        return tableName;
038    }
039
040    public int doParseStatement(TCustomSqlStatement psql) {
041        if (rootNode == null) return -1;
042        super.doParseStatement(psql);
043        TMSCKSqlNode node = (TMSCKSqlNode)rootNode;
044        this.repair = node.isRepair();
045        this.tableName = node.getTableName();
046        this.partitionSpecList = node.getPartitionSpecList();
047
048        return 0;
049    }
050
051    public void accept(TParseTreeVisitor v){
052        v.preVisit(this);
053        v.postVisit(this);
054    }
055
056    public void acceptChildren(TParseTreeVisitor v){
057        v.preVisit(this);
058        if (partitionSpecList != null) {
059            for(int i=0;i<partitionSpecList.size();i++){
060                partitionSpecList.get(i).acceptChildren(v);
061            }
062        }
063        v.postVisit(this);
064    }
065
066    public void setRepair(boolean repair) {
067        this.repair = repair;
068    }
069
070    public void setTableName(TObjectName tableName) {
071        this.tableName = tableName;
072    }
073
074    public void setPartitionSpecList(ArrayList<TPartitionExtensionClause> partitionSpecList) {
075        this.partitionSpecList = partitionSpecList;
076    }
077}