This is an automated email from the ASF dual-hosted git repository.
zhangliang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 7c549bc734c Refactor DriverExecutor (#31444)
7c549bc734c is described below
commit 7c549bc734c6a9a4d51a8b3af6655ba1d00ffd0a
Author: Liang Zhang <[email protected]>
AuthorDate: Thu May 30 11:06:28 2024 +0800
Refactor DriverExecutor (#31444)
---
.../apache/shardingsphere/driver/executor/DriverExecutor.java | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git
a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/DriverExecutor.java
b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/DriverExecutor.java
index 04a7a4e0108..09c30d141a8 100644
---
a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/DriverExecutor.java
+++
b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/DriverExecutor.java
@@ -127,12 +127,14 @@ public final class DriverExecutor implements
AutoCloseable {
* @return result set
* @throws SQLException SQL exception
*/
+ @SuppressWarnings("rawtypes")
public ResultSet executeAdvanceQuery(final ShardingSphereMetaData
metaData, final ShardingSphereDatabase database, final QueryContext
queryContext,
final
DriverExecutionPrepareEngine<JDBCExecutionUnit, Connection> prepareEngine,
final Statement statement,
final Map<String, Integer>
columnLabelAndIndexMap, final StatementReplayCallback statementReplayCallback)
throws SQLException {
Optional<String> trafficInstanceId =
connection.getTrafficInstanceId(metaData.getGlobalRuleMetaData().getSingleRule(TrafficRule.class),
queryContext);
if (trafficInstanceId.isPresent()) {
- return trafficExecutor.execute(connection.getProcessId(),
database.getName(), trafficInstanceId.get(), queryContext, prepareEngine,
getTrafficExecutorCallback(prepareEngine));
+ return trafficExecutor.execute(
+ connection.getProcessId(), database.getName(),
trafficInstanceId.get(), queryContext, prepareEngine,
getTrafficExecuteQueryCallback(prepareEngine.getType()));
}
if (sqlFederationEngine.decide(queryContext.getSqlStatementContext(),
queryContext.getParameters(), database, metaData.getGlobalRuleMetaData())) {
return sqlFederationEngine.executeQuery(
@@ -141,8 +143,8 @@ public final class DriverExecutor implements AutoCloseable {
return doExecuteQuery(metaData, database, queryContext, prepareEngine,
statement, columnLabelAndIndexMap, statementReplayCallback);
}
- private TrafficExecutorCallback<ResultSet>
getTrafficExecutorCallback(final
DriverExecutionPrepareEngine<JDBCExecutionUnit, Connection> prepareEngine) {
- return JDBCDriverType.STATEMENT.equals(prepareEngine.getType()) ?
Statement::executeQuery : ((statement, sql) -> ((PreparedStatement)
statement).executeQuery());
+ private TrafficExecutorCallback<ResultSet>
getTrafficExecuteQueryCallback(final String jdbcDriverType) {
+ return JDBCDriverType.STATEMENT.equals(jdbcDriverType) ?
Statement::executeQuery : ((statement, sql) -> ((PreparedStatement)
statement).executeQuery());
}
private ExecuteQueryCallback getExecuteQueryCallback(final
ShardingSphereDatabase database, final QueryContext queryContext, final String
jdbcDriverType) {
@@ -153,6 +155,7 @@ public final class DriverExecutor implements AutoCloseable {
queryContext.getSqlStatementContext().getSqlStatement(),
SQLExecutorExceptionHandler.isExceptionThrown());
}
+ @SuppressWarnings("rawtypes")
private ShardingSphereResultSet doExecuteQuery(final
ShardingSphereMetaData metaData, final ShardingSphereDatabase database, final
QueryContext queryContext,
final
DriverExecutionPrepareEngine<JDBCExecutionUnit, Connection> prepareEngine,
final Statement statement,
final Map<String, Integer>
columnLabelAndIndexMap, final StatementReplayCallback statementReplayCallback)
throws SQLException {
@@ -167,6 +170,7 @@ public final class DriverExecutor implements AutoCloseable {
: columnLabelAndIndexMap);
}
+ @SuppressWarnings({"rawtypes", "unchecked"})
private List<QueryResult> executeQuery0(final ShardingSphereMetaData
metaData, final ShardingSphereDatabase database, final QueryContext
queryContext,
final
DriverExecutionPrepareEngine<JDBCExecutionUnit, Connection> prepareEngine,
final StatementReplayCallback
statementReplayCallback) throws SQLException {