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}