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 4f8556576d4 Refactor ProxyBackendHandlerFactory (#36905)
4f8556576d4 is described below
commit 4f8556576d43d3bd563ca9344ccc21c139657602
Author: Liang Zhang <[email protected]>
AuthorDate: Tue Oct 21 12:15:54 2025 +0800
Refactor ProxyBackendHandlerFactory (#36905)
---
.../proxy/backend/handler/ProxyBackendHandlerFactory.java | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/ProxyBackendHandlerFactory.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/ProxyBackendHandlerFactory.java
index 18c81f2541c..60501ae77ec 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/ProxyBackendHandlerFactory.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/ProxyBackendHandlerFactory.java
@@ -143,10 +143,9 @@ public final class ProxyBackendHandlerFactory {
String databaseName =
sqlStatementContext.getTablesContext().getDatabaseName().isPresent()
?
sqlStatementContext.getTablesContext().getDatabaseName().get()
: connectionSession.getUsedDatabaseName();
- if (null == databaseName) {
- return
DatabaseProxyBackendHandlerFactory.newInstance(queryContext, connectionSession,
preferPreparedStatement);
+ if (null != databaseName) {
+ checkSQLExecution(queryContext,
connectionSession.getConnectionContext().getGrantee(), databaseName);
}
- checkSQLExecution(queryContext,
connectionSession.getConnectionContext().getGrantee(), databaseName);
return DatabaseProxyBackendHandlerFactory.newInstance(queryContext,
connectionSession, preferPreparedStatement);
}
@@ -199,8 +198,6 @@ public final class ProxyBackendHandlerFactory {
private static void checkSQLExecution(final QueryContext queryContext,
final Grantee grantee, final String databaseName) {
ShardingSphereDatabase database =
queryContext.getMetaData().getDatabase(databaseName);
- for (SQLExecutionChecker each :
ShardingSphereServiceLoader.getServiceInstances(SQLExecutionChecker.class)) {
- each.check(grantee, queryContext, database);
- }
+
ShardingSphereServiceLoader.getServiceInstances(SQLExecutionChecker.class).forEach(each
-> each.check(grantee, queryContext, database));
}
}