Search in sources :

Example 1 with QueryConvertResult

use of com.hazelcast.jet.sql.impl.parse.QueryConvertResult in project hazelcast by hazelcast.

the class CalciteSqlOptimizer method createPlan.

@SuppressWarnings("checkstyle:returncount")
private SqlPlan createPlan(OptimizationTask task, QueryParseResult parseResult, OptimizerContext context) {
    // TODO [sasha] : refactor this.
    SqlNode node = parseResult.getNode();
    PlanKey planKey = new PlanKey(task.getSearchPaths(), task.getSql());
    if (node instanceof SqlCreateMapping) {
        return toCreateMappingPlan(planKey, (SqlCreateMapping) node);
    } else if (node instanceof SqlDropMapping) {
        return toDropMappingPlan(planKey, (SqlDropMapping) node);
    } else if (node instanceof SqlCreateIndex) {
        return toCreateIndexPlan(planKey, (SqlCreateIndex) node);
    } else if (node instanceof SqlDropIndex) {
        return toDropIndexPlan(planKey, (SqlDropIndex) node);
    } else if (node instanceof SqlCreateJob) {
        return toCreateJobPlan(planKey, parseResult, context, task.getSql());
    } else if (node instanceof SqlAlterJob) {
        return toAlterJobPlan(planKey, (SqlAlterJob) node);
    } else if (node instanceof SqlDropJob) {
        return toDropJobPlan(planKey, (SqlDropJob) node);
    } else if (node instanceof SqlCreateSnapshot) {
        return toCreateSnapshotPlan(planKey, (SqlCreateSnapshot) node);
    } else if (node instanceof SqlDropSnapshot) {
        return toDropSnapshotPlan(planKey, (SqlDropSnapshot) node);
    } else if (node instanceof SqlCreateView) {
        return toCreateViewPlan(planKey, context, (SqlCreateView) node);
    } else if (node instanceof SqlDropView) {
        return toDropViewPlan(planKey, (SqlDropView) node);
    } else if (node instanceof SqlShowStatement) {
        return toShowStatementPlan(planKey, (SqlShowStatement) node);
    } else if (node instanceof SqlExplainStatement) {
        return toExplainStatementPlan(planKey, context, parseResult);
    } else {
        QueryConvertResult convertResult = context.convert(parseResult.getNode());
        return toPlan(planKey, parseResult.getParameterMetadata(), convertResult.getRel(), convertResult.getFieldNames(), context, parseResult.isInfiniteRows(), false, task.getSql());
    }
}
Also used : SqlCreateView(com.hazelcast.jet.sql.impl.parse.SqlCreateView) SqlDropView(com.hazelcast.jet.sql.impl.parse.SqlDropView) SqlDropJob(com.hazelcast.jet.sql.impl.parse.SqlDropJob) SqlAlterJob(com.hazelcast.jet.sql.impl.parse.SqlAlterJob) SqlDropMapping(com.hazelcast.jet.sql.impl.parse.SqlDropMapping) SqlCreateSnapshot(com.hazelcast.jet.sql.impl.parse.SqlCreateSnapshot) SqlCreateMapping(com.hazelcast.jet.sql.impl.parse.SqlCreateMapping) SqlDropIndex(com.hazelcast.jet.sql.impl.parse.SqlDropIndex) SqlCreateJob(com.hazelcast.jet.sql.impl.parse.SqlCreateJob) PlanKey(com.hazelcast.sql.impl.optimizer.PlanKey) SqlDropSnapshot(com.hazelcast.jet.sql.impl.parse.SqlDropSnapshot) QueryConvertResult(com.hazelcast.jet.sql.impl.parse.QueryConvertResult) SqlShowStatement(com.hazelcast.jet.sql.impl.parse.SqlShowStatement) SqlExplainStatement(com.hazelcast.jet.sql.impl.parse.SqlExplainStatement) SqlCreateIndex(com.hazelcast.jet.sql.impl.parse.SqlCreateIndex) SqlNode(org.apache.calcite.sql.SqlNode)

Example 2 with QueryConvertResult

use of com.hazelcast.jet.sql.impl.parse.QueryConvertResult in project hazelcast by hazelcast.

the class CalciteSqlOptimizer method toCreateJobPlan.

