You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by ji...@apache.org on 2022/11/01 10:26:10 UTC
[shardingsphere] branch master updated: Fix parameters are missed when checking SQL (#21887)
This is an automated email from the ASF dual-hosted git repository.
jianglongtao 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 995152bc5fc Fix parameters are missed when checking SQL (#21887)
995152bc5fc is described below
commit 995152bc5fca06998463c9a7c92e4dc3976c1ca1
Author: 吴伟杰 <wu...@apache.org>
AuthorDate: Tue Nov 1 18:25:57 2022 +0800
Fix parameters are missed when checking SQL (#21887)
---
.../proxy/backend/handler/ProxyBackendHandlerFactory.java | 2 +-
.../query/binary/execute/ReactiveMySQLComStmtExecuteExecutor.java | 3 +--
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/ProxyBackendHandlerFactory.java b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/ProxyBackendHandlerFactory.java
index 6fe83c7ef70..124d65915e8 100644
--- a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/ProxyBackendHandlerFactory.java
+++ b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/ProxyBackendHandlerFactory.java
@@ -152,7 +152,7 @@ public final class ProxyBackendHandlerFactory {
String databaseName = sqlStatementContext.getTablesContext().getDatabaseName().isPresent()
? sqlStatementContext.getTablesContext().getDatabaseName().get()
: connectionSession.getDatabaseName();
- SQLCheckEngine.check(sqlStatementContext, Collections.emptyList(),
+ SQLCheckEngine.check(sqlStatementContext, queryContext.getParameters(),
getRules(databaseName), databaseName, ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabases(), connectionSession.getGrantee());
backendHandler = DatabaseAdminBackendHandlerFactory.newInstance(databaseType, sqlStatementContext, connectionSession);
return backendHandler.orElseGet(() -> DatabaseBackendHandlerFactory.newInstance(queryContext, connectionSession, preferPreparedStatement));
diff --git a/proxy/frontend/reactive-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/reactive/mysql/command/query/binary/execute/ReactiveMySQLComStmtExecuteExecutor.java b/proxy/frontend/reactive-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/reactive/mysql/command/query/binary/execute/ReactiveMySQLComStmtExecuteExecutor.java
index 7c3b3da277f..ad7c6067fa6 100644
--- a/proxy/frontend/reactive-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/reactive/mysql/command/query/binary/execute/ReactiveMySQLComStmtExecuteExecutor.java
+++ b/proxy/frontend/reactive-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/reactive/mysql/command/query/binary/execute/ReactiveMySQLComStmtExecuteExecutor.java
@@ -59,7 +59,6 @@ import org.apache.shardingsphere.sql.parser.sql.common.statement.tcl.TCLStatemen
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
@@ -97,7 +96,7 @@ public final class ReactiveMySQLComStmtExecuteExecutor implements ReactiveComman
SQLStatement sqlStatement = preparedStatement.getSqlStatement();
String databaseName = connectionSession.getDatabaseName();
MetaDataContexts metaDataContexts = ProxyContext.getInstance().getContextManager().getMetaDataContexts();
- SQLCheckEngine.check(sqlStatementContext, Collections.emptyList(), getRules(databaseName), databaseName, metaDataContexts.getMetaData().getDatabases(), connectionSession.getGrantee());
+ SQLCheckEngine.check(sqlStatementContext, parameters, getRules(databaseName), databaseName, metaDataContexts.getMetaData().getDatabases(), connectionSession.getGrantee());
int characterSet = connectionSession.getAttributeMap().attr(MySQLConstants.MYSQL_CHARACTER_SET_ATTRIBUTE_KEY).get().getId();
// TODO Refactor the following branch
if (sqlStatement instanceof TCLStatement) {