001package gudusoft.gsqlparser.stmt.redshift; 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 010 011public class TRedshiftAlterSchema extends TCustomSqlStatement { 012 013 private EAlterSchema alterSchemaType; 014 private TObjectName schemaName; 015 private TObjectName newSchemaName; 016 private TObjectName ownerName; 017 018 public EAlterSchema getAlterSchemaType() { 019 return alterSchemaType; 020 } 021 022 public TObjectName getSchemaName() { 023 return schemaName; 024 } 025 026 public TObjectName getNewSchemaName() { 027 return newSchemaName; 028 } 029 030 public TObjectName getOwnerName() { 031 return ownerName; 032 } 033 034 public TRedshiftAlterSchema(EDbVendor dbvendor) { 035 super(dbvendor); 036 sqlstatementtype = ESqlStatementType.sstredshiftAlterSchema; 037 } 038 039 public int doParseStatement(TCustomSqlStatement psql) { 040 if (rootNode == null) return -1; 041 super.doParseStatement(psql); 042 TDummy dummy = (TDummy)rootNode; 043 schemaName = (TObjectName)(dummy.node1); 044 switch (dummy.int1){ 045 case 1:{ 046 alterSchemaType = EAlterSchema.easRenameTo; 047 newSchemaName = (TObjectName)(dummy.node2); 048 break; 049 } 050 case 2:{ 051 alterSchemaType = EAlterSchema.easOwnerTo; 052 ownerName = (TObjectName)(dummy.node2); 053 break; 054 } 055 } 056 057 return 0; 058 } 059 060 public void accept(TParseTreeVisitor v){ 061 v.preVisit(this); 062 v.postVisit(this); 063 } 064 065 public void acceptChildren(TParseTreeVisitor v){ 066 v.preVisit(this); 067 v.postVisit(this); 068 } 069 070 public void setAlterSchemaType(EAlterSchema alterSchemaType) { 071 this.alterSchemaType = alterSchemaType; 072 } 073 074 public void setSchemaName(TObjectName schemaName) { 075 this.schemaName = schemaName; 076 } 077 078 public void setNewSchemaName(TObjectName newSchemaName) { 079 this.newSchemaName = newSchemaName; 080 } 081 082 public void setOwnerName(TObjectName ownerName) { 083 this.ownerName = ownerName; 084 } 085}