You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2025/06/08 04:33:01 UTC

(shardingsphere) branch master updated: Rename DialectDALStatementBroadcastRouteDecider (#35642)

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 8c63f2dd59b Rename DialectDALStatementBroadcastRouteDecider (#35642)
8c63f2dd59b is described below

commit 8c63f2dd59b7eed899c6bfd2907db1bb7b4f31bc
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Sun Jun 8 12:32:56 2025 +0800

    Rename DialectDALStatementBroadcastRouteDecider (#35642)
    
    * Rename DialectDALStatementBroadcastRouteDecider
    
    * Move and rename MySQLKillStatement
---
 ... DialectDALStatementBroadcastRouteDecider.java} |  4 +--
 .../tableless/TablelessRouteEngineFactory.java     | 31 +++++++++-------------
 .../tableless/TablelessRouteEngineFactoryTest.java | 12 ++++-----
 ...=> MySQLDALStatementBroadcastRouteDecider.java} |  6 ++---
 ...eless.DialectDALStatementBroadcastRouteDecider} |  2 +-
 ...stgreSQLDALStatementBroadcastRouteDecider.java} |  6 ++---
 ...eless.DialectDALStatementBroadcastRouteDecider} |  2 +-
 .../statement/type/DorisDALStatementVisitor.java   |  4 +--
 .../statement/type/MySQLDALStatementVisitor.java   |  4 +--
 .../statement/mysql/dal/MySQLKillStatement.java}   |  7 ++---
 .../handler/admin/MySQLAdminExecutorCreator.java   |  6 ++---
 .../admin/executor/KillProcessExecutor.java        |  4 +--
 .../binary/prepare/MySQLComStmtPrepareChecker.java |  4 +--
 .../prepare/MySQLComStmtPrepareCheckerTest.java    |  4 +--
 .../asserts/statement/dal/DALStatementAssert.java  |  6 ++---
 .../statement/dal/impl/KillStatementAssert.java    |  4 +--
 16 files changed, 51 insertions(+), 55 deletions(-)

diff --git a/infra/route/core/src/main/java/org/apache/shardingsphere/infra/route/engine/tableless/DialectTablelessBroadcastRouteDecider.java b/infra/route/core/src/main/java/org/apache/shardingsphere/infra/route/engine/tableless/DialectDALStatementBroadcastRouteDecider.java
similarity index 92%
rename from infra/route/core/src/main/java/org/apache/shardingsphere/infra/route/engine/tableless/DialectTablelessBroadcastRouteDecider.java
rename to infra/route/core/src/main/java/org/apache/shardingsphere/infra/route/engine/tableless/DialectDALStatementBroadcastRouteDecider.java
index f67f9abb1a1..c3253710056 100644
--- a/infra/route/core/src/main/java/org/apache/shardingsphere/infra/route/engine/tableless/DialectTablelessBroadcastRouteDecider.java
+++ b/infra/route/core/src/main/java/org/apache/shardingsphere/infra/route/engine/tableless/DialectDALStatementBroadcastRouteDecider.java
@@ -22,10 +22,10 @@ import org.apache.shardingsphere.infra.spi.annotation.SingletonSPI;
 import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.DALStatement;
 
 /**
- * Dialect tableless broadcast route decider.
+ * Dialect DAL statement broadcast route decider.
  */
 @SingletonSPI