private SqlPlan toCreateJobPlan(PlanKey planKey, QueryParseResult parseResult, OptimizerContext context, String query) {
    SqlCreateJob sqlCreateJob = (SqlCreateJob) parseResult.getNode();
    SqlNode source = sqlCreateJob.dmlStatement();
    QueryParseResult dmlParseResult = new QueryParseResult(source, parseResult.getParameterMetadata(), false);
    QueryConvertResult dmlConvertedResult = context.convert(dmlParseResult.getNode());
    SqlPlanImpl dmlPlan = toPlan(null, parseResult.getParameterMetadata(), dmlConvertedResult.getRel(), dmlConvertedResult.getFieldNames(), context, dmlParseResult.isInfiniteRows(), true, query);
    assert dmlPlan instanceof DmlPlan && ((DmlPlan) dmlPlan).getOperation() == Operation.INSERT;
    return new CreateJobPlan(planKey, sqlCreateJob.jobConfig(), sqlCreateJob.ifNotExists(), (DmlPlan) dmlPlan, query, parseResult.isInfiniteRows(), planExecutor);
}
Also used : SqlCreateJob(com.hazelcast.jet.sql.impl.parse.SqlCreateJob) DmlPlan(com.hazelcast.jet.sql.impl.SqlPlanImpl.DmlPlan) QueryConvertResult(com.hazelcast.jet.sql.impl.parse.QueryConvertResult) CreateJobPlan(com.hazelcast.jet.sql.impl.SqlPlanImpl.CreateJobPlan) QueryParseResult(com.hazelcast.jet.sql.impl.parse.QueryParseResult) SqlNode(org.apache.calcite.sql.SqlNode)

Example 3 with QueryConvertResult

use of com.hazelcast.jet.sql.impl.parse.QueryConvertResult in project hazelcast by hazelcast.

the class CalciteSqlOptimizer method toExplainStatementPlan.

private SqlPlan toExplainStatementPlan(PlanKey planKey, OptimizerContext context, QueryParseResult parseResult) {
    SqlNode node = parseResult.getNode();
    assert node instanceof SqlExplainStatement;
    QueryConvertResult convertResult = context.convert(((SqlExplainStatement) node).getExplicandum());
    PhysicalRel physicalRel = optimize(parseResult.getParameterMetadata(), convertResult.getRel(), context, false);
    return new ExplainStatementPlan(planKey, physicalRel, planExecutor);
}
Also used : QueryConvertResult(com.hazelcast.jet.sql.impl.parse.QueryConvertResult) ExplainStatementPlan(com.hazelcast.jet.sql.impl.SqlPlanImpl.ExplainStatementPlan) SelectByKeyMapPhysicalRel(com.hazelcast.jet.sql.impl.opt.physical.SelectByKeyMapPhysicalRel) SinkMapPhysicalRel(com.hazelcast.jet.sql.impl.opt.physical.SinkMapPhysicalRel) DeleteByKeyMapPhysicalRel(com.hazelcast.jet.sql.impl.opt.physical.DeleteByKeyMapPhysicalRel) InsertMapPhysicalRel(com.hazelcast.jet.sql.impl.opt.physical.InsertMapPhysicalRel) UpdateByKeyMapPhysicalRel(com.hazelcast.jet.sql.impl.opt.physical.UpdateByKeyMapPhysicalRel) PhysicalRel(com.hazelcast.jet.sql.impl.opt.physical.PhysicalRel) SqlExplainStatement(com.hazelcast.jet.sql.impl.parse.SqlExplainStatement) SqlNode(org.apache.calcite.sql.SqlNode)

Aggregations

QueryConvertResult (com.hazelcast.jet.sql.impl.parse.QueryConvertResult)3 SqlNode (org.apache.calcite.sql.SqlNode)3 SqlCreateJob (com.hazelcast.jet.sql.impl.parse.SqlCreateJob)2 SqlExplainStatement (com.hazelcast.jet.sql.impl.parse.SqlExplainStatement)2 CreateJobPlan (com.hazelcast.jet.sql.impl.SqlPlanImpl.CreateJobPlan)1 DmlPlan (com.hazelcast.jet.sql.impl.SqlPlanImpl.DmlPlan)1 ExplainStatementPlan (com.hazelcast.jet.sql.impl.SqlPlanImpl.ExplainStatementPlan)1 DeleteByKeyMapPhysicalRel (com.hazelcast.jet.sql.impl.opt.physical.DeleteByKeyMapPhysicalRel)1 InsertMapPhysicalRel (com.hazelcast.jet.sql.impl.opt.physical.InsertMapPhysicalRel)1 PhysicalRel (com.hazelcast.jet.sql.impl.opt.physical.PhysicalRel)1 SelectByKeyMapPhysicalRel (com.hazelcast.jet.sql.impl.opt.physical.SelectByKeyMapPhysicalRel)1 SinkMapPhysicalRel (com.hazelcast.jet.sql.impl.opt.physical.SinkMapPhysicalRel)1 UpdateByKeyMapPhysicalRel (com.hazelcast.jet.sql.impl.opt.physical.UpdateByKeyMapPhysicalRel)1 QueryParseResult (com.hazelcast.jet.sql.impl.parse.QueryParseResult)1 SqlAlterJob (com.hazelcast.jet.sql.impl.parse.SqlAlterJob)1 SqlCreateIndex (com.hazelcast.jet.sql.impl.parse.SqlCreateIndex)1 SqlCreateMapping (com.hazelcast.jet.sql.impl.parse.SqlCreateMapping)1 SqlCreateSnapshot (com.hazelcast.jet.sql.impl.parse.SqlCreateSnapshot)1 SqlCreateView (com.hazelcast.jet.sql.impl.parse.SqlCreateView)1 SqlDropIndex (com.hazelcast.jet.sql.impl.parse.SqlDropIndex)1