001package gudusoft.gsqlparser.stmt.teradata; 002 003import gudusoft.gsqlparser.TCustomSqlStatement; 004import gudusoft.gsqlparser.EDbVendor; 005import gudusoft.gsqlparser.ESqlStatementType; 006import gudusoft.gsqlparser.nodes.TObjectName; 007import gudusoft.gsqlparser.nodes.TParseTreeVisitor; 008import gudusoft.gsqlparser.nodes.teradata.TAbortSqlNode; 009import gudusoft.gsqlparser.nodes.teradata.TSetSessionSqlNode; 010 011public class TTeradataSetSession extends TCustomSqlStatement { 012 013 private TObjectName databaseName; 014 015 public TObjectName getDatabaseName() { 016 return databaseName; 017 } 018 019 public enum ESetSessionType {unknown,database}; 020 021 public ESetSessionType getSetSessionType() { 022 return setSessionType; 023 } 024 025 private ESetSessionType setSessionType; 026 027 public TTeradataSetSession(EDbVendor dbvendor) { 028 super(dbvendor); 029 sqlstatementtype = ESqlStatementType.sstteradatasetsession; 030 } 031 032 public int doParseStatement(TCustomSqlStatement psql) { 033 if (rootNode == null) return -1; 034 super.doParseStatement(psql); 035 TSetSessionSqlNode setSessionSqlNode = (TSetSessionSqlNode) rootNode; 036 this.setSessionType = setSessionSqlNode.getSetSessionType(); 037 switch (setSessionType){ 038 case database: 039 this.databaseName = setSessionSqlNode.getDatabaseName(); 040 break; 041 default: 042 break; 043 } 044 045 return 0; 046 } 047 048 public void accept(TParseTreeVisitor v){ 049 v.preVisit(this); 050 v.postVisit(this); 051 } 052 public void acceptChildren(TParseTreeVisitor v){ 053 v.preVisit(this); 054 v.postVisit(this); 055 } 056 057}