Loading sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/jdbc/execute/memory/ConnectionStrictlyExecuteEngine.java +6 −29 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package io.shardingsphere.proxy.backend.jdbc.execute.memory; import io.shardingsphere.core.constant.transaction.TransactionType; import io.shardingsphere.core.executor.ShardingGroupExecuteCallback; import io.shardingsphere.core.merger.QueryResult; import io.shardingsphere.core.routing.SQLRouteResult; Loading @@ -31,7 +30,6 @@ import io.shardingsphere.proxy.backend.jdbc.execute.response.ExecuteUpdateRespon import io.shardingsphere.proxy.backend.jdbc.execute.response.unit.ExecuteQueryResponseUnit; import io.shardingsphere.proxy.backend.jdbc.execute.response.unit.ExecuteResponseUnit; import io.shardingsphere.proxy.backend.jdbc.wrapper.JDBCExecutorWrapper; import io.shardingsphere.proxy.config.RuleRegistry; import lombok.RequiredArgsConstructor; import java.sql.Connection; Loading Loading @@ -59,18 +57,12 @@ public final class ConnectionStrictlyExecuteEngine extends JDBCExecuteEngine { @Override public ExecuteResponse execute(final SQLRouteResult routeResult, final boolean isReturnGeneratedKeys) throws SQLException { Map<String, Collection<SQLUnit>> sqlUnitGroups = routeResult.getSQLUnitGroups(); Collection<ExecuteResponseUnit> executeResponseUnits; if (TransactionType.XA == RuleRegistry.getInstance().getTransactionType()) { Map<String, Map<SQLUnit, Statement>> sqlUnitStatements = new HashMap<>(sqlUnitGroups.size(), 1); for (Entry<String, Collection<SQLUnit>> entry : sqlUnitGroups.entrySet()) { sqlUnitStatements.put(entry.getKey(), createSQLUnitStatement(entry.getKey(), entry.getValue(), isReturnGeneratedKeys)); } executeResponseUnits = BackendExecutorContext.getInstance().getExecuteEngine().groupExecute( sqlUnitGroups, new FirstTransactionGroupExecuteCallback(isReturnGeneratedKeys), new XATransactionGroupExecuteCallback(isReturnGeneratedKeys, sqlUnitStatements)); } else { executeResponseUnits = BackendExecutorContext.getInstance().getExecuteEngine().groupExecute( sqlUnitGroups, new FirstTransactionGroupExecuteCallback(isReturnGeneratedKeys), new LocalTransactionGroupExecuteCallback(isReturnGeneratedKeys)); } Collection<ExecuteResponseUnit> executeResponseUnits = BackendExecutorContext.getInstance().getExecuteEngine().groupExecute( sqlUnitGroups, new FirstTransactionGroupExecuteCallback(isReturnGeneratedKeys), new TransactionGroupExecuteCallback(isReturnGeneratedKeys, sqlUnitStatements)); return getExecuteQueryResponse(executeResponseUnits); } Loading Loading @@ -137,7 +129,7 @@ public final class ConnectionStrictlyExecuteEngine extends JDBCExecuteEngine { } @RequiredArgsConstructor class XATransactionGroupExecuteCallback implements ShardingGroupExecuteCallback<SQLUnit, ExecuteResponseUnit> { class TransactionGroupExecuteCallback implements ShardingGroupExecuteCallback<SQLUnit, ExecuteResponseUnit> { private final boolean isReturnGeneratedKeys; Loading @@ -152,19 +144,4 @@ public final class ConnectionStrictlyExecuteEngine extends JDBCExecuteEngine { return result; } } @RequiredArgsConstructor class LocalTransactionGroupExecuteCallback implements ShardingGroupExecuteCallback<SQLUnit, ExecuteResponseUnit> { private final boolean isReturnGeneratedKeys; @Override public Collection<ExecuteResponseUnit> execute(final String dataSourceName, final Collection<SQLUnit> sqlUnits) throws SQLException { Collection<ExecuteResponseUnit> result = new LinkedList<>(); for (Entry<SQLUnit, Statement> each : createSQLUnitStatement(dataSourceName, sqlUnits, isReturnGeneratedKeys).entrySet()) { result.add(executeWithoutMetadata(each.getValue(), each.getKey().getSql(), isReturnGeneratedKeys)); } return result; } } } sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/jdbc/execute/stream/MemoryStrictlyExecuteEngine.java +6 −27 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package io.shardingsphere.proxy.backend.jdbc.execute.stream; import io.shardingsphere.core.constant.transaction.TransactionType; import io.shardingsphere.core.executor.ShardingExecuteCallback; import io.shardingsphere.core.merger.QueryResult; import io.shardingsphere.core.routing.SQLExecutionUnit; Loading @@ -31,7 +30,6 @@ import io.shardingsphere.proxy.backend.jdbc.execute.response.ExecuteUpdateRespon import io.shardingsphere.proxy.backend.jdbc.execute.response.unit.ExecuteQueryResponseUnit; import io.shardingsphere.proxy.backend.jdbc.execute.response.unit.ExecuteResponseUnit; import io.shardingsphere.proxy.backend.jdbc.wrapper.JDBCExecutorWrapper; import io.shardingsphere.proxy.config.RuleRegistry; import lombok.RequiredArgsConstructor; import java.sql.ResultSet; Loading @@ -57,18 +55,12 @@ public final class MemoryStrictlyExecuteEngine extends JDBCExecuteEngine { @Override public ExecuteResponse execute(final SQLRouteResult routeResult, final boolean isReturnGeneratedKeys) throws SQLException { Collection<ExecuteResponseUnit> executeResponseUnits; if (TransactionType.XA == RuleRegistry.getInstance().getTransactionType()) { Map<SQLExecutionUnit, Statement> statements = new HashMap<>(routeResult.getExecutionUnits().size(), 1); for (SQLExecutionUnit each : routeResult.getExecutionUnits()) { statements.put(each, getJdbcExecutorWrapper().createStatement(getBackendConnection().getConnection(each.getDataSource()), each.getSqlUnit().getSql(), isReturnGeneratedKeys)); } executeResponseUnits = BackendExecutorContext.getInstance().getExecuteEngine().execute( routeResult.getExecutionUnits(), new FirstTransactionExecuteCallback(isReturnGeneratedKeys), new XATransactionExecuteCallback(isReturnGeneratedKeys, statements)); } else { executeResponseUnits = BackendExecutorContext.getInstance().getExecuteEngine().execute( routeResult.getExecutionUnits(), new FirstTransactionExecuteCallback(isReturnGeneratedKeys), new LocalTransactionExecuteCallback(isReturnGeneratedKeys)); } Collection<ExecuteResponseUnit> executeResponseUnits = BackendExecutorContext.getInstance().getExecuteEngine().execute( routeResult.getExecutionUnits(), new FirstTransactionExecuteCallback(isReturnGeneratedKeys), new TransactionExecuteCallback(isReturnGeneratedKeys, statements)); ExecuteResponseUnit firstExecuteResponseUnit = executeResponseUnits.iterator().next(); return firstExecuteResponseUnit instanceof ExecuteQueryResponseUnit ? getExecuteQueryResponse((ExecuteQueryResponseUnit) firstExecuteResponseUnit, executeResponseUnits) : getExecuteUpdateResponse(executeResponseUnits); Loading Loading @@ -110,7 +102,7 @@ public final class MemoryStrictlyExecuteEngine extends JDBCExecuteEngine { } @RequiredArgsConstructor class XATransactionExecuteCallback implements ShardingExecuteCallback<SQLExecutionUnit, ExecuteResponseUnit> { class TransactionExecuteCallback implements ShardingExecuteCallback<SQLExecutionUnit, ExecuteResponseUnit> { private final boolean isReturnGeneratedKeys; Loading @@ -122,17 +114,4 @@ public final class MemoryStrictlyExecuteEngine extends JDBCExecuteEngine { return executeWithoutMetadata(statements.get(sqlExecutionUnit), actualSQL, isReturnGeneratedKeys); } } @RequiredArgsConstructor class LocalTransactionExecuteCallback implements ShardingExecuteCallback<SQLExecutionUnit, ExecuteResponseUnit> { private final boolean isReturnGeneratedKeys; @Override public ExecuteResponseUnit execute(final SQLExecutionUnit sqlExecutionUnit) throws SQLException { String actualSQL = sqlExecutionUnit.getSqlUnit().getSql(); Statement statement = getJdbcExecutorWrapper().createStatement(getBackendConnection().getConnection(sqlExecutionUnit.getDataSource()), actualSQL, isReturnGeneratedKeys); return executeWithoutMetadata(statement, actualSQL, isReturnGeneratedKeys); } } } Loading
sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/jdbc/execute/memory/ConnectionStrictlyExecuteEngine.java +6 −29 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package io.shardingsphere.proxy.backend.jdbc.execute.memory; import io.shardingsphere.core.constant.transaction.TransactionType; import io.shardingsphere.core.executor.ShardingGroupExecuteCallback; import io.shardingsphere.core.merger.QueryResult; import io.shardingsphere.core.routing.SQLRouteResult; Loading @@ -31,7 +30,6 @@ import io.shardingsphere.proxy.backend.jdbc.execute.response.ExecuteUpdateRespon import io.shardingsphere.proxy.backend.jdbc.execute.response.unit.ExecuteQueryResponseUnit; import io.shardingsphere.proxy.backend.jdbc.execute.response.unit.ExecuteResponseUnit; import io.shardingsphere.proxy.backend.jdbc.wrapper.JDBCExecutorWrapper; import io.shardingsphere.proxy.config.RuleRegistry; import lombok.RequiredArgsConstructor; import java.sql.Connection; Loading Loading @@ -59,18 +57,12 @@ public final class ConnectionStrictlyExecuteEngine extends JDBCExecuteEngine { @Override public ExecuteResponse execute(final SQLRouteResult routeResult, final boolean isReturnGeneratedKeys) throws SQLException { Map<String, Collection<SQLUnit>> sqlUnitGroups = routeResult.getSQLUnitGroups(); Collection<ExecuteResponseUnit> executeResponseUnits; if (TransactionType.XA == RuleRegistry.getInstance().getTransactionType()) { Map<String, Map<SQLUnit, Statement>> sqlUnitStatements = new HashMap<>(sqlUnitGroups.size(), 1); for (Entry<String, Collection<SQLUnit>> entry : sqlUnitGroups.entrySet()) { sqlUnitStatements.put(entry.getKey(), createSQLUnitStatement(entry.getKey(), entry.getValue(), isReturnGeneratedKeys)); } executeResponseUnits = BackendExecutorContext.getInstance().getExecuteEngine().groupExecute( sqlUnitGroups, new FirstTransactionGroupExecuteCallback(isReturnGeneratedKeys), new XATransactionGroupExecuteCallback(isReturnGeneratedKeys, sqlUnitStatements)); } else { executeResponseUnits = BackendExecutorContext.getInstance().getExecuteEngine().groupExecute( sqlUnitGroups, new FirstTransactionGroupExecuteCallback(isReturnGeneratedKeys), new LocalTransactionGroupExecuteCallback(isReturnGeneratedKeys)); } Collection<ExecuteResponseUnit> executeResponseUnits = BackendExecutorContext.getInstance().getExecuteEngine().groupExecute( sqlUnitGroups, new FirstTransactionGroupExecuteCallback(isReturnGeneratedKeys), new TransactionGroupExecuteCallback(isReturnGeneratedKeys, sqlUnitStatements)); return getExecuteQueryResponse(executeResponseUnits); } Loading Loading @@ -137,7 +129,7 @@ public final class ConnectionStrictlyExecuteEngine extends JDBCExecuteEngine { } @RequiredArgsConstructor class XATransactionGroupExecuteCallback implements ShardingGroupExecuteCallback<SQLUnit, ExecuteResponseUnit> { class TransactionGroupExecuteCallback implements ShardingGroupExecuteCallback<SQLUnit, ExecuteResponseUnit> { private final boolean isReturnGeneratedKeys; Loading @@ -152,19 +144,4 @@ public final class ConnectionStrictlyExecuteEngine extends JDBCExecuteEngine { return result; } } @RequiredArgsConstructor class LocalTransactionGroupExecuteCallback implements ShardingGroupExecuteCallback<SQLUnit, ExecuteResponseUnit> { private final boolean isReturnGeneratedKeys; @Override public Collection<ExecuteResponseUnit> execute(final String dataSourceName, final Collection<SQLUnit> sqlUnits) throws SQLException { Collection<ExecuteResponseUnit> result = new LinkedList<>(); for (Entry<SQLUnit, Statement> each : createSQLUnitStatement(dataSourceName, sqlUnits, isReturnGeneratedKeys).entrySet()) { result.add(executeWithoutMetadata(each.getValue(), each.getKey().getSql(), isReturnGeneratedKeys)); } return result; } } }
sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/jdbc/execute/stream/MemoryStrictlyExecuteEngine.java +6 −27 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package io.shardingsphere.proxy.backend.jdbc.execute.stream; import io.shardingsphere.core.constant.transaction.TransactionType; import io.shardingsphere.core.executor.ShardingExecuteCallback; import io.shardingsphere.core.merger.QueryResult; import io.shardingsphere.core.routing.SQLExecutionUnit; Loading @@ -31,7 +30,6 @@ import io.shardingsphere.proxy.backend.jdbc.execute.response.ExecuteUpdateRespon import io.shardingsphere.proxy.backend.jdbc.execute.response.unit.ExecuteQueryResponseUnit; import io.shardingsphere.proxy.backend.jdbc.execute.response.unit.ExecuteResponseUnit; import io.shardingsphere.proxy.backend.jdbc.wrapper.JDBCExecutorWrapper; import io.shardingsphere.proxy.config.RuleRegistry; import lombok.RequiredArgsConstructor; import java.sql.ResultSet; Loading @@ -57,18 +55,12 @@ public final class MemoryStrictlyExecuteEngine extends JDBCExecuteEngine { @Override public ExecuteResponse execute(final SQLRouteResult routeResult, final boolean isReturnGeneratedKeys) throws SQLException { Collection<ExecuteResponseUnit> executeResponseUnits; if (TransactionType.XA == RuleRegistry.getInstance().getTransactionType()) { Map<SQLExecutionUnit, Statement> statements = new HashMap<>(routeResult.getExecutionUnits().size(), 1); for (SQLExecutionUnit each : routeResult.getExecutionUnits()) { statements.put(each, getJdbcExecutorWrapper().createStatement(getBackendConnection().getConnection(each.getDataSource()), each.getSqlUnit().getSql(), isReturnGeneratedKeys)); } executeResponseUnits = BackendExecutorContext.getInstance().getExecuteEngine().execute( routeResult.getExecutionUnits(), new FirstTransactionExecuteCallback(isReturnGeneratedKeys), new XATransactionExecuteCallback(isReturnGeneratedKeys, statements)); } else { executeResponseUnits = BackendExecutorContext.getInstance().getExecuteEngine().execute( routeResult.getExecutionUnits(), new FirstTransactionExecuteCallback(isReturnGeneratedKeys), new LocalTransactionExecuteCallback(isReturnGeneratedKeys)); } Collection<ExecuteResponseUnit> executeResponseUnits = BackendExecutorContext.getInstance().getExecuteEngine().execute( routeResult.getExecutionUnits(), new FirstTransactionExecuteCallback(isReturnGeneratedKeys), new TransactionExecuteCallback(isReturnGeneratedKeys, statements)); ExecuteResponseUnit firstExecuteResponseUnit = executeResponseUnits.iterator().next(); return firstExecuteResponseUnit instanceof ExecuteQueryResponseUnit ? getExecuteQueryResponse((ExecuteQueryResponseUnit) firstExecuteResponseUnit, executeResponseUnits) : getExecuteUpdateResponse(executeResponseUnits); Loading Loading @@ -110,7 +102,7 @@ public final class MemoryStrictlyExecuteEngine extends JDBCExecuteEngine { } @RequiredArgsConstructor class XATransactionExecuteCallback implements ShardingExecuteCallback<SQLExecutionUnit, ExecuteResponseUnit> { class TransactionExecuteCallback implements ShardingExecuteCallback<SQLExecutionUnit, ExecuteResponseUnit> { private final boolean isReturnGeneratedKeys; Loading @@ -122,17 +114,4 @@ public final class MemoryStrictlyExecuteEngine extends JDBCExecuteEngine { return executeWithoutMetadata(statements.get(sqlExecutionUnit), actualSQL, isReturnGeneratedKeys); } } @RequiredArgsConstructor class LocalTransactionExecuteCallback implements ShardingExecuteCallback<SQLExecutionUnit, ExecuteResponseUnit> { private final boolean isReturnGeneratedKeys; @Override public ExecuteResponseUnit execute(final SQLExecutionUnit sqlExecutionUnit) throws SQLException { String actualSQL = sqlExecutionUnit.getSqlUnit().getSql(); Statement statement = getJdbcExecutorWrapper().createStatement(getBackendConnection().getConnection(sqlExecutionUnit.getDataSource()), actualSQL, isReturnGeneratedKeys); return executeWithoutMetadata(statement, actualSQL, isReturnGeneratedKeys); } } }