001package gudusoft.gsqlparser.stmt.mssql; 002 003import gudusoft.gsqlparser.nodes.TObjectName; 004import gudusoft.gsqlparser.nodes.TObjectNameList; 005import gudusoft.gsqlparser.nodes.TParseTreeVisitor; 006import gudusoft.gsqlparser.EDbObjectType; 007import gudusoft.gsqlparser.EDbVendor; 008import gudusoft.gsqlparser.ESqlStatementType; 009import gudusoft.gsqlparser.TCustomSqlStatement; 010import gudusoft.gsqlparser.nodes.mssql.TCreatePartitionSchemeSqlNode; 011 012public class TCreatePartitionSchemeSqlStatement extends TCustomSqlStatement { 013 private TObjectName schemeName; 014 private TObjectName functionName; 015 private TObjectNameList fileGroupList; 016 017 public TCreatePartitionSchemeSqlStatement (EDbVendor dbvendor){ 018 super(dbvendor); 019 sqlstatementtype = ESqlStatementType.sstmssqlCreatePartitionScheme ; 020 } 021 022 public TObjectName getSchemeName() { 023 return schemeName; 024 } 025 026 public TObjectName getFunctionName() { 027 return functionName; 028 } 029 030 public TObjectNameList getFileGroupList() { 031 return fileGroupList; 032 } 033 034 public int doParseStatement(TCustomSqlStatement psql) { 035 if (rootNode == null) return -1; 036 super.doParseStatement(psql); 037 TCreatePartitionSchemeSqlNode createPartitionSchemeNode = (TCreatePartitionSchemeSqlNode) rootNode; 038 schemeName = createPartitionSchemeNode.getSchemeName(); 039 schemeName.setDbObjectType(EDbObjectType.partitionScheme); 040 functionName = createPartitionSchemeNode.getFunctionName(); 041 functionName.setDbObjectType(EDbObjectType.partitionFunction); 042 fileGroupList = createPartitionSchemeNode.getFileGroupList(); 043 for (int i = 0; i < fileGroupList.size(); i++) { 044 TObjectName filegroupName = fileGroupList.getObjectName(i); 045 filegroupName.setDbObjectType(EDbObjectType.filegroup); 046 } 047 return 0; 048 } 049 050 public void accept(TParseTreeVisitor v) { 051 v.preVisit(this); 052 v.postVisit(this); 053 } 054 055 public void acceptChildren(TParseTreeVisitor v) { 056 v.preVisit(this); 057 v.postVisit(this); 058 } 059}