-public interface DialectTablelessBroadcastRouteDecider extends DatabaseTypedSPI {
+public interface DialectDALStatementBroadcastRouteDecider extends DatabaseTypedSPI {
     
     /**
      * Whether data source broadcast route.
diff --git a/infra/route/core/src/main/java/org/apache/shardingsphere/infra/route/engine/tableless/TablelessRouteEngineFactory.java b/infra/route/core/src/main/java/org/apache/shardingsphere/infra/route/engine/tableless/TablelessRouteEngineFactory.java
index 4438d1ba023..dd9efa1fb97 100644
--- a/infra/route/core/src/main/java/org/apache/shardingsphere/infra/route/engine/tableless/TablelessRouteEngineFactory.java
+++ b/infra/route/core/src/main/java/org/apache/shardingsphere/infra/route/engine/tableless/TablelessRouteEngineFactory.java
@@ -20,7 +20,6 @@ package org.apache.shardingsphere.infra.route.engine.tableless;
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
 import org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
-import org.apache.shardingsphere.infra.binder.context.statement.ddl.CloseStatementContext;
 import org.apache.shardingsphere.infra.binder.context.statement.dml.SelectStatementContext;
 import org.apache.shardingsphere.infra.binder.context.type.CursorAvailable;
 import org.apache.shardingsphere.infra.database.core.spi.DatabaseTypedSPILoader;
@@ -40,6 +39,7 @@ import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.ShowTab
 import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterFunctionStatement;
 import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterSchemaStatement;
 import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterTablespaceStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CloseStatement;
 import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateFunctionStatement;
 import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateSchemaStatement;
 import org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateTablespaceStatement;
@@ -85,15 +85,12 @@ public final class TablelessRouteEngineFactory {
     }
     
     private static TablelessRouteEngine getDMLRouteEngine(final SQLStatementContext sqlStatementContext) {
-        if (sqlStatementContext instanceof SelectStatementContext) {
-            return new TablelessDataSourceUnicastRouteEngine();
-        }
-        return new TablelessIgnoreRouteEngine();
+        return sqlStatementContext instanceof SelectStatementContext ? new TablelessDataSourceUnicastRouteEngine() : new TablelessIgnoreRouteEngine();
     }
     
     private static TablelessRouteEngine getDDLRouteEngine(final SQLStatementContext sqlStatementContext, final ShardingSphereDatabase database) {
         if (sqlStatementContext instanceof CursorAvailable) {
-            return getCursorRouteEngine(sqlStatementContext, database);
+            return getCursorRouteEngine(sqlStatementContext.getSqlStatement(), database);
         }
         SQLStatement sqlStatement = sqlStatementContext.getSqlStatement();
         if (isFunctionDDLStatement(sqlStatement) || isSchemaDDLStatement(sqlStatement)) {
@@ -102,6 +99,15 @@ public final class TablelessRouteEngineFactory {
         return new TablelessDataSourceBroadcastRouteEngine();
     }
     
+    private static TablelessRouteEngine getCursorRouteEngine(final SQLStatement sqlStatement, final ShardingSphereDatabase database) {
+        if (sqlStatement instanceof CloseStatement && ((CloseStatement) sqlStatement).isCloseAll()) {
+            return new TablelessDataSourceBroadcastRouteEngine();
+        }
+        return sqlStatement instanceof CreateTablespaceStatement || sqlStatement instanceof AlterTablespaceStatement || sqlStatement instanceof DropTablespaceStatement
+                ? new TablelessInstanceBroadcastRouteEngine(database)
+                : new TablelessIgnoreRouteEngine();
+    }
+    
     private static boolean isFunctionDDLStatement(final SQLStatement sqlStatement) {
         return sqlStatement instanceof CreateFunctionStatement || sqlStatement instanceof AlterFunctionStatement || sqlStatement instanceof DropFunctionStatement;
     }
@@ -110,19 +116,8 @@ public final class TablelessRouteEngineFactory {
         return sqlStatement instanceof CreateSchemaStatement || sqlStatement instanceof AlterSchemaStatement || sqlStatement instanceof DropSchemaStatement;
     }
     
-    private static TablelessRouteEngine getCursorRouteEngine(final SQLStatementContext sqlStatementContext, final ShardingSphereDatabase database) {
-        if (sqlStatementContext instanceof CloseStatementContext && ((CloseStatementContext) sqlStatementContext).getSqlStatement().isCloseAll()) {
-            return new TablelessDataSourceBroadcastRouteEngine();
-        }
-        SQLStatement sqlStatement = sqlStatementContext.getSqlStatement();
-        if (sqlStatement instanceof CreateTablespaceStatement || sqlStatement instanceof AlterTablespaceStatement || sqlStatement instanceof DropTablespaceStatement) {
-            return new TablelessInstanceBroadcastRouteEngine(database);
-        }
-        return new TablelessIgnoreRouteEngine();
-    }
-    
     private static TablelessRouteEngine getDALRouteEngine(final DALStatement sqlStatement, final ShardingSphereDatabase database, final DatabaseType databaseType) {
-        Optional<DialectTablelessBroadcastRouteDecider> dialectTablelessBroadcastRouteDecider = DatabaseTypedSPILoader.findService(DialectTablelessBroadcastRouteDecider.class, databaseType);
+        Optional<DialectDALStatementBroadcastRouteDecider> dialectTablelessBroadcastRouteDecider = DatabaseTypedSPILoader.findService(DialectDALStatementBroadcastRouteDecider.class, databaseType);
         if (sqlStatement instanceof ShowTablesStatement || sqlStatement instanceof ShowTableStatusStatement || sqlStatement instanceof ShowDatabasesStatement
                 || sqlStatement instanceof SetStatement) {
             return new TablelessDataSourceBroadcastRouteEngine();
diff --git a/infra/route/core/src/test/java/org/apache/shardingsphere/infra/route/engine/tableless/TablelessRouteEngineFactoryTest.java b/infra/route/core/src/test/java/org/apache/shardingsphere/infra/route/engine/tableless/TablelessRouteEngineFactoryTest.java
index f211d550f23..0ac7650e136 100644
--- a/infra/route/core/src/test/java/org/apache/shardingsphere/infra/route/engine/tableless/TablelessRouteEngineFactoryTest.java
+++ b/infra/route/core/src/test/java/org/apache/shardingsphere/infra/route/engine/tableless/TablelessRouteEngineFactoryTest.java
@@ -120,9 +120,9 @@ class TablelessRouteEngineFactoryTest {
     @Test
     void assertNewInstanceForDataSourceBroadcastRoute() {
         DALStatement sqlStatement = mock(DALStatement.class);
-        DialectTablelessBroadcastRouteDecider dialectTablelessBroadcastRouteDecider = mock(DialectTablelessBroadcastRouteDecider.class);
-        when(dialectTablelessBroadcastRouteDecider.isDataSourceBroadcastRoute(sqlStatement)).thenReturn(true);
-        when(DatabaseTypedSPILoader.findService(DialectTablelessBroadcastRouteDecider.class, databaseType)).thenReturn(Optional.of(dialectTablelessBroadcastRouteDecider));
+        DialectDALStatementBroadcastRouteDecider dialectDALStatementBroadcastRouteDecider = mock(DialectDALStatementBroadcastRouteDecider.class);
+        when(dialectDALStatementBroadcastRouteDecider.isDataSourceBroadcastRoute(sqlStatement)).thenReturn(true);
+        when(DatabaseTypedSPILoader.findService(DialectDALStatementBroadcastRouteDecider.class, databaseType)).thenReturn(Optional.of(dialectDALStatementBroadcastRouteDecider));
         when(sqlStatementContext.getSqlStatement()).thenReturn(sqlStatement);
         QueryContext queryContext = new QueryContext(sqlStatementContext, "", Collections.emptyList(), new HintValueContext(), mockConnectionContext(), mock(ShardingSphereMetaData.class));
         TablelessRouteEngine actual = TablelessRouteEngineFactory.newInstance(queryContext, database);
@@ -132,9 +132,9 @@ class TablelessRouteEngineFactoryTest {
     @Test
     void assertNewInstanceForInstanceBroadcastRoute() {
         DALStatement sqlStatement = mock(DALStatement.class);
-        DialectTablelessBroadcastRouteDecider dialectTablelessBroadcastRouteDecider = mock(DialectTablelessBroadcastRouteDecider.class);
-        when(dialectTablelessBroadcastRouteDecider.isInstanceBroadcastRoute(sqlStatement)).thenReturn(true);
-        when(DatabaseTypedSPILoader.findService(DialectTablelessBroadcastRouteDecider.class, databaseType)).thenReturn(Optional.of(dialectTablelessBroadcastRouteDecider));
+        DialectDALStatementBroadcastRouteDecider dialectDALStatementBroadcastRouteDecider = mock(DialectDALStatementBroadcastRouteDecider.class);
+        when(dialectDALStatementBroadcastRouteDecider.isInstanceBroadcastRoute(sqlStatement)).thenReturn(true);
+        when(DatabaseTypedSPILoader.findService(DialectDALStatementBroadcastRouteDecider.class, databaseType)).thenReturn(Optional.of(dialectDALStatementBroadcastRouteDecider));
         when(sqlStatementContext.getSqlStatement()).thenReturn(sqlStatement);
         QueryContext queryContext = new QueryContext(sqlStatementContext, "", Collections.emptyList(), new HintValueContext(), mockConnectionContext(), mock(ShardingSphereMetaData.class));
         TablelessRouteEngine actual = TablelessRouteEngineFactory.newInstance(queryContext, database);
diff --git a/infra/route/dialect/mysql/src/main/java/org/apache/shardingsphere/infra/route/mysql/MySQLTablelessBroadcastRouteDecider.java b/infra/route/dialect/mysql/src/main/java/org/apache/shardingsphere/infra/route/mysql/MySQLDALStatementBroadcastRouteDecider.java
similarity index 90%
rename from infra/route/dialect/mysql/src/main/java/org/apache/shardingsphere/infra/route/mysql/MySQLTablelessBroadcastRouteDecider.java
rename to infra/route/dialect/mysql/src/main/java/org/apache/shardingsphere/infra/route/mysql/MySQLDALStatementBroadcastRouteDecider.java
index 6df2eb47aa5..707bc152dd4 100644
--- a/infra/route/dialect/mysql/src/main/java/org/apache/shardingsphere/infra/route/mysql/MySQLTablelessBroadcastRouteDecider.java
+++ b/infra/route/dialect/mysql/src/main/java/org/apache/shardingsphere/infra/route/mysql/MySQLDALStatementBroadcastRouteDecider.java
@@ -17,7 +17,7 @@
 
 package org.apache.shardingsphere.infra.route.mysql;
 
-import org.apache.shardingsphere.infra.route.engine.tableless.DialectTablelessBroadcastRouteDecider;
+import org.apache.shardingsphere.infra.route.engine.tableless.DialectDALStatementBroadcastRouteDecider;
 import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.DALStatement;
 import org.apache.shardingsphere.sql.parser.statement.mysql.dal.resource.MySQLAlterResourceGroupStatement;
 import org.apache.shardingsphere.sql.parser.statement.mysql.dal.resource.MySQLCreateResourceGroupStatement;
@@ -25,9 +25,9 @@ import org.apache.shardingsphere.sql.parser.statement.mysql.dal.resource.MySQLDr
 import org.apache.shardingsphere.sql.parser.statement.mysql.dal.resource.MySQLSetResourceGroupStatement;
 
 /**
- * Dialect tableless broadcast route decider for MySQL.
+ * Dialect DAL statement broadcast route decider for MySQL.
  */
-public final class MySQLTablelessBroadcastRouteDecider implements DialectTablelessBroadcastRouteDecider {
+public final class MySQLDALStatementBroadcastRouteDecider implements DialectDALStatementBroadcastRouteDecider {
     
     @Override
     public boolean isDataSourceBroadcastRoute(final DALStatement sqlStatement) {
diff --git a/infra/route/dialect/mysql/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.route.engine.tableless.DialectTablelessBroadcastRouteDecider b/infra/route/dialect/mysql/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.route.engine.tableless.DialectDALStatementBroadcastRouteDecider
similarity index 90%
rename from infra/route/dialect/mysql/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.route.engine.tableless.DialectTablelessBroadcastRouteDecider
rename to infra/route/dialect/mysql/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.route.engine.tableless.DialectDALStatementBroadcastRouteDecider
index 06f2ca80672..367584d53da 100644
--- a/infra/route/dialect/mysql/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.route.engine.tableless.DialectTablelessBroadcastRouteDecider
+++ b/infra/route/dialect/mysql/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.route.engine.tableless.DialectDALStatementBroadcastRouteDecider
@@ -15,4 +15,4 @@
 # limitations under the License.
 #
 
-org.apache.shardingsphere.infra.route.mysql.MySQLTablelessBroadcastRouteDecider
+org.apache.shardingsphere.infra.route.mysql.MySQLDALStatementBroadcastRouteDecider
diff --git a/infra/route/dialect/postgresql/src/main/java/org/apache/shardingsphere/infra/route/postgresql/PostgreSQLTablelessBroadcastRouteDecider.java b/infra/route/dialect/postgresql/src/main/java/org/apache/shardingsphere/infra/route/postgresql/PostgreSQLDALStatementBroadcastRouteDecider.java
similarity index 88%
rename from infra/route/dialect/postgresql/src/main/java/org/apache/shardingsphere/infra/route/postgresql/PostgreSQLTablelessBroadcastRouteDecider.java
rename to infra/route/dialect/postgresql/src/main/java/org/apache/shardingsphere/infra/route/postgresql/PostgreSQLDALStatementBroadcastRouteDecider.java
index f7d52a96b08..adb349cf511 100644
--- a/infra/route/dialect/postgresql/src/main/java/org/apache/shardingsphere/infra/route/postgresql/PostgreSQLTablelessBroadcastRouteDecider.java
+++ b/infra/route/dialect/postgresql/src/main/java/org/apache/shardingsphere/infra/route/postgresql/PostgreSQLDALStatementBroadcastRouteDecider.java
@@ -17,15 +17,15 @@
 
 package org.apache.shardingsphere.infra.route.postgresql;
 
-import org.apache.shardingsphere.infra.route.engine.tableless.DialectTablelessBroadcastRouteDecider;
+import org.apache.shardingsphere.infra.route.engine.tableless.DialectDALStatementBroadcastRouteDecider;
 import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.DALStatement;
 import org.apache.shardingsphere.sql.parser.statement.postgresql.dal.PostgreSQLLoadStatement;
 import org.apache.shardingsphere.sql.parser.statement.postgresql.dal.PostgreSQLResetParameterStatement;
 
 /**
- * Dialect tableless broadcast route decider for PostgreSQL.
+ * Dialect DAL statement broadcast route decider for PostgreSQL.
  */
-public final class PostgreSQLTablelessBroadcastRouteDecider implements DialectTablelessBroadcastRouteDecider {
+public final class PostgreSQLDALStatementBroadcastRouteDecider implements DialectDALStatementBroadcastRouteDecider {
     
     @Override
     public boolean isDataSourceBroadcastRoute(final DALStatement sqlStatement) {
diff --git a/infra/route/dialect/postgresql/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.route.engine.tableless.DialectTablelessBroadcastRouteDecider b/infra/route/dialect/postgresql/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.route.engine.tableless.DialectDALStatementBroadcastRouteDecider
similarity index 89%
rename from infra/route/dialect/postgresql/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.route.engine.tableless.DialectTablelessBroadcastRouteDecider
rename to infra/route/dialect/postgresql/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.route.engine.tableless.DialectDALStatementBroadcastRouteDecider
index 4e8428cf3eb..c9d72bc24dd 100644
--- a/infra/route/dialect/postgresql/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.route.engine.tableless.DialectTablelessBroadcastRouteDecider
+++ b/infra/route/dialect/postgresql/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.route.engine.tableless.DialectDALStatementBroadcastRouteDecider
@@ -15,4 +15,4 @@
 # limitations under the License.
 #
 
-org.apache.shardingsphere.infra.route.postgresql.PostgreSQLTablelessBroadcastRouteDecider
+org.apache.shardingsphere.infra.route.postgresql.PostgreSQLDALStatementBroadcastRouteDecider
diff --git a/parser/sql/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/doris/visitor/statement/type/DorisDALStatementVisitor.java b/parser/sql/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/doris/visitor/statement/type/DorisDALStatementVisitor.java
index d53b34afba6..e8deda92a91 100644
--- a/parser/sql/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/doris/visitor/statement/type/DorisDALStatementVisitor.java
+++ b/parser/sql/dialect/doris/src/main/java/org/apache/shardingsphere/sql/parser/doris/visitor/statement/type/DorisDALStatementVisitor.java
@@ -161,7 +161,7 @@ import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.FlushSt
 import org.apache.shardingsphere.sql.parser.statement.mysql.dal.MySQLHelpStatement;
 import org.apache.shardingsphere.sql.parser.statement.mysql.dal.component.MySQLInstallComponentStatement;
 import org.apache.shardingsphere.sql.parser.statement.mysql.dal.plugin.MySQLInstallPluginStatement;
-import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.KillStatement;
+import org.apache.shardingsphere.sql.parser.statement.mysql.dal.MySQLKillStatement;
 import org.apache.shardingsphere.sql.parser.statement.mysql.dal.index.MySQLLoadIndexInfoStatement;
 import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.OptimizeTableStatement;
 import org.apache.shardingsphere.sql.parser.statement.mysql.dal.table.MySQLRepairTableStatement;
@@ -424,7 +424,7 @@ public final class DorisDALStatementVisitor extends DorisStatementVisitor implem
     
     @Override
     public ASTNode visitKill(final KillContext ctx) {
-        return new KillStatement(null == ctx.AT_() ? ctx.IDENTIFIER_().getText() : ctx.AT_().getText() + ctx.IDENTIFIER_().getText(), null);
+        return new MySQLKillStatement(null == ctx.AT_() ? ctx.IDENTIFIER_().getText() : ctx.AT_().getText() + ctx.IDENTIFIER_().getText(), null);
     }
     
     @Override
diff --git a/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/type/MySQLDALStatementVisitor.java b/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/type/MySQLDALStatementVisitor.java
index 2627c2c8f19..ff24595dc1d 100644
--- a/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/type/MySQLDALStatementVisitor.java
+++ b/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/type/MySQLDALStatementVisitor.java
@@ -161,7 +161,7 @@ import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.FlushSt
 import org.apache.shardingsphere.sql.parser.statement.mysql.dal.MySQLHelpStatement;
 import org.apache.shardingsphere.sql.parser.statement.mysql.dal.component.MySQLInstallComponentStatement;
 import org.apache.shardingsphere.sql.parser.statement.mysql.dal.plugin.MySQLInstallPluginStatement;
-import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.KillStatement;
+import org.apache.shardingsphere.sql.parser.statement.mysql.dal.MySQLKillStatement;
 import org.apache.shardingsphere.sql.parser.statement.mysql.dal.index.MySQLLoadIndexInfoStatement;
 import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.OptimizeTableStatement;
 import org.apache.shardingsphere.sql.parser.statement.mysql.dal.table.MySQLRepairTableStatement;
@@ -427,7 +427,7 @@ public final class MySQLDALStatementVisitor extends MySQLStatementVisitor implem
     
     @Override
     public ASTNode visitKill(final KillContext ctx) {
-        return new KillStatement(null == ctx.AT_() ? ctx.IDENTIFIER_().getText() : ctx.AT_().getText() + ctx.IDENTIFIER_().getText(), getScope(ctx));
+        return new MySQLKillStatement(null == ctx.AT_() ? ctx.IDENTIFIER_().getText() : ctx.AT_().getText() + ctx.IDENTIFIER_().getText(), getScope(ctx));
     }
     
     private String getScope(final KillContext ctx) {
diff --git a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/dal/KillStatement.java b/parser/sql/statement/type/mysql/src/main/java/org/apache/shardingsphere/sql/parser/statement/mysql/dal/MySQLKillStatement.java
similarity index 79%
rename from parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/dal/KillStatement.java
rename to parser/sql/statement/type/mysql/src/main/java/org/apache/shardingsphere/sql/parser/statement/mysql/dal/MySQLKillStatement.java
index 39b21b80c0c..101dc2a2720 100644
--- a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/dal/KillStatement.java
+++ b/parser/sql/statement/type/mysql/src/main/java/org/apache/shardingsphere/sql/parser/statement/mysql/dal/MySQLKillStatement.java
@@ -15,18 +15,19 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.sql.parser.statement.core.statement.dal;
+package org.apache.shardingsphere.sql.parser.statement.mysql.dal;
 
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import org.apache.shardingsphere.sql.parser.statement.core.statement.AbstractSQLStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.DALStatement;
 
 /**
- * Kill statement.
+ * Kill statement for MySQL.
  */
 @RequiredArgsConstructor
 @Getter
-public final class KillStatement extends AbstractSQLStatement implements DALStatement {
+public final class MySQLKillStatement extends AbstractSQLStatement implements DALStatement {
     
     private final String processId;
     
diff --git a/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/MySQLAdminExecutorCreator.java b/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/MySQLAdminExecutorCreator.java
index ff843e2fa86..e4cdbac9e85 100644
--- a/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/MySQLAdminExecutorCreator.java
+++ b/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/MySQLAdminExecutorCreator.java
@@ -42,7 +42,7 @@ import org.apache.shardingsphere.proxy.backend.mysql.handler.admin.executor.UseD
 import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.item.ExpressionProjectionSegment;
 import org.apache.shardingsphere.sql.parser.statement.core.segment.dml.item.ProjectionSegment;
 import org.apache.shardingsphere.sql.parser.statement.core.statement.SQLStatement;
-import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.KillStatement;
+import org.apache.shardingsphere.sql.parser.statement.mysql.dal.MySQLKillStatement;
 import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.SetStatement;
 import org.apache.shardingsphere.sql.parser.statement.mysql.dal.show.database.MySQLShowCreateDatabaseStatement;
 import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.ShowDatabasesStatement;
@@ -106,8 +106,8 @@ public final class MySQLAdminExecutorCreator implements DatabaseAdminExecutorCre
         if (sqlStatement instanceof MySQLShowProcessListStatement) {
             return Optional.of(new ShowProcessListExecutor(((MySQLShowProcessListStatement) sqlStatement).isFull()));
         }
-        if (sqlStatement instanceof KillStatement) {
-            return Optional.of(new KillProcessExecutor((KillStatement) sqlStatement));
+        if (sqlStatement instanceof MySQLKillStatement) {
+            return Optional.of(new KillProcessExecutor((MySQLKillStatement) sqlStatement));
         }
         return Optional.empty();
     }
diff --git a/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/KillProcessExecutor.java b/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/KillProcessExecutor.java
index 8d4038c4803..9dd9a77a9a4 100644
--- a/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/KillProcessExecutor.java
+++ b/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/KillProcessExecutor.java
@@ -23,7 +23,7 @@ import org.apache.shardingsphere.infra.exception.generic.UnsupportedSQLOperation
 import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
 import org.apache.shardingsphere.proxy.backend.handler.admin.executor.DatabaseAdminExecutor;
 import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
-import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.KillStatement;
+import org.apache.shardingsphere.sql.parser.statement.mysql.dal.MySQLKillStatement;
 
 import java.sql.SQLException;
 
@@ -35,7 +35,7 @@ public final class KillProcessExecutor implements DatabaseAdminExecutor {
     
     private static final String QUERY_SCOPE = "QUERY";
     
-    private final KillStatement killStatement;
+    private final MySQLKillStatement killStatement;
     
     /**
      * Execute.
diff --git a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/prepare/MySQLComStmtPrepareChecker.java b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/prepare/MySQLComStmtPrepareChecker.java
index 6178bdb76ba..c6e23d12180 100644
--- a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/prepare/MySQLComStmtPrepareChecker.java
+++ b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/prepare/MySQLComStmtPrepareChecker.java
@@ -25,7 +25,7 @@ import org.apache.shardingsphere.sql.parser.statement.mysql.dal.index.MySQLCache
 import org.apache.shardingsphere.sql.parser.statement.mysql.dal.table.MySQLChecksumTableStatement;
 import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.FlushStatement;
 import org.apache.shardingsphere.sql.parser.statement.mysql.dal.plugin.MySQLInstallPluginStatement;
-import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.KillStatement;
+import org.apache.shardingsphere.sql.parser.statement.mysql.dal.MySQLKillStatement;
 import org.apache.shardingsphere.sql.parser.statement.mysql.dal.index.MySQLLoadIndexInfoStatement;
 import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.OptimizeTableStatement;
 import org.apache.shardingsphere.sql.parser.statement.mysql.dal.table.MySQLRepairTableStatement;
@@ -96,7 +96,7 @@ public final class MySQLComStmtPrepareChecker {
                 CreateIndexStatement.class, DropIndexStatement.class, CreateDatabaseStatement.class, DropDatabaseStatement.class,
                 CreateTableStatement.class, DropTableStatement.class, MySQLCreateUserStatement.class, RenameUserStatement.class, DropUserStatement.class,
                 CreateViewStatement.class, DropViewStatement.class, DeleteStatement.class, DoStatement.class, FlushStatement.class,
-                MySQLGrantStatement.class, InsertStatement.class, MySQLInstallPluginStatement.class, KillStatement.class, MySQLLoadIndexInfoStatement.class,
+                MySQLGrantStatement.class, InsertStatement.class, MySQLInstallPluginStatement.class, MySQLKillStatement.class, MySQLLoadIndexInfoStatement.class,
                 OptimizeTableStatement.class, RenameTableStatement.class, MySQLRepairTableStatement.class, MySQLResetStatement.class,
                 MySQLRevokeStatement.class, SelectStatement.class, SetStatement.class, MySQLShowWarningsStatement.class, MySQLShowErrorsStatement.class,
                 MySQLShowBinlogEventsStatement.class, MySQLShowCreateProcedureStatement.class, MySQLShowCreateFunctionStatement.class, MySQLShowCreateEventStatement.class,
diff --git a/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/prepare/MySQLComStmtPrepareCheckerTest.java b/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/prepare/MySQLComStmtPrepareCheckerTest.java
index aabf51d9335..6ed4fdcf705 100644
--- a/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/prepare/MySQLComStmtPrepareCheckerTest.java
+++ b/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/prepare/MySQLComStmtPrepareCheckerTest.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.proxy.frontend.mysql.command.query.binary.prep
 import org.apache.shardingsphere.sql.parser.statement.core.statement.SQLStatement;
 import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.AnalyzeTableStatement;
 import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.FlushStatement;
-import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.KillStatement;
+import org.apache.shardingsphere.sql.parser.statement.mysql.dal.MySQLKillStatement;
 import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.OptimizeTableStatement;
 import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.SetStatement;
 import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.ShowCreateTableStatement;
@@ -91,7 +91,7 @@ class MySQLComStmtPrepareCheckerTest {
                 mock(CreateIndexStatement.class), mock(DropIndexStatement.class), mock(CreateDatabaseStatement.class), mock(DropDatabaseStatement.class), mock(CreateTableStatement.class),
                 mock(DropTableStatement.class), mock(MySQLCreateUserStatement.class), mock(RenameUserStatement.class), mock(DropUserStatement.class),
                 mock(CreateViewStatement.class), mock(DropViewStatement.class), mock(DeleteStatement.class), mock(DoStatement.class), mock(FlushStatement.class),
-                mock(MySQLGrantStatement.class), mock(InsertStatement.class), mock(MySQLInstallPluginStatement.class), mock(KillStatement.class),
+                mock(MySQLGrantStatement.class), mock(InsertStatement.class), mock(MySQLInstallPluginStatement.class), mock(MySQLKillStatement.class),
                 mock(MySQLLoadIndexInfoStatement.class), mock(OptimizeTableStatement.class), mock(RenameTableStatement.class), mock(MySQLRepairTableStatement.class),
                 mock(MySQLResetStatement.class), mock(MySQLRevokeStatement.class), mock(SelectStatement.class), mock(SetStatement.class), mock(MySQLShowWarningsStatement.class),
                 mock(MySQLShowErrorsStatement.class), mock(MySQLShowBinlogEventsStatement.class), mock(MySQLShowCreateProcedureStatement.class), mock(MySQLShowCreateFunctionStatement.class),
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dal/DALStatementAssert.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dal/DALStatementAssert.java
index b10abe6bd67..6b7f84c22e5 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dal/DALStatementAssert.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dal/DALStatementAssert.java
@@ -34,7 +34,7 @@ import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.Explain
 import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.FlushStatement;
 import org.apache.shardingsphere.sql.parser.statement.mysql.dal.component.MySQLInstallComponentStatement;
 import org.apache.shardingsphere.sql.parser.statement.mysql.dal.plugin.MySQLInstallPluginStatement;
-import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.KillStatement;
+import org.apache.shardingsphere.sql.parser.statement.mysql.dal.MySQLKillStatement;
 import org.apache.shardingsphere.sql.parser.statement.mysql.dal.index.MySQLLoadIndexInfoStatement;
 import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.OptimizeTableStatement;
 import org.apache.shardingsphere.sql.parser.statement.mysql.dal.table.MySQLRepairTableStatement;
@@ -268,8 +268,8 @@ public final class DALStatementAssert {
             ResetPersistStatementAssert.assertIs(assertContext, (MySQLResetPersistStatement) actual, (ResetPersistStatementTestCase) expected);
         } else if (actual instanceof MySQLShowProcedureCodeStatement) {
             ShowProcedureCodeStatementAssert.assertIs(assertContext, (MySQLShowProcedureCodeStatement) actual, (ShowProcedureCodeStatementTestCase) expected);
-        } else if (actual instanceof KillStatement) {
-            KillStatementAssert.assertIs(assertContext, (KillStatement) actual, (KillStatementTestCase) expected);
+        } else if (actual instanceof MySQLKillStatement) {
+            KillStatementAssert.assertIs(assertContext, (MySQLKillStatement) actual, (KillStatementTestCase) expected);
         } else if (actual instanceof MySQLCacheIndexStatement) {
             CacheIndexStatementAssert.assertIs(assertContext, (MySQLCacheIndexStatement) actual, (CacheIndexStatementTestCase) expected);
         } else if (actual instanceof MySQLLoadIndexInfoStatement) {
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dal/impl/KillStatementAssert.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dal/impl/KillStatementAssert.java
index 3d43a336f36..1e6299389f0 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dal/impl/KillStatementAssert.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dal/impl/KillStatementAssert.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
-import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.KillStatement;
+import org.apache.shardingsphere.sql.parser.statement.mysql.dal.MySQLKillStatement;
 import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.SQLCaseAssertContext;
 import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.dal.KillStatementTestCase;
 
@@ -39,7 +39,7 @@ public final class KillStatementAssert {
      * @param actual actual kill statement
      * @param expected expected kill statement test case
      */
-    public static void assertIs(final SQLCaseAssertContext assertContext, final KillStatement actual, final KillStatementTestCase expected) {
+    public static void assertIs(final SQLCaseAssertContext assertContext, final MySQLKillStatement actual, final KillStatementTestCase expected) {
         assertThat(assertContext.getText("Kill statement context does not match: "), actual.getProcessId(), is(expected.getProcessId()));
     }
 }