001package gudusoft.gsqlparser.stmt.snowflake; 002 003import gudusoft.gsqlparser.EDbObjectType; 004import gudusoft.gsqlparser.EDbVendor; 005import gudusoft.gsqlparser.ESqlStatementType; 006import gudusoft.gsqlparser.TCustomSqlStatement; 007import gudusoft.gsqlparser.nodes.TDummy; 008import gudusoft.gsqlparser.nodes.TObjectName; 009import gudusoft.gsqlparser.nodes.TParseTreeVisitor; 010 011/** 012 * Snowflake use schema 013 */ 014public class TUseSchema extends TCustomSqlStatement { 015 016 private TObjectName schemaName; 017 018 public TObjectName getSchemaName() { 019 return schemaName; 020 } 021 022 public TUseSchema(EDbVendor dbvendor) { 023 super(dbvendor); 024 sqlstatementtype = ESqlStatementType.sstUseSchema; 025 } 026 027 public int doParseStatement(TCustomSqlStatement psql) { 028 if (rootNode == null) return -1; 029 super.doParseStatement(psql); 030 TDummy dummySqlNode = (TDummy)rootNode; 031 032 super.doParseStatement(psql); 033 this.schemaName = (TObjectName)dummySqlNode.node1; 034 this.schemaName.setDbObjectType(EDbObjectType.schema); 035 if (getSqlEnv() != null) { 036 getSqlEnv().setDefaultSchemaName(this.schemaName.getSchemaString()); 037 if (this.schemaName.getDatabaseString().length() > 0){ 038 getSqlEnv().setDefaultCatalogName(this.schemaName.getDatabaseString()); 039 } 040 } 041 return 0; 042 } 043 044 public void accept(TParseTreeVisitor v){ 045 v.preVisit(this); 046 v.postVisit(this); 047 } 048 049 public void acceptChildren(TParseTreeVisitor v){ 050 v.preVisit(this); 051 v.postVisit(this); 052 } 053 054}