001package gudusoft.gsqlparser.stmt; 002 003import gudusoft.gsqlparser.EDbVendor; 004import gudusoft.gsqlparser.ESqlStatementType; 005import gudusoft.gsqlparser.TCustomSqlStatement; 006import gudusoft.gsqlparser.nodes.*; 007 008 009public class TAlterSchemaStmt extends TCustomSqlStatement { 010 public enum AlterType { renameTo, ownerTo,authoriaztionTo, setPath,set,defaultSchemaPrivileges,includeSchemaPrivileges,excludeSchemaPrivileges,swapWith}; 011 012 private AlterType alterType; 013 014 public AlterType getAlterType() { 015 return alterType; 016 } 017 018 private TObjectName newSchemaName; 019 020 public TObjectName getNewSchemaName() { 021 if (newSchemaName != null){ 022 return newSchemaName; 023 }else { 024 return newSchemaNameList.getObjectName(0); 025 } 026 } 027 028 private TObjectName schemaName; 029 030 public TObjectName getSchemaName() { 031 if (schemaName != null){ 032 return schemaName; 033 }else { 034 return schemaNameList.getObjectName(0); 035 } 036 } 037 038 private TObjectName ownerName; 039 040 public TObjectName getOwnerName() { 041 return ownerName; 042 } 043 044 045 private TObjectNameList schemaNameList; 046 047 public TObjectNameList getNewSchemaNameList() { 048 return newSchemaNameList; 049 } 050 051 public TObjectNameList getSchemaNameList() { 052 return schemaNameList; 053 } 054 055 private TObjectNameList newSchemaNameList; 056 057 public TAlterSchemaStmt(EDbVendor dbvendor) { 058 super(dbvendor); 059 sqlstatementtype = ESqlStatementType.sstAlterSchema; 060 } 061 062 063 064 public int doParseStatement(TCustomSqlStatement psql) { 065 if (rootNode == null) return -1; 066 super.doParseStatement(psql); 067 TAlterSchemaSqlNode node = (TAlterSchemaSqlNode) rootNode; 068 alterType = node.getAlterType(); 069 schemaNameList = node.getSchemaNameList(); 070 newSchemaNameList = node.getNewSchemaNameList(); 071 schemaName = node.getSchemaName(); 072 ownerName = node.getOwnerName(); 073 newSchemaName = node.getNewSchemaName(); 074 075 return 0; 076 } 077 078 public void accept(TParseTreeVisitor v){ 079 v.preVisit(this); 080 081 v.postVisit(this); 082 } 083 084 public void acceptChildren(TParseTreeVisitor v){ 085 v.preVisit(this); 086 v.postVisit(this); 087 } 088 089}