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 34cda751fd4 use statementContext replace statement in method check 
(#18724)
34cda751fd4 is described below

commit 34cda751fd42e420679e18f4bc49f13d54206e16
Author: natehuang <[email protected]>
AuthorDate: Thu Jun 30 16:11:38 2022 +0800

    use statementContext replace statement in method check (#18724)
---
 .../shardingsphere-sharding-api/pom.xml                |  5 +++++
 .../sharding/spi/ShardingAuditAlgorithm.java           |  6 +++---
 .../sharding/checker/audit/ShardingAuditChecker.java   |  6 +++---
 .../infra/executor/check/SQLCheckEngine.java           |  8 ++++----
 .../infra/executor/check/SQLChecker.java               |  6 +++---
 .../executor/check/fixture/SQLCheckerFixture.java      |  4 ++--
 .../statement/ShardingSpherePreparedStatement.java     |  2 +-
 .../jdbc/core/statement/ShardingSphereStatement.java   |  2 +-
 .../authority/checker/AuthorityChecker.java            |  5 +++--
 .../authority/checker/AuthorityCheckerTest.java        | 18 +++++++++---------
 .../text/TextProtocolBackendHandlerFactory.java        |  2 +-
 .../mysql/executor/fixture/SQLCheckerFixture.java      |  4 ++--
 .../binary/execute/MySQLComStmtExecuteExecutor.java    |  2 +-
 .../query/text/query/MySQLMultiStatementsHandler.java  |  2 +-
 .../extended/PostgreSQLBatchedStatementsExecutor.java  |  2 +-
 .../execute/ReactiveMySQLComStmtExecuteExecutor.java   |  2 +-
 16 files changed, 41 insertions(+), 35 deletions(-)

diff --git 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-api/pom.xml
 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-api/pom.xml
index d3ef75287f2..e74a0dc2a7b 100644
--- 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-api/pom.xml
+++ 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-api/pom.xml
@@ -28,6 +28,11 @@
     <name>${project.artifactId}</name>
     
     <dependencies>
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-binder</artifactId>
+            <version>${project.version}</version>
+        </dependency>
         <dependency>
             <groupId>org.apache.shardingsphere</groupId>
             <artifactId>shardingsphere-infra-common</artifactId>
diff --git 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-api/src/main/java/org/apache/shardingsphere/sharding/spi/ShardingAuditAlgorithm.java
 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-api/src/main/java/org/apache/shardingsphere/sharding/spi/ShardingAuditAlgorithm.java
index 058cb46a4c2..4a995eb2a06 100644
--- 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-api/src/main/java/org/apache/shardingsphere/sharding/spi/ShardingAuditAlgorithm.java
+++ 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-api/src/main/java/org/apache/shardingsphere/sharding/spi/ShardingAuditAlgorithm.java
@@ -17,11 +17,11 @@
 
 package org.apache.shardingsphere.sharding.spi;
 
+import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
 import org.apache.shardingsphere.infra.check.SQLCheckResult;
 import 
org.apache.shardingsphere.infra.config.algorithm.ShardingSphereAlgorithm;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import org.apache.shardingsphere.infra.metadata.user.Grantee;
-import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
 
 import java.util.List;
 
@@ -33,11 +33,11 @@ public interface ShardingAuditAlgorithm extends 
ShardingSphereAlgorithm {
     /**
      * Sharding audit algorithm SQL check.
      *
-     * @param sqlStatement SQL statement
+     * @param sqlStatementContext SQL statement context
      * @param parameters SQL parameters
      * @param grantee grantee
      * @param database database
      * @return SQL check result
      */
-    SQLCheckResult check(SQLStatement sqlStatement, List<Object> parameters, 
Grantee grantee, ShardingSphereDatabase database);
+    SQLCheckResult check(SQLStatementContext<?> sqlStatementContext, 
List<Object> parameters, Grantee grantee, ShardingSphereDatabase database);
 }
diff --git 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/checker/audit/ShardingAuditChecker.java
 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/checker/audit/ShardingAuditChecker.java
index 59c73478ab7..f897cef0e46 100644
--- 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/checker/audit/ShardingAuditChecker.java
+++ 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/checker/audit/ShardingAuditChecker.java
@@ -17,13 +17,13 @@
 
 package org.apache.shardingsphere.sharding.checker.audit;
 
+import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
 import org.apache.shardingsphere.infra.check.SQLCheckResult;
 import org.apache.shardingsphere.infra.executor.check.SQLChecker;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import org.apache.shardingsphere.infra.metadata.user.Grantee;
 import org.apache.shardingsphere.sharding.constant.ShardingOrder;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
-import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
 
 import java.util.List;
 import java.util.Map;
@@ -40,10 +40,10 @@ public final class ShardingAuditChecker implements 
SQLChecker<ShardingRule> {
     }
     
     @Override
-    public SQLCheckResult check(final SQLStatement sqlStatement, final 
List<Object> parameters, final Grantee grantee,
+    public SQLCheckResult check(final SQLStatementContext<?> 
sqlStatementContext, final List<Object> parameters, final Grantee grantee,
                                 final String currentDatabase, final 
Map<String, ShardingSphereDatabase> databases, final ShardingRule rule) {
         for (String each : 
rule.getAuditStrategyConfig().getAuditAlgorithmNames()) {
-            SQLCheckResult result = 
rule.getAuditAlgorithms().get(each).check(sqlStatement, parameters, grantee, 
databases.get(currentDatabase));
+            SQLCheckResult result = 
rule.getAuditAlgorithms().get(each).check(sqlStatementContext, parameters, 
grantee, databases.get(currentDatabase));
             if (!result.isPassed()) {
                 return result;
             }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/check/SQLCheckEngine.java
 
b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/check/SQLCheckEngine.java
index 6c9922f6e2f..27e4be0a482 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/check/SQLCheckEngine.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/check/SQLCheckEngine.java
@@ -19,12 +19,12 @@ package org.apache.shardingsphere.infra.executor.check;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
+import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
 import org.apache.shardingsphere.infra.check.SQLCheckException;
 import org.apache.shardingsphere.infra.check.SQLCheckResult;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import org.apache.shardingsphere.infra.metadata.user.Grantee;
 import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
-import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
 
 import java.util.Collection;
 import java.util.List;
@@ -60,7 +60,7 @@ public final class SQLCheckEngine {
     /**
      * Check SQL.
      *
-     * @param sqlStatement SQL statement
+     * @param sqlStatementContext SQL statement context
      * @param parameters SQL parameters
      * @param rules rules
      * @param currentDatabase current database
@@ -68,10 +68,10 @@ public final class SQLCheckEngine {
      * @param grantee grantee
      */
     @SuppressWarnings({"rawtypes", "unchecked"})
-    public static void check(final SQLStatement sqlStatement, final 
List<Object> parameters, final Collection<ShardingSphereRule> rules,
+    public static void check(final SQLStatementContext<?> sqlStatementContext, 
final List<Object> parameters, final Collection<ShardingSphereRule> rules,
                              final String currentDatabase, final Map<String, 
ShardingSphereDatabase> databases, final Grantee grantee) {
         for (Entry<ShardingSphereRule, SQLChecker> entry : 
SQLCheckerFactory.getInstance(rules).entrySet()) {
-            SQLCheckResult checkResult = entry.getValue().check(sqlStatement, 
parameters, grantee, currentDatabase, databases, entry.getKey());
+            SQLCheckResult checkResult = 
entry.getValue().check(sqlStatementContext, parameters, grantee, 
currentDatabase, databases, entry.getKey());
             if (!checkResult.isPassed()) {
                 throw new SQLCheckException(checkResult.getErrorMessage());
             }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/check/SQLChecker.java
 
b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/check/SQLChecker.java
index 52aba93e9fe..68148c1de69 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/check/SQLChecker.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/check/SQLChecker.java
@@ -17,13 +17,13 @@
 
 package org.apache.shardingsphere.infra.executor.check;
 
+import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
 import org.apache.shardingsphere.infra.check.SQLCheckResult;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import org.apache.shardingsphere.infra.metadata.user.Grantee;
 import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
 import org.apache.shardingsphere.spi.annotation.SingletonSPI;
 import org.apache.shardingsphere.spi.type.ordered.OrderedSPI;
-import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
 
 import java.util.List;
 import java.util.Map;
@@ -48,7 +48,7 @@ public interface SQLChecker<T extends ShardingSphereRule> 
extends OrderedSPI<T>
     /**
      * Check SQL.
      * 
-     * @param sqlStatement SQL statement
+     * @param sqlStatementContext SQL statement context
      * @param parameters SQL parameters
      * @param grantee grantee
      * @param currentDatabase current database
@@ -56,7 +56,7 @@ public interface SQLChecker<T extends ShardingSphereRule> 
extends OrderedSPI<T>
      * @param rule rule
      * @return SQL check result
      */
-    SQLCheckResult check(SQLStatement sqlStatement, List<Object> parameters, 
Grantee grantee, String currentDatabase, Map<String, ShardingSphereDatabase> 
databases, T rule);
+    SQLCheckResult check(SQLStatementContext<?> sqlStatementContext, 
List<Object> parameters, Grantee grantee, String currentDatabase, Map<String, 
ShardingSphereDatabase> databases, T rule);
     
     /**
      * Check User.
diff --git 
a/shardingsphere-infra/shardingsphere-infra-executor/src/test/java/org/apache/shardingsphere/infra/executor/check/fixture/SQLCheckerFixture.java
 
b/shardingsphere-infra/shardingsphere-infra-executor/src/test/java/org/apache/shardingsphere/infra/executor/check/fixture/SQLCheckerFixture.java
index f573e22f2a3..6b8eea0edb7 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-executor/src/test/java/org/apache/shardingsphere/infra/executor/check/fixture/SQLCheckerFixture.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-executor/src/test/java/org/apache/shardingsphere/infra/executor/check/fixture/SQLCheckerFixture.java
@@ -17,12 +17,12 @@
 
 package org.apache.shardingsphere.infra.executor.check.fixture;
 
+import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
 import org.apache.shardingsphere.infra.check.SQLCheckResult;
 import org.apache.shardingsphere.infra.executor.check.SQLChecker;
 import org.apache.shardingsphere.infra.executor.sql.fixture.FixtureRule;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import org.apache.shardingsphere.infra.metadata.user.Grantee;
-import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
 
 import java.util.List;
 import java.util.Map;
@@ -36,7 +36,7 @@ public final class SQLCheckerFixture implements 
SQLChecker<FixtureRule> {
     }
     
     @Override
-    public SQLCheckResult check(final SQLStatement sqlStatement, final 
List<Object> parameters, final Grantee grantee, final String currentDatabase,
+    public SQLCheckResult check(final SQLStatementContext<?> 
sqlStatementContext, final List<Object> parameters, final Grantee grantee, 
final String currentDatabase,
                                 final Map<String, ShardingSphereDatabase> 
databases, final FixtureRule rule) {
         return null;
     }
diff --git 
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
 
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
index 26aeb09249c..2f3121c2310 100644
--- 
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
+++ 
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
@@ -462,7 +462,7 @@ public final class ShardingSpherePreparedStatement extends 
AbstractPreparedState
     }
     
     private ExecutionContext createExecutionContext(final LogicSQL logicSQL) {
-        
SQLCheckEngine.check(logicSQL.getSqlStatementContext().getSqlStatement(), 
logicSQL.getParameters(),
+        SQLCheckEngine.check(logicSQL.getSqlStatementContext(), 
logicSQL.getParameters(),
                 
metaDataContexts.getMetaData().getDatabases().get(connection.getDatabaseName()).getRuleMetaData().getRules(),
                 connection.getDatabaseName(), 
metaDataContexts.getMetaData().getDatabases(), null);
         ExecutionContext result = 
kernelProcessor.generateExecutionContext(logicSQL, 
metaDataContexts.getMetaData().getDatabases().get(connection.getDatabaseName()),
diff --git 
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
 
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
index 7840468e554..0a1c08fd2cd 100644
--- 
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
+++ 
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
@@ -461,7 +461,7 @@ public final class ShardingSphereStatement extends 
AbstractStatementAdapter {
     
     private ExecutionContext createExecutionContext(final LogicSQL logicSQL) 
throws SQLException {
         clearStatements();
-        
SQLCheckEngine.check(logicSQL.getSqlStatementContext().getSqlStatement(), 
logicSQL.getParameters(),
+        SQLCheckEngine.check(logicSQL.getSqlStatementContext(), 
logicSQL.getParameters(),
                 
metaDataContexts.getMetaData().getDatabases().get(connection.getDatabaseName()).getRuleMetaData().getRules(),
                 connection.getDatabaseName(), 
metaDataContexts.getMetaData().getDatabases(), null);
         return kernelProcessor.generateExecutionContext(logicSQL,
diff --git 
a/shardingsphere-kernel/shardingsphere-authority/shardingsphere-authority-core/src/main/java/org/apache/shardingsphere/authority/checker/AuthorityChecker.java
 
b/shardingsphere-kernel/shardingsphere-authority/shardingsphere-authority-core/src/main/java/org/apache/shardingsphere/authority/checker/AuthorityChecker.java
index 37dcb547287..11647b9cac1 100644
--- 
a/shardingsphere-kernel/shardingsphere-authority/shardingsphere-authority-core/src/main/java/org/apache/shardingsphere/authority/checker/AuthorityChecker.java
+++ 
b/shardingsphere-kernel/shardingsphere-authority/shardingsphere-authority-core/src/main/java/org/apache/shardingsphere/authority/checker/AuthorityChecker.java
@@ -21,6 +21,7 @@ import 
org.apache.shardingsphere.authority.constant.AuthorityOrder;
 import org.apache.shardingsphere.authority.model.PrivilegeType;
 import org.apache.shardingsphere.authority.model.ShardingSpherePrivileges;
 import org.apache.shardingsphere.authority.rule.AuthorityRule;
+import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
 import org.apache.shardingsphere.infra.check.SQLCheckResult;
 import org.apache.shardingsphere.infra.executor.check.SQLChecker;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
@@ -64,7 +65,7 @@ public final class AuthorityChecker implements 
SQLChecker<AuthorityRule> {
     }
     
     @Override
-    public SQLCheckResult check(final SQLStatement sqlStatement, final 
List<Object> parameters, final Grantee grantee,
+    public SQLCheckResult check(final SQLStatementContext<?> 
sqlStatementContext, final List<Object> parameters, final Grantee grantee,
                                 final String currentDatabase, final 
Map<String, ShardingSphereDatabase> databases, final AuthorityRule 
authorityRule) {
         if (null == grantee) {
             return new SQLCheckResult(true, "");
@@ -76,7 +77,7 @@ public final class AuthorityChecker implements 
SQLChecker<AuthorityRule> {
         if (null != currentDatabase && !privileges.filter(optional -> 
optional.hasPrivileges(currentDatabase)).isPresent()) {
             return new SQLCheckResult(false, String.format("Unknown database 
'%s'", currentDatabase));
         }
-        PrivilegeType privilegeType = getPrivilege(sqlStatement);
+        PrivilegeType privilegeType = 
getPrivilege(sqlStatementContext.getSqlStatement());
         String errorMessage = Objects.isNull(privilegeType) ? "" : 
String.format("Access denied for operation %s", privilegeType.name());
         return privileges.map(optional -> new 
SQLCheckResult(optional.hasPrivileges(Collections.singletonList(privilegeType)),
 errorMessage)).orElseGet(() -> new SQLCheckResult(false, ""));
     }
diff --git 
a/shardingsphere-kernel/shardingsphere-authority/shardingsphere-authority-core/src/test/java/org/apache/shardingsphere/authority/checker/AuthorityCheckerTest.java
 
b/shardingsphere-kernel/shardingsphere-authority/shardingsphere-authority-core/src/test/java/org/apache/shardingsphere/authority/checker/AuthorityCheckerTest.java
index a45eb9a7f45..b3e784dbcca 100644
--- 
a/shardingsphere-kernel/shardingsphere-authority/shardingsphere-authority-core/src/test/java/org/apache/shardingsphere/authority/checker/AuthorityCheckerTest.java
+++ 
b/shardingsphere-kernel/shardingsphere-authority/shardingsphere-authority-core/src/test/java/org/apache/shardingsphere/authority/checker/AuthorityCheckerTest.java
@@ -19,15 +19,15 @@ package org.apache.shardingsphere.authority.checker;
 
 import org.apache.shardingsphere.authority.config.AuthorityRuleConfiguration;
 import org.apache.shardingsphere.authority.rule.AuthorityRule;
+import 
org.apache.shardingsphere.infra.binder.statement.ddl.CreateTableStatementContext;
+import 
org.apache.shardingsphere.infra.binder.statement.dml.InsertStatementContext;
+import 
org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementContext;
 import 
org.apache.shardingsphere.infra.config.algorithm.ShardingSphereAlgorithmConfiguration;
 import org.apache.shardingsphere.infra.executor.check.SQLChecker;
 import org.apache.shardingsphere.infra.executor.check.SQLCheckerFactory;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import org.apache.shardingsphere.infra.metadata.user.Grantee;
 import org.apache.shardingsphere.infra.metadata.user.ShardingSphereUser;
-import 
org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.CreateTableStatement;
-import 
org.apache.shardingsphere.sql.parser.sql.common.statement.dml.InsertStatement;
-import 
org.apache.shardingsphere.sql.parser.sql.common.statement.dml.SelectStatement;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Answers;
@@ -84,11 +84,11 @@ public final class AuthorityCheckerTest {
         AuthorityRuleConfiguration ruleConfig = new 
AuthorityRuleConfiguration(users, new 
ShardingSphereAlgorithmConfiguration("ALL_PERMITTED", new Properties()));
         AuthorityRule rule = new AuthorityRule(ruleConfig, 
Collections.emptyMap());
         SQLChecker<AuthorityRule> sqlChecker = 
SQLCheckerFactory.getInstance(Collections.singleton(rule)).get(rule);
-        SelectStatement selectStatement = mock(SelectStatement.class);
-        CreateTableStatement createTableStatement = 
mock(CreateTableStatement.class);
-        InsertStatement insertStatement = mock(InsertStatement.class);
-        assertTrue(sqlChecker.check(selectStatement, Collections.emptyList(), 
new Grantee("root", "localhost"), "db0", Collections.emptyMap(), 
rule).isPassed());
-        assertTrue(sqlChecker.check(insertStatement, Collections.emptyList(), 
new Grantee("root", "localhost"), "db0", Collections.emptyMap(), 
rule).isPassed());
-        assertTrue(sqlChecker.check(createTableStatement, 
Collections.emptyList(), new Grantee("root", "localhost"), "db0", 
Collections.emptyMap(), rule).isPassed());
+        SelectStatementContext selectStatementContext = 
mock(SelectStatementContext.class);
+        CreateTableStatementContext createTableStatementContext = 
mock(CreateTableStatementContext.class);
+        InsertStatementContext insertStatementContext = 
mock(InsertStatementContext.class);
+        assertTrue(sqlChecker.check(selectStatementContext, 
Collections.emptyList(), new Grantee("root", "localhost"), "db0", 
Collections.emptyMap(), rule).isPassed());
+        assertTrue(sqlChecker.check(insertStatementContext, 
Collections.emptyList(), new Grantee("root", "localhost"), "db0", 
Collections.emptyMap(), rule).isPassed());
+        assertTrue(sqlChecker.check(createTableStatementContext, 
Collections.emptyList(), new Grantee("root", "localhost"), "db0", 
Collections.emptyMap(), rule).isPassed());
     }
 }
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/TextProtocolBackendHandlerFactory.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/TextProtocolBackendHandlerFactory.java
index 8b28cd86e09..182b10ede82 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/TextProtocolBackendHandlerFactory.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/TextProtocolBackendHandlerFactory.java
@@ -121,7 +121,7 @@ public final class TextProtocolBackendHandlerFactory {
         String databaseName = 
sqlStatementContext.getTablesContext().getDatabaseName().isPresent()
                 ? 
sqlStatementContext.getTablesContext().getDatabaseName().get()
                 : connectionSession.getDatabaseName();
-        SQLCheckEngine.check(sqlStatement, Collections.emptyList(),
+        SQLCheckEngine.check(sqlStatementContext, Collections.emptyList(),
                 getRules(databaseName), databaseName, 
ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabases(),
 connectionSession.getGrantee());
         if (sqlStatement instanceof TCLStatement) {
             return 
TransactionBackendHandlerFactory.newInstance((SQLStatementContext<TCLStatement>)
 sqlStatementContext, sql, connectionSession);
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/fixture/SQLCheckerFixture.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/fixture/SQLCheckerFixture.java
index bc0f3135761..b1831beba09 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/fixture/SQLCheckerFixture.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/fixture/SQLCheckerFixture.java
@@ -18,11 +18,11 @@
 package 
org.apache.shardingsphere.proxy.backend.text.admin.mysql.executor.fixture;
 
 import org.apache.shardingsphere.authority.rule.AuthorityRule;
+import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
 import org.apache.shardingsphere.infra.check.SQLCheckResult;
 import org.apache.shardingsphere.infra.executor.check.SQLChecker;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import org.apache.shardingsphere.infra.metadata.user.Grantee;
-import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
 
 import java.util.List;
 import java.util.Map;
@@ -39,7 +39,7 @@ public final class SQLCheckerFixture implements 
SQLChecker<AuthorityRule> {
     }
     
     @Override
-    public SQLCheckResult check(final SQLStatement sqlStatement, final 
List<Object> parameters, final Grantee grantee,
+    public SQLCheckResult check(final SQLStatementContext<?> 
sqlStatementContext, final List<Object> parameters, final Grantee grantee,
                                 final String currentDatabase, final 
Map<String, ShardingSphereDatabase> databases, final AuthorityRule 
authorityRule) {
         return new SQLCheckResult(true, "");
     }
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutor.java
 
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutor.java
index f8a9844c396..80c522d6ee0 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutor.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutor.java
@@ -101,7 +101,7 @@ public final class MySQLComStmtExecuteExecutor implements 
QueryCommandExecutor {
         }
         String databaseName = connectionSession.getDatabaseName();
         MetaDataContexts metaDataContexts = 
ProxyContext.getInstance().getContextManager().getMetaDataContexts();
-        SQLCheckEngine.check(sqlStatement, Collections.emptyList(), 
getRules(databaseName), databaseName, 
metaDataContexts.getMetaData().getDatabases(), connectionSession.getGrantee());
+        SQLCheckEngine.check(sqlStatementContext, Collections.emptyList(), 
getRules(databaseName), databaseName, 
metaDataContexts.getMetaData().getDatabases(), connectionSession.getGrantee());
         // TODO Refactor the following branch
         if (sqlStatement instanceof TCLStatement) {
             textProtocolBackendHandler =
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLMultiStatementsHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLMultiStatementsHandler.java
index 79992fcb8e0..fdaf2dd4410 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLMultiStatementsHandler.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLMultiStatementsHandler.java
@@ -126,7 +126,7 @@ public final class MySQLMultiStatementsHandler implements 
TextProtocolBackendHan
     }
     
     private ExecutionContext createExecutionContext(final LogicSQL logicSQL) {
-        
SQLCheckEngine.check(logicSQL.getSqlStatementContext().getSqlStatement(), 
logicSQL.getParameters(),
+        SQLCheckEngine.check(logicSQL.getSqlStatementContext(), 
logicSQL.getParameters(),
                 
metaDataContexts.getMetaData().getDatabases().get(connectionSession.getDatabaseName()).getRuleMetaData().getRules(),
                 connectionSession.getDatabaseName(), 
metaDataContexts.getMetaData().getDatabases(), null);
         return kernelProcessor.generateExecutionContext(logicSQL, 
metaDataContexts.getMetaData().getDatabases().get(connectionSession.getDatabaseName()),
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLBatchedStatementsExecutor.java
 
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLBatchedStatementsExecutor.java
index aa3e7417070..7dc99fa38b2 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLBatchedStatementsExecutor.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/PostgreSQLBatchedStatementsExecutor.java
@@ -123,7 +123,7 @@ public final class PostgreSQLBatchedStatementsExecutor {
     }
     
     private ExecutionContext createExecutionContext(final LogicSQL logicSQL) {
-        
SQLCheckEngine.check(logicSQL.getSqlStatementContext().getSqlStatement(), 
logicSQL.getParameters(),
+        SQLCheckEngine.check(logicSQL.getSqlStatementContext(), 
logicSQL.getParameters(),
                 
metaDataContexts.getMetaData().getDatabases().get(connectionSession.getDatabaseName()).getRuleMetaData().getRules(),
                 connectionSession.getDatabaseName(), 
metaDataContexts.getMetaData().getDatabases(), null);
         return kernelProcessor.generateExecutionContext(logicSQL, 
metaDataContexts.getMetaData().getDatabases().get(connectionSession.getDatabaseName()),
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-reactive-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/reactive/mysql/command/query/binary/execute/ReactiveMySQLComStmtExecuteExecutor.java
 
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-reactive-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/reactive/mysql/command/query/binary/execute/ReactiveMySQLComStmtExecuteExecutor.java
index d80e114cb0b..f09d131df27 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-reactive-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/reactive/mysql/command/query/binary/execute/ReactiveMySQLComStmtExecuteExecutor.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-reactive-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/reactive/mysql/command/query/binary/execute/ReactiveMySQLComStmtExecuteExecutor.java
@@ -100,7 +100,7 @@ public final class ReactiveMySQLComStmtExecuteExecutor 
implements ReactiveComman
         SQLStatement sqlStatement = preparedStatement.getSqlStatement();
         String databaseName = connectionSession.getDatabaseName();
         MetaDataContexts metaDataContexts = 
ProxyContext.getInstance().getContextManager().getMetaDataContexts();
-        SQLCheckEngine.check(sqlStatement, Collections.emptyList(), 
getRules(databaseName), databaseName, 
metaDataContexts.getMetaData().getDatabases(), connectionSession.getGrantee());
+        SQLCheckEngine.check(sqlStatementContext, Collections.emptyList(), 
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) {

Reply via email to