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}