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 464e134a4a5 Refactor DriverExecutorFacade (#31613)
464e134a4a5 is described below
commit 464e134a4a5a7dfb56c4f036a8594b96b5dc09ed
Author: Liang Zhang <[email protected]>
AuthorDate: Fri Jun 7 00:44:00 2024 +0800
Refactor DriverExecutorFacade (#31613)
---
.../shardingsphere/driver/executor/DriverExecutorFacade.java | 10 +++++-----
.../driver/executor/batch/DriverExecuteBatchExecutor.java | 7 +++----
.../jdbc/core/statement/ShardingSpherePreparedStatement.java | 4 ++--
.../driver/jdbc/core/statement/ShardingSphereStatement.java | 4 +++-
4 files changed, 13 insertions(+), 12 deletions(-)
diff --git
a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/DriverExecutorFacade.java
b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/DriverExecutorFacade.java
index f71b20303c5..342bd637504 100644
---
a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/DriverExecutorFacade.java
+++
b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/DriverExecutorFacade.java
@@ -70,12 +70,12 @@ public final class DriverExecutorFacade implements
AutoCloseable {
private final DriverExecuteExecutor executeExecutor;
- public DriverExecutorFacade(final ShardingSphereConnection connection,
final StatementOption statementOption, final StatementManager statementManager,
final String jdbcDriverType) {
+ public DriverExecutorFacade(final ShardingSphereConnection connection,
final StatementOption statementOption, final StatementManager statementManager,
+ final JDBCExecutor jdbcExecutor, final String
jdbcDriverType) {
this.connection = connection;
this.statementOption = statementOption;
this.statementManager = statementManager;
this.jdbcDriverType = jdbcDriverType;
- JDBCExecutor jdbcExecutor = new
JDBCExecutor(connection.getContextManager().getExecutorEngine(),
connection.getDatabaseConnectionManager().getConnectionContext());
DriverJDBCExecutor regularExecutor = new
DriverJDBCExecutor(connection.getDatabaseName(),
connection.getContextManager(), jdbcExecutor);
RawExecutor rawExecutor = new
RawExecutor(connection.getContextManager().getExecutorEngine(),
connection.getDatabaseConnectionManager().getConnectionContext());
trafficExecutor = new TrafficExecutor();
@@ -111,7 +111,7 @@ public final class DriverExecutorFacade implements
AutoCloseable {
*
* @param database database
* @param queryContext query context
- * @param updateCallback statement execute update callback
+ * @param executeUpdateCallback statement execute update callback
* @param replayCallback statement replay callback
* @param addCallback statement add callback
* @return updated row count
@@ -119,9 +119,9 @@ public final class DriverExecutorFacade implements
AutoCloseable {
*/
@SuppressWarnings("rawtypes")
public int executeUpdate(final ShardingSphereDatabase database, final
QueryContext queryContext,
- final StatementExecuteUpdateCallback
updateCallback, final StatementAddCallback addCallback, final
StatementReplayCallback replayCallback) throws SQLException {
+ final StatementExecuteUpdateCallback
executeUpdateCallback, final StatementAddCallback addCallback, final
StatementReplayCallback replayCallback) throws SQLException {
DriverExecutionPrepareEngine<JDBCExecutionUnit, Connection>
prepareEngine = createDriverExecutionPrepareEngine(database, jdbcDriverType);
- return updateExecutor.executeUpdate(database, queryContext,
prepareEngine, updateCallback, addCallback, replayCallback);
+ return updateExecutor.executeUpdate(database, queryContext,
prepareEngine, executeUpdateCallback, addCallback, replayCallback);
}
/**
diff --git
a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/batch/DriverExecuteBatchExecutor.java
b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/batch/DriverExecuteBatchExecutor.java
index ec92a9f60da..920b2ec16db 100644
---
a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/batch/DriverExecuteBatchExecutor.java
+++
b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/batch/DriverExecuteBatchExecutor.java
@@ -72,8 +72,8 @@ public final class DriverExecuteBatchExecutor {
private ExecutionContext executionContext;
- public DriverExecuteBatchExecutor(final ShardingSphereConnection
connection, final ShardingSphereMetaData metaData, final ShardingSphereDatabase
database, final JDBCExecutor jdbcExecutor,
- final StatementOption statementOption,
final StatementManager statementManager) {
+ public DriverExecuteBatchExecutor(final ShardingSphereConnection
connection, final ShardingSphereMetaData metaData, final StatementOption
statementOption, final StatementManager statementManager,
+ final ShardingSphereDatabase database,
final JDBCExecutor jdbcExecutor) {
this.connection = connection;
this.metaData = metaData;
batchPreparedStatementExecutor = new
BatchPreparedStatementExecutor(database, jdbcExecutor,
connection.getProcessId());
@@ -130,8 +130,7 @@ public final class DriverExecuteBatchExecutor {
return new int[0];
}
// TODO add raw SQL executor
- return doExecuteBatch(database, batchPreparedStatementExecutor,
- sqlStatementContext, generatedValues, statementOption,
executionContext, addCallback, replayCallback, generatedKeyCallback);
+ return doExecuteBatch(database, batchPreparedStatementExecutor,
sqlStatementContext, generatedValues, statementOption, executionContext,
addCallback, replayCallback, generatedKeyCallback);
}
@SuppressWarnings({"rawtypes", "unchecked"})
diff --git
a/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
b/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
index 07b61fe5c36..20a498f8f44 100644
---
a/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
+++
b/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
@@ -162,8 +162,8 @@ public final class ShardingSpherePreparedStatement extends
AbstractPreparedState
ShardingSphereDatabase database = metaData.getDatabase(databaseName);
statementManager = new StatementManager();
JDBCExecutor jdbcExecutor = new
JDBCExecutor(connection.getContextManager().getExecutorEngine(),
connection.getDatabaseConnectionManager().getConnectionContext());
- driverExecutorFacade = new DriverExecutorFacade(connection,
statementOption, statementManager, JDBCDriverType.PREPARED_STATEMENT);
- executeBatchExecutor = new DriverExecuteBatchExecutor(connection,
metaData, database, jdbcExecutor, statementOption, statementManager);
+ driverExecutorFacade = new DriverExecutorFacade(connection,
statementOption, statementManager, jdbcExecutor,
JDBCDriverType.PREPARED_STATEMENT);
+ executeBatchExecutor = new DriverExecuteBatchExecutor(connection,
metaData, statementOption, statementManager, database, jdbcExecutor);
statementsCacheable =
isStatementsCacheable(database.getRuleMetaData());
selectContainsEnhancedTable = sqlStatementContext instanceof
SelectStatementContext && ((SelectStatementContext)
sqlStatementContext).isContainsEnhancedTable();
}
diff --git
a/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
b/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
index 067a0fe6dd2..d0035f2c255 100644
---
a/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
+++
b/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
@@ -39,6 +39,7 @@ import
org.apache.shardingsphere.infra.database.core.spi.DatabaseTypedSPILoader;
import
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
import
org.apache.shardingsphere.infra.exception.dialect.SQLExceptionTransformEngine;
import
org.apache.shardingsphere.infra.exception.kernel.syntax.EmptySQLException;
+import
org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutor;
import
org.apache.shardingsphere.infra.executor.sql.execute.result.query.QueryResult;
import
org.apache.shardingsphere.infra.executor.sql.execute.result.query.impl.driver.jdbc.type.stream.JDBCStreamQueryResult;
import
org.apache.shardingsphere.infra.executor.sql.prepare.driver.jdbc.JDBCDriverType;
@@ -110,7 +111,8 @@ public final class ShardingSphereStatement extends
AbstractStatementAdapter {
statements = new LinkedList<>();
statementOption = new StatementOption(resultSetType,
resultSetConcurrency, resultSetHoldability);
statementManager = new StatementManager();
- driverExecutorFacade = new DriverExecutorFacade(connection,
statementOption, statementManager, JDBCDriverType.STATEMENT);
+ JDBCExecutor jdbcExecutor = new
JDBCExecutor(connection.getContextManager().getExecutorEngine(),
connection.getDatabaseConnectionManager().getConnectionContext());
+ driverExecutorFacade = new DriverExecutorFacade(connection,
statementOption, statementManager, jdbcExecutor, JDBCDriverType.STATEMENT);
batchStatementExecutor = new BatchStatementExecutor(this);
databaseName = connection.getDatabaseName();
}