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}