001package gudusoft.gsqlparser.stmt;
002
003import gudusoft.gsqlparser.EDbVendor;
004import gudusoft.gsqlparser.ESqlStatementType;
005import gudusoft.gsqlparser.TCustomSqlStatement;
006import gudusoft.gsqlparser.nodes.TDummy;
007import gudusoft.gsqlparser.nodes.TObjectName;
008import gudusoft.gsqlparser.nodes.TParseTreeVisitor;
009
010public class TSetSchemaStmt extends TCustomSqlStatement {
011
012    private TObjectName schemaName;
013
014    public TSetSchemaStmt(EDbVendor dbvendor) {
015        super(dbvendor);
016        sqlstatementtype = ESqlStatementType.sstSetSchema;
017    }
018
019    public int doParseStatement(TCustomSqlStatement psql) {
020        if (rootNode == null) return -1;
021        super.doParseStatement(psql);
022        TDummy sqlNode = (TDummy)rootNode;
023        schemaName = (TObjectName) sqlNode.node1;
024        if (getSqlEnv() != null)  {
025            getSqlEnv().setDefaultSchemaName(this.schemaName.toString());
026        }
027        return 0;
028    }
029
030    public void accept(TParseTreeVisitor v){
031        v.preVisit(this);
032        v.postVisit(this);
033    }
034
035    public void acceptChildren(TParseTreeVisitor v){
036        v.preVisit(this);
037        v.postVisit(this);
038    }
039
040    public TObjectName getSchemaName() {
041        return schemaName;
042    }
043}