1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.shardingsphere.infra.executor.sql.prepare.raw;
19
20 import org.apache.shardingsphere.infra.executor.kernel.model.ExecutionGroup;
21 import org.apache.shardingsphere.infra.executor.sql.context.ExecutionUnit;
22 import org.apache.shardingsphere.infra.executor.sql.execute.engine.ConnectionMode;
23 import org.apache.shardingsphere.infra.executor.sql.execute.engine.raw.RawSQLExecutionUnit;
24 import org.apache.shardingsphere.infra.executor.sql.prepare.AbstractExecutionPrepareEngine;
25 import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
26
27 import java.sql.SQLException;
28 import java.util.Collection;
29 import java.util.List;
30 import java.util.stream.Collectors;
31
32
33
34
35 public final class RawExecutionPrepareEngine extends AbstractExecutionPrepareEngine<RawSQLExecutionUnit> {
36
37 public RawExecutionPrepareEngine(final int maxConnectionsSizePerQuery, final Collection<ShardingSphereRule> rules) {
38 super(maxConnectionsSizePerQuery, rules);
39 }
40
41 @Override
42 protected List<ExecutionGroup<RawSQLExecutionUnit>> group(final String dataSourceName, final int connectionOffset, final List<List<ExecutionUnit>> executionUnitGroups,
43 final ConnectionMode connectionMode) throws SQLException {
44 return executionUnitGroups.stream().map(each -> createExecutionGroup(each, connectionMode)).collect(Collectors.toList());
45 }
46
47 private ExecutionGroup<RawSQLExecutionUnit> createExecutionGroup(final List<ExecutionUnit> executionUnitGroup, final ConnectionMode connectionMode) {
48 return new ExecutionGroup<>(executionUnitGroup.stream().map(each -> new RawSQLExecutionUnit(each, connectionMode)).collect(Collectors.toList()));
49 }
50 }