Search in sources :

Example 16 with Plan

use of io.mycat.calcite.spm.Plan in project Mycat2 by MyCATApache.

the class DrdsTest method parse.

public static Explain parse(String sql) {
    DrdsSqlCompiler drds = getDrds();
    DrdsSqlWithParams drdsSqlWithParams = DrdsRunnerHelper.preParse(sql, null);
    OptimizationContext optimizationContext = new OptimizationContext();
    MycatRel dispatch = drds.dispatch(optimizationContext, drdsSqlWithParams);
    Plan plan = new PlanImpl(dispatch, DrdsExecutorCompiler.getCodeExecuterContext(optimizationContext.relNodeContext.getConstantMap(), dispatch, false), drdsSqlWithParams.getAliasList());
    return new Explain(plan, drdsSqlWithParams);
}
Also used : MycatRel(io.mycat.calcite.MycatRel) OptimizationContext(io.mycat.calcite.rewriter.OptimizationContext) Plan(io.mycat.calcite.spm.Plan) PlanImpl(io.mycat.calcite.spm.PlanImpl)

Aggregations

Plan (io.mycat.calcite.spm.Plan)16 MycatRel (io.mycat.calcite.MycatRel)9 OptimizationContext (io.mycat.calcite.rewriter.OptimizationContext)9 DrdsSqlWithParams (io.mycat.DrdsSqlWithParams)7 PlanImpl (io.mycat.calcite.spm.PlanImpl)7 DrdsSqlCompiler (io.mycat.DrdsSqlCompiler)4 MysqlPayloadObject (io.mycat.api.collector.MysqlPayloadObject)4 SneakyThrows (lombok.SneakyThrows)4 XaSqlConnection (cn.mycat.vertx.xa.XaSqlConnection)3 SQLInsertStatement (com.alibaba.druid.sql.ast.statement.SQLInsertStatement)3 io.mycat (io.mycat)3 ExecutorProvider (io.mycat.calcite.ExecutorProvider)3 PrepareExecutor (io.mycat.calcite.PrepareExecutor)3 SQLStatement (com.alibaba.druid.sql.ast.SQLStatement)2 AsyncMycatDataContextImpl (io.mycat.AsyncMycatDataContextImpl)2 RowBaseIterator (io.mycat.api.collector.RowBaseIterator)2 ResultSetBuilder (io.mycat.beans.mycat.ResultSetBuilder)2 MycatInsertRel (io.mycat.calcite.physical.MycatInsertRel)2 MycatUpdateRel (io.mycat.calcite.physical.MycatUpdateRel)2 PlanImplementor (io.mycat.calcite.plan.PlanImplementor)2