001package gudusoft.gsqlparser.stmt;
002
003
004import gudusoft.gsqlparser.*;
005import gudusoft.gsqlparser.nodes.TDummy;
006import gudusoft.gsqlparser.nodes.TObjectName;
007import gudusoft.gsqlparser.nodes.TParseTreeVisitor;
008
009/**
010 * @deprecated since v2.6.2.8, please use {@link TUseDatabase} instead.
011 */
012public class TUseStmt extends TCustomSqlStatement {
013
014    public TUseStmt(EDbVendor dbvendor) {
015        super(dbvendor);
016        sqlstatementtype = ESqlStatementType.sstUse;
017    }
018
019
020
021    private TObjectName dbObjectName = null;
022    private EDbObjectType dbObjectType;
023
024    public TObjectName getDbObjectName() {
025        return dbObjectName;
026    }
027
028    public EDbObjectType getDbObjectType() {
029        return dbObjectType;
030    }
031
032    public int doParseStatement(TCustomSqlStatement psql) {
033        if (rootNode == null) return -1;
034        TDummy dummySqlNode = (TDummy) rootNode;
035
036        super.doParseStatement(psql);
037        this.dbObjectName = (TObjectName) dummySqlNode.node1;
038        this.dbObjectName.setDbObjectType(dummySqlNode.objectType);
039        dbObjectType = dummySqlNode.objectType;
040        switch (dbObjectType){
041            case database:
042                if (getSqlEnv() != null) getSqlEnv().setDefaultCatalogName(dbObjectName.toString());
043                break;
044            case schema:
045                if (getSqlEnv() != null) getSqlEnv().setDefaultSchemaName(dbObjectName.toString());
046                break;
047        }
048
049
050//        if (getGlobalScope() != null){
051//            getGlobalScope().setDefaultDB(dbObjectName.toString());
052//        }
053
054        return 0;
055    }
056
057    public void accept(TParseTreeVisitor v) {
058        v.preVisit(this);
059        v.postVisit(this);
060    }
061
062    public void acceptChildren(TParseTreeVisitor v) {
063        v.preVisit(this);
064        v.postVisit(this);
065    }
066
067    public void setDbObjectName(TObjectName dbObjectName) {
068        this.dbObjectName = dbObjectName;
069    }
070}