001package gudusoft.gsqlparser.stmt.vertica; 002 003 004import gudusoft.gsqlparser.EDbVendor; 005import gudusoft.gsqlparser.ESqlStatementType; 006import gudusoft.gsqlparser.TCustomSqlStatement; 007import gudusoft.gsqlparser.nodes.TParseTreeVisitor; 008import gudusoft.gsqlparser.nodes.TStatementSqlNode; 009import gudusoft.gsqlparser.stmt.*; 010 011public class TProfileStmt extends TCustomSqlStatement { 012 013 private TCustomSqlStatement statement; 014 015 public TCustomSqlStatement getStatement() { 016 return statement; 017 } 018 019 public TProfileStmt(EDbVendor dbvendor) { 020 super(dbvendor); 021 sqlstatementtype = ESqlStatementType.sstProfile; 022 } 023 024 public int doParseStatement(TCustomSqlStatement psql) { 025 if (rootNode == null) return -1; 026 super.doParseStatement(psql); 027 switch (rootNode.getNodeType()){ 028 case TStatementSqlNode.select: 029 statement = new TSelectSqlStatement(dbvendor); 030 break; 031 case TStatementSqlNode.delete: 032 statement = new TDeleteSqlStatement(dbvendor); 033 break; 034 case TStatementSqlNode.insert: 035 statement = new TInsertSqlStatement(dbvendor); 036 break; 037 case TStatementSqlNode.update: 038 statement = new TUpdateSqlStatement(dbvendor); 039 break; 040 case TStatementSqlNode.createtable: 041 statement = new TCreateTableSqlStatement(dbvendor); 042 break; 043 case TStatementSqlNode.CreateIndexSqlNode: 044 statement = new TCreateIndexSqlStatement(dbvendor); 045 break; 046 default: 047 break; 048 } 049 statement.rootNode = rootNode; 050 statement.doParseStatement(this); 051 052 return 0; 053 } 054 055 public void accept(TParseTreeVisitor v){ 056 v.preVisit(this); 057 v.postVisit(this); 058 } 059 060 public void acceptChildren(TParseTreeVisitor v){ 061 v.preVisit(this); 062 statement.accept(v); 063 v.postVisit(this); 064 } 065 066 public void setStatement(TCustomSqlStatement statement) { 067 this.statement = statement; 068 } 069}