001package gudusoft.gsqlparser.stmt.couchbase;
002
003
004import gudusoft.gsqlparser.EDbVendor;
005
006import gudusoft.gsqlparser.ESqlClause;
007import gudusoft.gsqlparser.ESqlStatementType;
008import gudusoft.gsqlparser.TCustomSqlStatement;
009
010import gudusoft.gsqlparser.nodes.TExpression;
011import gudusoft.gsqlparser.nodes.TParseTreeVisitor;
012
013import gudusoft.gsqlparser.nodes.couchbase.TInferKeyspaceSqlNode;
014
015
016public class TInferKeyspaceStmt extends TCustomSqlStatement {
017    public TInferKeyspaceStmt(EDbVendor dbvendor) {
018        super(dbvendor);
019        sqlstatementtype = ESqlStatementType.sstinfer;
020    }
021
022
023    public int doParseStatement(TCustomSqlStatement psql) {
024        if (rootNode == null) return -1;
025        super.doParseStatement(psql);
026        TInferKeyspaceSqlNode node = (TInferKeyspaceSqlNode)(rootNode);
027        setTargetTable(analyzeFromTable(node.getKeyspaceRef(),true));
028        inferWith = node.getInferWith();
029        inferWith.doParse(this, ESqlClause.unknown);
030        return 0;
031    }
032
033    public void accept(TParseTreeVisitor v){
034        v.preVisit(this);
035        v.postVisit(this);
036    }
037
038    public void acceptChildren(TParseTreeVisitor v){
039        v.preVisit(this);
040        v.postVisit(this);
041    }
042
043    private TExpression inferWith;
044
045    public TExpression getInferWith() {
046        return inferWith;
047    }
048}