001package gudusoft.gsqlparser.stmt;
002
003import gudusoft.gsqlparser.EDbObjectType;
004import gudusoft.gsqlparser.EDbVendor;
005import gudusoft.gsqlparser.ESqlStatementType;
006import gudusoft.gsqlparser.TCustomSqlStatement;
007import gudusoft.gsqlparser.nodes.TObjectName;
008import gudusoft.gsqlparser.nodes.TParseTreeVisitor;
009import gudusoft.gsqlparser.nodes.TResetSqlNode;
010
011/**
012 * This class represents reset statement of GaussDB. (2024/6/30)
013 * In other databases, All reset statement is still represented by {@link TSetStmt}
014 * In the future, use this class to represent the reset statement.
015 */
016public class TResetStmt extends TCustomSqlStatement {
017
018    private TObjectName variableName;
019
020    public TObjectName getVariableName() {
021        return variableName;
022    }
023
024    public TResetStmt(EDbVendor dbvendor) {
025        super(dbvendor);
026        sqlstatementtype = ESqlStatementType.sstReset;
027    }
028
029    public int doParseStatement(TCustomSqlStatement psql) {
030        if (rootNode == null) return -1;
031        TResetSqlNode resetSqlNode = (TResetSqlNode)rootNode;
032        super.doParseStatement(psql);
033        variableName = resetSqlNode.getVariableName();
034        variableName.setDbObjectType(EDbObjectType.variable);
035        return 0;
036    }
037
038    public void accept(TParseTreeVisitor v){
039        v.preVisit(this);
040        v.postVisit(this);
041    }
042
043    public void acceptChildren(TParseTreeVisitor v){
044        v.preVisit(this);
045        v.postVisit(this);
046    }
047
048}