001package gudusoft.gsqlparser.stmt.hive;
002/*
003 * Date: 13-8-9
004 */
005
006import gudusoft.gsqlparser.EDbVendor;
007import gudusoft.gsqlparser.ESqlClause;
008import gudusoft.gsqlparser.ESqlStatementType;
009import gudusoft.gsqlparser.TCustomSqlStatement;
010import gudusoft.gsqlparser.nodes.TParseTreeVisitor;
011import gudusoft.gsqlparser.nodes.hive.THiveExplainSqlNode;
012
013public class THiveExplain extends TCustomSqlStatement {
014
015    TCustomSqlStatement stmt;
016
017    public TCustomSqlStatement getStmt() {
018        return stmt;
019    }
020
021    public THiveExplain(EDbVendor dbvendor) {
022        super(dbvendor);
023        sqlstatementtype = ESqlStatementType.ssthiveExplain;
024    }
025
026    public int doParseStatement(TCustomSqlStatement psql) {
027        if (rootNode == null) return -1;
028        super.doParseStatement(psql);
029        THiveExplainSqlNode explainSqlNode = (THiveExplainSqlNode)rootNode;
030        explainSqlNode.getStmtSqlNode().doParse(this, ESqlClause.unknown);
031        stmt = explainSqlNode.getStmtSqlNode().getStmt();
032
033        return 0;
034    }
035
036    public void accept(TParseTreeVisitor v){
037        v.preVisit(this);
038        v.postVisit(this);
039    }
040
041    public void acceptChildren(TParseTreeVisitor v){
042        v.preVisit(this);
043        stmt.accept(v);
044        v.postVisit(this);
045    }
046
047    public void setStmt(TCustomSqlStatement stmt) {
048        this.stmt = stmt;
049    }
050}