001package gudusoft.gsqlparser.stmt.teradata;
002
003import gudusoft.gsqlparser.ESqlClause;
004import gudusoft.gsqlparser.TCustomSqlStatement;
005import gudusoft.gsqlparser.EDbVendor;
006import gudusoft.gsqlparser.ESqlStatementType;
007import gudusoft.gsqlparser.nodes.TCollectStatisticsSqlNode;
008import gudusoft.gsqlparser.nodes.TColumnDefinitionList;
009import gudusoft.gsqlparser.nodes.TParseTreeVisitor;
010import gudusoft.gsqlparser.nodes.teradata.TTeradataUsingSqlNode;
011
012public class TTeradataUsing extends TCustomSqlStatement {
013
014
015    private TColumnDefinitionList columnDefinitionList;
016    private TCustomSqlStatement  sqlRequest;
017
018    public TTeradataUsing(EDbVendor dbvendor) {
019        super(dbvendor);
020        sqlstatementtype = ESqlStatementType.sstteradatausing;
021    }
022
023    public TColumnDefinitionList getColumnDefinitionList() {
024        return columnDefinitionList;
025    }
026
027    public TCustomSqlStatement getSqlRequest() {
028        return sqlRequest;
029    }
030
031    public int doParseStatement(TCustomSqlStatement psql) {
032        if (rootNode == null) return -1;
033        super.doParseStatement(psql);
034        TTeradataUsingSqlNode usingSqlNode = (TTeradataUsingSqlNode)rootNode;
035        columnDefinitionList = usingSqlNode.getColumnDefinitionList();
036        usingSqlNode.getStmtSqlNode().doParse(this,ESqlClause.unknown);
037        sqlRequest = usingSqlNode.getStmtSqlNode().getStmt();
038        sqlRequest.setParentStmtToNull();
039        sqlRequest.setUsingVariableList(columnDefinitionList);
040        //this.setEndToken(sqlRequest.getEndToken());
041        return 0;
042    }
043
044    public void accept(TParseTreeVisitor v){
045        v.preVisit(this);
046        v.postVisit(this);
047    }
048    public void acceptChildren(TParseTreeVisitor v){
049        v.preVisit(this);
050        sqlRequest.accept(v);
051        v.postVisit(this);
052    }
053
054    public void setColumnDefinitionList(TColumnDefinitionList columnDefinitionList) {
055        this.columnDefinitionList = columnDefinitionList;
056    }
057
058    public void setSqlRequest(TCustomSqlStatement sqlRequest) {
059        this.sqlRequest = sqlRequest;
060    }
061}