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 01:44:04 UTC

(shardingsphere) branch master updated: Refactor route deciders to use DALStatement instead of SQLStatement (#35639)

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 173fd0555b2 Refactor route deciders to use DALStatement instead of SQLStatement (#35639)
173fd0555b2 is described below

commit 173fd0555b24cb0cad1b9714f5f2a80251a94499
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Sun Jun 8 09:43:57 2025 +0800

    Refactor route deciders to use DALStatement instead of SQLStatement (#35639)
---
 .../engine/tableless/DialectTablelessBroadcastRouteDecider.java     | 6 +++---
 .../infra/route/engine/tableless/TablelessRouteEngineFactory.java   | 4 ++--
 .../route/engine/tableless/TablelessRouteEngineFactoryTest.java     | 3 +--
 .../infra/route/mysql/MySQLTablelessBroadcastRouteDecider.java      | 6 +++---
 4 files changed, 9 insertions(+), 10 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/DialectTablelessBroadcastRouteDecider.java
index 03c5c9b30a9..f67f9abb1a1 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/DialectTablelessBroadcastRouteDecider.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.infra.route.engine.tableless;
 
 import org.apache.shardingsphere.infra.database.core.spi.DatabaseTypedSPI;
 import org.apache.shardingsphere.infra.spi.annotation.SingletonSPI;
-import org.apache.shardingsphere.sql.parser.statement.core.statement.SQLStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.DALStatement;
 
 /**
  * Dialect tableless broadcast route decider.
@@ -33,7 +33,7 @@ public interface DialectTablelessBroadcastRouteDecider extends DatabaseTypedSPI
      * @param sqlStatement SQL statement
      * @return broadcast route or not
      */
-    boolean isDataSourceBroadcastRoute(SQLStatement sqlStatement);
+    boolean isDataSourceBroadcastRoute(DALStatement sqlStatement);
     
     /**
      * Whether instance broadcast route.
@@ -41,5 +41,5 @@ public interface DialectTablelessBroadcastRouteDecider extends DatabaseTypedSPI
      * @param sqlStatement SQL statement
      * @return broadcast route or not
      */
-    boolean isInstanceBroadcastRoute(SQLStatement sqlStatement);
+    boolean isInstanceBroadcastRoute(DALStatement sqlStatement);
 }
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 48bfff90a7f..cd85a1ea12d 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
@@ -71,7 +71,7 @@ public final class TablelessRouteEngineFactory {
         SQLStatement sqlStatement = queryContext.getSqlStatementContext().getSqlStatement();
         // TODO remove this logic when proxy and jdbc support all dal statement @duanzhengqiang
         if (sqlStatement instanceof DALStatement) {
-            return getDALRouteEngine(sqlStatement, database, queryContext.getSqlStatementContext().getDatabaseType());
+            return getDALRouteEngine((DALStatement) sqlStatement, database, queryContext.getSqlStatementContext().getDatabaseType());
         }
         // TODO Support more TCL statements by transaction module, then remove this.
         if (sqlStatement instanceof TCLStatement) {
@@ -86,7 +86,7 @@ public final class TablelessRouteEngineFactory {
         return new TablelessIgnoreRouteEngine();
     }
     
-    private static TablelessRouteEngine getDALRouteEngine(final SQLStatement sqlStatement, final ShardingSphereDatabase database, final DatabaseType databaseType) {
+    private static TablelessRouteEngine getDALRouteEngine(final DALStatement sqlStatement, final ShardingSphereDatabase database, final DatabaseType databaseType) {
         Optional<DialectTablelessBroadcastRouteDecider> dialectTablelessBroadcastRouteDecider = DatabaseTypedSPILoader.findService(DialectTablelessBroadcastRouteDecider.class, databaseType);
         if (sqlStatement instanceof ShowTablesStatement || sqlStatement instanceof ShowTableStatusStatement || sqlStatement instanceof SetStatement
                 || sqlStatement instanceof ResetParameterStatement || sqlStatement instanceof ShowDatabasesStatement || sqlStatement instanceof LoadStatement) {
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 cd02671f5d0..bf703e07f45 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
@@ -33,7 +33,6 @@ import org.apache.shardingsphere.infra.route.engine.tableless.type.unicast.Table
 import org.apache.shardingsphere.infra.session.connection.ConnectionContext;
 import org.apache.shardingsphere.infra.session.query.QueryContext;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
-import org.apache.shardingsphere.sql.parser.statement.core.statement.SQLStatement;
 import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.DALStatement;
 import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.SetStatement;
 import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.ShowDatabasesStatement;
@@ -120,7 +119,7 @@ class TablelessRouteEngineFactoryTest {
     
     @Test
     void assertNewInstanceForInstanceBroadcastRoute() {
-        SQLStatement sqlStatement = mock(DALStatement.class);
+        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));
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/MySQLTablelessBroadcastRouteDecider.java
index 6e4ed7eb9b1..dbccd93ed6f 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/MySQLTablelessBroadcastRouteDecider.java
@@ -18,9 +18,9 @@
 package org.apache.shardingsphere.infra.route.mysql;
 
 import org.apache.shardingsphere.infra.route.engine.tableless.DialectTablelessBroadcastRouteDecider;
-import org.apache.shardingsphere.sql.parser.statement.core.statement.SQLStatement;
 import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.AlterResourceGroupStatement;
 import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.CreateResourceGroupStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.DALStatement;
 import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.DropResourceGroupStatement;
 import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.SetResourceGroupStatement;
 
@@ -30,12 +30,12 @@ import org.apache.shardingsphere.sql.parser.statement.core.statement.dal.SetReso
 public final class MySQLTablelessBroadcastRouteDecider implements DialectTablelessBroadcastRouteDecider {
     
     @Override
-    public boolean isDataSourceBroadcastRoute(final SQLStatement sqlStatement) {
+    public boolean isDataSourceBroadcastRoute(final DALStatement sqlStatement) {
         return false;
     }
     
     @Override
-    public boolean isInstanceBroadcastRoute(final SQLStatement sqlStatement) {
+    public boolean isInstanceBroadcastRoute(final DALStatement sqlStatement) {
         return sqlStatement instanceof CreateResourceGroupStatement || sqlStatement instanceof AlterResourceGroupStatement || sqlStatement instanceof DropResourceGroupStatement
                 || sqlStatement instanceof SetResourceGroupStatement;
     }