001package gudusoft.gsqlparser.stmt.netezza;
002/*
003 * Date: 13-11-25
004 */
005
006import gudusoft.gsqlparser.EDbVendor;
007import gudusoft.gsqlparser.ESqlStatementType;
008import gudusoft.gsqlparser.TCustomSqlStatement;
009import gudusoft.gsqlparser.nodes.TObjectName;
010import gudusoft.gsqlparser.nodes.TObjectNameList;
011import gudusoft.gsqlparser.nodes.TParseTreeVisitor;
012import gudusoft.gsqlparser.nodes.netezza.TGenerateStatisticsSqlNode;
013
014/**
015 * netezza generate [express] statistics statement
016 */
017public class TNetezzaGenerateStatistics extends TCustomSqlStatement {
018
019    private TObjectName tableName;
020    private TObjectNameList columns;
021    private boolean express;
022
023    public boolean isExpress() {
024        return express;
025    }
026
027    public TObjectNameList getColumns() {
028        return columns;
029    }
030
031    public TObjectName getTableName() {
032        return tableName;
033    }
034
035    public TNetezzaGenerateStatistics(EDbVendor dbvendor) {
036        super(dbvendor);
037        sqlstatementtype = ESqlStatementType.sstnetezzaGenerateStatistics;
038    }
039
040    public int doParseStatement(TCustomSqlStatement psql) {
041        if (rootNode == null) return -1;
042        super.doParseStatement(psql);
043        TGenerateStatisticsSqlNode sqlNode = (TGenerateStatisticsSqlNode)rootNode;
044        tableName = sqlNode.getTableName();
045        columns = sqlNode.getColumns();
046        express = sqlNode.isExpress();
047
048
049        return 0;
050    }
051
052    public void accept(TParseTreeVisitor v){
053        v.preVisit(this);
054        v.postVisit(this);
055    }
056
057    public void acceptChildren(TParseTreeVisitor v){
058        v.preVisit(this);
059        v.postVisit(this);
060    }
061
062    public void setTableName(TObjectName tableName) {
063        this.tableName = tableName;
064    }
065
066    public void setColumns(TObjectNameList columns) {
067        this.columns = columns;
068    }
069
070    public void setExpress(boolean express) {
071        this.express = express;
072    }
073}