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());
}
}
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);
}
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);
}
Aggregations