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}