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}