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 b8d09e79833 Adjust SQLAuditEngine.audit on DriverExecuteUpdateExecutor 
and DriverExecuteExecutor (#31641)
b8d09e79833 is described below

commit b8d09e798339d32bb9dd302fc93b5cd6e272eb73
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Jun 9 18:00:15 2024 +0800

    Adjust SQLAuditEngine.audit on DriverExecuteUpdateExecutor and 
DriverExecuteExecutor (#31641)
    
    * Adjust SQLAuditEngine.audit on DriverExecuteUpdateExecutor
    
    * Adjust SQLAuditEngine.audit on DriverExecuteExecutor
---
 .../driver/executor/engine/DriverExecuteExecutor.java   | 17 ++++++-----------
 .../executor/engine/DriverExecuteUpdateExecutor.java    | 14 +++++---------
 2 files changed, 11 insertions(+), 20 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 b019c9b9067..a9d827c205e 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
@@ -18,13 +18,13 @@
 package org.apache.shardingsphere.driver.executor.engine;
 
 import lombok.RequiredArgsConstructor;
-import 
org.apache.shardingsphere.driver.executor.callback.execute.StatementExecuteCallback;
+import 
org.apache.shardingsphere.driver.executor.callback.add.StatementAddCallback;
 import 
org.apache.shardingsphere.driver.executor.callback.execute.ExecuteQueryCallback;
+import 
org.apache.shardingsphere.driver.executor.callback.execute.StatementExecuteCallback;
 import 
org.apache.shardingsphere.driver.executor.callback.execute.impl.PreparedStatementExecuteQueryCallback;
 import 
org.apache.shardingsphere.driver.executor.callback.execute.impl.StatementExecuteQueryCallback;
-import 
org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection;
-import 
org.apache.shardingsphere.driver.executor.callback.add.StatementAddCallback;
 import 
org.apache.shardingsphere.driver.executor.callback.replay.StatementReplayCallback;
+import 
org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection;
 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;
@@ -50,7 +50,6 @@ import 
org.apache.shardingsphere.infra.executor.sql.prepare.raw.RawExecutionPrep
 import org.apache.shardingsphere.infra.executor.sql.process.ProcessEngine;
 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.metadata.user.Grantee;
 import org.apache.shardingsphere.infra.route.context.RouteUnit;
 import 
org.apache.shardingsphere.infra.rule.attribute.raw.RawExecutionRuleAttribute;
@@ -113,6 +112,7 @@ 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;
@@ -124,7 +124,8 @@ public final class DriverExecuteExecutor {
                     prepareEngine, getExecuteQueryCallback(database, 
queryContext, prepareEngine.getType()), new SQLFederationContext(false, 
queryContext, metaData, connection.getProcessId()));
             return null != resultSet;
         }
-        ExecutionContext executionContext = createExecutionContext(database, 
queryContext);
+        ExecutionContext executionContext = new 
KernelProcessor().generateExecutionContext(
+                queryContext, database, metaData.getGlobalRuleMetaData(), 
metaData.getProps(), 
connection.getDatabaseConnectionManager().getConnectionContext());
         if (hasRawExecutionRule(database)) {
             Collection<ExecuteResult> results = 
rawExecutor.execute(createRawExecutionGroupContext(database, executionContext), 
queryContext, new RawSQLExecutorCallback());
             return results.iterator().next() instanceof QueryResult;
@@ -162,12 +163,6 @@ public final class DriverExecuteExecutor {
         return result;
     }
     
-    private ExecutionContext createExecutionContext(final 
ShardingSphereDatabase database, final QueryContext queryContext) {
-        RuleMetaData globalRuleMetaData = metaData.getGlobalRuleMetaData();
-        SQLAuditEngine.audit(queryContext, globalRuleMetaData, database);
-        return new KernelProcessor().generateExecutionContext(queryContext, 
database, globalRuleMetaData, metaData.getProps(), 
connection.getDatabaseConnectionManager().getConnectionContext());
-    }
-    
     private ExecutionGroupContext<RawSQLExecutionUnit> 
createRawExecutionGroupContext(final ShardingSphereDatabase database, final 
ExecutionContext executionContext) throws SQLException {
         int maxConnectionsSizePerQuery = 
metaData.getProps().<Integer>getValue(ConfigurationPropertyKey.MAX_CONNECTIONS_SIZE_PER_QUERY);
         return new RawExecutionPrepareEngine(maxConnectionsSizePerQuery, 
database.getRuleMetaData().getRules()).prepare(
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 54f3332af9c..f1519998a7d 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
@@ -18,10 +18,10 @@
 package org.apache.shardingsphere.driver.executor.engine;
 
 import lombok.RequiredArgsConstructor;
-import 
org.apache.shardingsphere.driver.executor.callback.execute.StatementExecuteUpdateCallback;
-import 
org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection;
 import 
org.apache.shardingsphere.driver.executor.callback.add.StatementAddCallback;
+import 
org.apache.shardingsphere.driver.executor.callback.execute.StatementExecuteUpdateCallback;
 import 
org.apache.shardingsphere.driver.executor.callback.replay.StatementReplayCallback;
+import 
org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection;
 import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
 import org.apache.shardingsphere.infra.binder.context.type.TableAvailable;
 import org.apache.shardingsphere.infra.config.props.ConfigurationPropertyKey;
@@ -106,11 +106,13 @@ 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);
         }
-        ExecutionContext executionContext = createExecutionContext(database, 
queryContext);
+        ExecutionContext executionContext = new 
KernelProcessor().generateExecutionContext(
+                queryContext, database, metaData.getGlobalRuleMetaData(), 
metaData.getProps(), 
connection.getDatabaseConnectionManager().getConnectionContext());
         return hasRawExecutionRule(database)
                 ? 
accumulate(rawExecutor.execute(createRawExecutionGroupContext(database, 
executionContext), queryContext, new RawSQLExecutorCallback()))
                 : executeUpdate(database, updateCallback, 
queryContext.getSqlStatementContext(), executionContext, prepareEngine, 
isNeedImplicitCommitTransaction(
@@ -147,12 +149,6 @@ public final class DriverExecuteUpdateExecutor {
         return result;
     }
     
-    private ExecutionContext createExecutionContext(final 
ShardingSphereDatabase database, final QueryContext queryContext) {
-        SQLAuditEngine.audit(queryContext, metaData.getGlobalRuleMetaData(), 
database);
-        return new KernelProcessor().generateExecutionContext(
-                queryContext, database, metaData.getGlobalRuleMetaData(), 
metaData.getProps(), 
connection.getDatabaseConnectionManager().getConnectionContext());
-    }
-    
     private ExecutionGroupContext<RawSQLExecutionUnit> 
createRawExecutionGroupContext(final ShardingSphereDatabase database, final 
ExecutionContext executionContext) throws SQLException {
         int maxConnectionsSizePerQuery = 
metaData.getProps().<Integer>getValue(ConfigurationPropertyKey.MAX_CONNECTIONS_SIZE_PER_QUERY);
         return new RawExecutionPrepareEngine(maxConnectionsSizePerQuery, 
database.getRuleMetaData().getRules()).prepare(

Reply via email to