001package gudusoft.gsqlparser.stmt;
002
003import gudusoft.gsqlparser.*;
004import gudusoft.gsqlparser.nodes.TDummy;
005
006import gudusoft.gsqlparser.nodes.TParseTreeVisitor;
007import gudusoft.gsqlparser.nodes.TObjectName;
008
009public class TUseDatabase extends TCustomSqlStatement {
010     public TUseDatabase(EDbVendor dbvendor){
011        super(dbvendor);
012        sqlstatementtype = ESqlStatementType.sstUseDatabase ;
013        }
014
015    void buildsql() {
016    }
017
018    void clear() {
019    }
020
021    String getasprettytext() {
022        return "";
023    }
024
025    void iterate(TVisitorAbs pvisitor) {
026    }
027
028    private TObjectName schemaName = null;
029
030    public TObjectName getSchemaName() {
031        return schemaName;
032    }
033
034    private TObjectName databaseName = null;
035
036    public TObjectName getDatabaseName() {
037        return databaseName;
038    }
039
040    private boolean isSchema = false;
041
042    public boolean isSchema() {
043        return isSchema;
044    }
045
046    public int doParseStatement(TCustomSqlStatement psql) {
047         if (rootNode == null) return -1;
048         TDummy dummySqlNode = (TDummy)rootNode;
049
050         super.doParseStatement(psql);
051         switch (dbvendor){
052             case dbvdatabricks:
053                 switch(dummySqlNode.objectType){
054                     case catalog:
055                         this.databaseName = (TObjectName)dummySqlNode.node1;
056                         this.databaseName.setDbObjectType(EDbObjectType.database);
057                         if (getSqlEnv() != null)  {
058                             getSqlEnv().setDefaultCatalogName(this.databaseName.toString());
059                         }
060                         break;
061                     case schema:
062                     case database:
063                         this.schemaName = (TObjectName)dummySqlNode.node1;
064                         this.schemaName.setDbObjectType(EDbObjectType.schema);
065                         if (getSqlEnv() != null)  {
066                             getSqlEnv().setDefaultSchemaName(this.schemaName.toString());
067                         }
068                         break;
069                 }
070                 break;
071             default:
072                 this.databaseName = (TObjectName)dummySqlNode.node1;
073                 this.databaseName.setDbObjectType(EDbObjectType.database);
074               // this.databaseName.setObjectType(TObjectName.ttobjDatabaseName);
075                 if (dummySqlNode.objectType == EDbObjectType.schema){
076                     isSchema = true;
077                 }
078
079                 if (getSqlEnv() != null)  {
080                     getSqlEnv().setDefaultCatalogName(this.databaseName.toString());
081                 }
082                 break;
083         }
084         return 0;
085     }
086
087     public void accept(TParseTreeVisitor v){
088         v.preVisit(this);
089         v.postVisit(this);
090     }
091
092    public void acceptChildren(TParseTreeVisitor v){
093        v.preVisit(this);
094        v.postVisit(this);
095    }
096
097    public void setDatabaseName(TObjectName databaseName) {
098        this.databaseName = databaseName;
099    }
100}