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 1efaa7e2da4 Refactor DriverExecutorFacade (#31642)
1efaa7e2da4 is described below

commit 1efaa7e2da457e7cbd87b0f983d7b7c80375cf2e
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Jun 9 18:13:44 2024 +0800

    Refactor DriverExecutorFacade (#31642)
---
 .../driver/executor/engine/DriverExecuteExecutor.java       |  2 --
 .../driver/executor/engine/DriverExecuteQueryExecutor.java  |  8 ++------
 .../driver/executor/engine/DriverExecuteUpdateExecutor.java |  2 --
 .../driver/executor/engine/DriverExecutorFacade.java        | 13 +++++++------
 4 files changed, 9 insertions(+), 16 deletions(-)

diff --git 
a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/DriverExecuteExecutor.java
 
b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/DriverExecuteExecutor.java
index a9d827c205e..3d666aea4a9 100644
--- 
a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/DriverExecuteExecutor.java
+++ 
b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/DriverExecuteExecutor.java
@@ -29,7 +29,6 @@ import 
org.apache.shardingsphere.infra.config.props.ConfigurationPropertyKey;
 import org.apache.shardingsphere.infra.connection.kernel.KernelProcessor;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
 import 
org.apache.shardingsphere.infra.exception.dialect.SQLExceptionTransformEngine;
-import org.apache.shardingsphere.infra.executor.audit.SQLAuditEngine;
 import org.apache.shardingsphere.infra.executor.kernel.model.ExecutionGroup;
 import 
org.apache.shardingsphere.infra.executor.kernel.model.ExecutionGroupContext;
 import 
org.apache.shardingsphere.infra.executor.kernel.model.ExecutionGroupReportContext;
@@ -112,7 +111,6 @@ public final class DriverExecuteExecutor {
     @SuppressWarnings("rawtypes")
     public boolean execute(final ShardingSphereDatabase database, final 
QueryContext queryContext, final 
DriverExecutionPrepareEngine<JDBCExecutionUnit, Connection> prepareEngine,
                            final StatementExecuteCallback executeCallback, 
final StatementAddCallback addCallback, final StatementReplayCallback 
replayCallback) throws SQLException {
-        SQLAuditEngine.audit(queryContext, metaData.getGlobalRuleMetaData(), 
database);
         Optional<String> trafficInstanceId = 
connection.getTrafficInstanceId(metaData.getGlobalRuleMetaData().getSingleRule(TrafficRule.class),
 queryContext);
         if (trafficInstanceId.isPresent()) {
             executeType = ExecuteType.TRAFFIC;
diff --git 
a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/DriverExecuteQueryExecutor.java
 
b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/DriverExecuteQueryExecutor.java
index d806a77b27f..c0d1bf9e555 100644
--- 
a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/DriverExecuteQueryExecutor.java
+++ 
b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/DriverExecuteQueryExecutor.java
@@ -22,7 +22,6 @@ import 
org.apache.shardingsphere.driver.executor.callback.execute.ExecuteQueryCa
 import 
org.apache.shardingsphere.driver.executor.callback.replay.StatementReplayCallback;
 import 
org.apache.shardingsphere.driver.executor.engine.pushdown.DriverPushDownExecuteQueryExecutor;
 import 
org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection;
-import org.apache.shardingsphere.infra.executor.audit.SQLAuditEngine;
 import 
org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutionUnit;
 import 
org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutor;
 import 
org.apache.shardingsphere.infra.executor.sql.execute.engine.raw.RawExecutor;
@@ -30,7 +29,6 @@ import 
org.apache.shardingsphere.infra.executor.sql.prepare.driver.DriverExecuti
 import 
org.apache.shardingsphere.infra.executor.sql.prepare.driver.jdbc.JDBCDriverType;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
-import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
 import org.apache.shardingsphere.infra.session.query.QueryContext;
 import org.apache.shardingsphere.sqlfederation.engine.SQLFederationEngine;
 import 
org.apache.shardingsphere.sqlfederation.executor.context.SQLFederationContext;
@@ -87,14 +85,12 @@ public final class DriverExecuteQueryExecutor {
     public ResultSet executeQuery(final ShardingSphereDatabase database, final 
QueryContext queryContext,
                                   final 
DriverExecutionPrepareEngine<JDBCExecutionUnit, Connection> prepareEngine, 
final Statement statement, final Map<String, Integer> columnLabelAndIndexMap,
                                   final StatementAddCallback addCallback, 
final StatementReplayCallback replayCallback) throws SQLException {
-        RuleMetaData globalRuleMetaData = metaData.getGlobalRuleMetaData();
-        SQLAuditEngine.audit(queryContext, globalRuleMetaData, database);
-        Optional<String> trafficInstanceId = 
connection.getTrafficInstanceId(globalRuleMetaData.getSingleRule(TrafficRule.class),
 queryContext);
+        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, 
getTrafficExecuteQueryCallback(prepareEngine.getType()));
         }
-        if (sqlFederationEngine.decide(queryContext.getSqlStatementContext(), 
queryContext.getParameters(), database, globalRuleMetaData)) {
+        if (sqlFederationEngine.decide(queryContext.getSqlStatementContext(), 
queryContext.getParameters(), database, metaData.getGlobalRuleMetaData())) {
             return sqlFederationEngine.executeQuery(prepareEngine,
                     new 
ExecuteQueryCallbackFactory(prepareEngine.getType()).newInstance(database, 
queryContext), new SQLFederationContext(false, queryContext, metaData, 
connection.getProcessId()));
         }
diff --git 
a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/DriverExecuteUpdateExecutor.java
 
b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/DriverExecuteUpdateExecutor.java
index f1519998a7d..0ab5cbf1bfe 100644
--- 
a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/DriverExecuteUpdateExecutor.java
+++ 
b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/DriverExecuteUpdateExecutor.java
@@ -28,7 +28,6 @@ import 
org.apache.shardingsphere.infra.config.props.ConfigurationPropertyKey;
 import org.apache.shardingsphere.infra.connection.kernel.KernelProcessor;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
 import 
org.apache.shardingsphere.infra.exception.dialect.SQLExceptionTransformEngine;
-import org.apache.shardingsphere.infra.executor.audit.SQLAuditEngine;
 import org.apache.shardingsphere.infra.executor.kernel.model.ExecutionGroup;
 import 
org.apache.shardingsphere.infra.executor.kernel.model.ExecutionGroupContext;
 import 
org.apache.shardingsphere.infra.executor.kernel.model.ExecutionGroupReportContext;
@@ -106,7 +105,6 @@ public final class DriverExecuteUpdateExecutor {
     @SuppressWarnings("rawtypes")
     public int executeUpdate(final ShardingSphereDatabase database, final 
QueryContext queryContext, final 
DriverExecutionPrepareEngine<JDBCExecutionUnit, Connection> prepareEngine,
                              final StatementExecuteUpdateCallback 
updateCallback, final StatementAddCallback addCallback, final 
StatementReplayCallback replayCallback) throws SQLException {
-        SQLAuditEngine.audit(queryContext, metaData.getGlobalRuleMetaData(), 
database);
         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, 
updateCallback::executeUpdate);
diff --git 
a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/DriverExecutorFacade.java
 
b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/DriverExecutorFacade.java
index 13f17d82c00..99bb49f915c 100644
--- 
a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/DriverExecutorFacade.java
+++ 
b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/DriverExecutorFacade.java
@@ -25,6 +25,7 @@ import 
org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConne
 import org.apache.shardingsphere.driver.jdbc.core.statement.StatementManager;
 import org.apache.shardingsphere.infra.config.props.ConfigurationPropertyKey;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeRegistry;
+import org.apache.shardingsphere.infra.executor.audit.SQLAuditEngine;
 import 
org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutionUnit;
 import 
org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutor;
 import 
org.apache.shardingsphere.infra.executor.sql.execute.engine.raw.RawExecutor;
@@ -97,8 +98,8 @@ public final class DriverExecutorFacade implements 
AutoCloseable {
     @SuppressWarnings("rawtypes")
     public ResultSet executeQuery(final ShardingSphereDatabase database, final 
QueryContext queryContext, final Statement statement, final Map<String, 
Integer> columnLabelAndIndexMap,
                                   final StatementAddCallback addCallback, 
final StatementReplayCallback replayCallback) throws SQLException {
-        DriverExecutionPrepareEngine<JDBCExecutionUnit, Connection> 
prepareEngine = createDriverExecutionPrepareEngine(database, jdbcDriverType);
-        return queryExecutor.executeQuery(database, queryContext, 
prepareEngine, statement, columnLabelAndIndexMap, addCallback, replayCallback);
+        SQLAuditEngine.audit(queryContext, 
connection.getContextManager().getMetaDataContexts().getMetaData().getGlobalRuleMetaData(),
 database);
+        return queryExecutor.executeQuery(database, queryContext, 
createDriverExecutionPrepareEngine(database, jdbcDriverType), statement, 
columnLabelAndIndexMap, addCallback, replayCallback);
     }
     
     /**
@@ -115,8 +116,8 @@ public final class DriverExecutorFacade implements 
AutoCloseable {
     @SuppressWarnings("rawtypes")
     public int executeUpdate(final ShardingSphereDatabase database, final 
QueryContext queryContext,
                              final StatementExecuteUpdateCallback 
executeUpdateCallback, final StatementAddCallback addCallback, final 
StatementReplayCallback replayCallback) throws SQLException {
-        DriverExecutionPrepareEngine<JDBCExecutionUnit, Connection> 
prepareEngine = createDriverExecutionPrepareEngine(database, jdbcDriverType);
-        return updateExecutor.executeUpdate(database, queryContext, 
prepareEngine, executeUpdateCallback, addCallback, replayCallback);
+        SQLAuditEngine.audit(queryContext, 
connection.getContextManager().getMetaDataContexts().getMetaData().getGlobalRuleMetaData(),
 database);
+        return updateExecutor.executeUpdate(database, queryContext, 
createDriverExecutionPrepareEngine(database, jdbcDriverType), 
executeUpdateCallback, addCallback, replayCallback);
     }
     
     /**
@@ -133,8 +134,8 @@ public final class DriverExecutorFacade implements 
AutoCloseable {
     @SuppressWarnings("rawtypes")
     public boolean execute(final ShardingSphereDatabase database, final 
QueryContext queryContext,
                            final StatementExecuteCallback executeCallback, 
final StatementAddCallback addCallback, final StatementReplayCallback 
replayCallback) throws SQLException {
-        DriverExecutionPrepareEngine<JDBCExecutionUnit, Connection> 
prepareEngine = createDriverExecutionPrepareEngine(database, jdbcDriverType);
-        return executeExecutor.execute(database, queryContext, prepareEngine, 
executeCallback, addCallback, replayCallback);
+        SQLAuditEngine.audit(queryContext, 
connection.getContextManager().getMetaDataContexts().getMetaData().getGlobalRuleMetaData(),
 database);
+        return executeExecutor.execute(database, queryContext, 
createDriverExecutionPrepareEngine(database, jdbcDriverType), executeCallback, 
addCallback, replayCallback);
     }
     
     private DriverExecutionPrepareEngine<JDBCExecutionUnit, Connection> 
createDriverExecutionPrepareEngine(final ShardingSphereDatabase database, final 
String jdbcDriverType) {

Reply via email to