This is an automated email from the ASF dual-hosted git repository.

panjuan 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 4d13af3463a Fix TODO in RALBackendHandlerFactory and 
QueryableRALBackendHandler. (#24568)
4d13af3463a is described below

commit 4d13af3463a21ae85636228d26c0aa1e816cf658
Author: Raigor <[email protected]>
AuthorDate: Mon Mar 13 08:25:24 2023 +0800

    Fix TODO in RALBackendHandlerFactory and QueryableRALBackendHandler. 
(#24568)
---
 .../distsql/ral/QueryableRALBackendHandler.java    | 28 ++++++++++++----------
 .../handler/distsql/ral/RALBackendHandler.java     | 21 +---------------
 .../distsql/ral/RALBackendHandlerFactory.java      | 12 ++++------
 .../ral/UpdatableGlobalRuleRALBackendHandler.java  |  5 ++--
 .../distsql/ral/UpdatableRALBackendHandler.java    |  4 +---
 5 files changed, 26 insertions(+), 44 deletions(-)

diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/QueryableRALBackendHandler.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/QueryableRALBackendHandler.java
index 4237a76b3e1..b355617f10f 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/QueryableRALBackendHandler.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/QueryableRALBackendHandler.java
@@ -24,7 +24,6 @@ import 
org.apache.shardingsphere.distsql.handler.ral.query.InstanceContextRequir
 import 
org.apache.shardingsphere.distsql.handler.ral.query.MetaDataRequiredQueryableRALExecutor;
 import 
org.apache.shardingsphere.distsql.handler.ral.query.QueryableRALExecutor;
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.QueryableRALStatement;
-import org.apache.shardingsphere.distsql.parser.statement.ral.RALStatement;
 import org.apache.shardingsphere.infra.merge.result.MergedResult;
 import 
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataMergedResult;
 import 
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
@@ -54,21 +53,26 @@ import java.util.stream.Collectors;
  *
  * @param <T> type of queryable RAL statement
  */
-public final class QueryableRALBackendHandler<T extends QueryableRALStatement> 
extends RALBackendHandler<T> {
+public final class QueryableRALBackendHandler<T extends QueryableRALStatement> 
implements RALBackendHandler {
+    
+    private final T sqlStatement;
+    
+    private final ConnectionSession connectionSession;
     
     private List<QueryHeader> queryHeaders;
     
     private MergedResult mergedResult;
     
-    public QueryableRALBackendHandler(final RALStatement sqlStatement, final 
ConnectionSession connectionSession) {
-        // TODO remove this constructor after the refactoring of 
RALBackendHandler is complete
-        init(sqlStatement, connectionSession);
+    @SuppressWarnings("unchecked")
+    public QueryableRALBackendHandler(final QueryableRALStatement 
sqlStatement, final ConnectionSession connectionSession) {
+        this.sqlStatement = (T) sqlStatement;
+        this.connectionSession = connectionSession;
     }
     
     @SuppressWarnings("unchecked")
     @Override
     public ResponseHeader execute() {
-        QueryableRALExecutor<T> executor = 
TypedSPILoader.getService(QueryableRALExecutor.class, 
getSqlStatement().getClass().getName());
+        QueryableRALExecutor<T> executor = 
TypedSPILoader.getService(QueryableRALExecutor.class, 
sqlStatement.getClass().getName());
         mergedResult = getMergedResult(executor);
         queryHeaders = createQueryHeader(executor.getColumnNames());
         return new QueryResponseHeader(queryHeaders);
@@ -87,25 +91,25 @@ public final class QueryableRALBackendHandler<T extends 
QueryableRALStatement> e
         if (executor instanceof ConnectionSessionRequiredQueryableRALExecutor) 
{
             return 
getMergedResultByConnectionSessionRequiredExecutor((ConnectionSessionRequiredQueryableRALExecutor<T>)
 executor);
         }
-        return createMergedResult(executor.getRows(getSqlStatement()));
+        return createMergedResult(executor.getRows(sqlStatement));
     }
     
     private MergedResult 
getMergedResultByInstanceContextRequiredExecutor(final 
InstanceContextRequiredQueryableRALExecutor<T> executor) {
-        return 
createMergedResult(executor.getRows(ProxyContext.getInstance().getContextManager().getInstanceContext(),
 getSqlStatement()));
+        return 
createMergedResult(executor.getRows(ProxyContext.getInstance().getContextManager().getInstanceContext(),
 sqlStatement));
     }
     
     private MergedResult getMergedResultByMetaDataRequiredExecutor(final 
MetaDataRequiredQueryableRALExecutor<T> executor) {
-        return 
createMergedResult(executor.getRows(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData(),
 getSqlStatement()));
+        return 
createMergedResult(executor.getRows(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData(),
 sqlStatement));
     }
     
     private MergedResult getMergedResultByDatabaseRequiredExecutor(final 
DatabaseRequiredQueryableRALExecutor<T> executor) {
-        String databaseName = getDatabaseName(getConnectionSession(), 
getSqlStatement());
+        String databaseName = getDatabaseName(connectionSession, sqlStatement);
         checkDatabaseName(databaseName);
-        return 
createMergedResult(executor.getRows(ProxyContext.getInstance().getDatabase(databaseName),
 getSqlStatement()));
+        return 
createMergedResult(executor.getRows(ProxyContext.getInstance().getDatabase(databaseName),
 sqlStatement));
     }
     
     private MergedResult 
getMergedResultByConnectionSessionRequiredExecutor(final 
ConnectionSessionRequiredQueryableRALExecutor<T> executor) {
-        return 
createMergedResult(executor.getRows(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData(),
 getConnectionSession(), getSqlStatement()));
+        return 
createMergedResult(executor.getRows(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData(),
 connectionSession, sqlStatement));
     }
     
     private List<QueryHeader> createQueryHeader(final Collection<String> 
columnNames) {
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/RALBackendHandler.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/RALBackendHandler.java
index fec2f20645a..1d622db1270 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/RALBackendHandler.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/RALBackendHandler.java
@@ -17,29 +17,10 @@
 
 package org.apache.shardingsphere.proxy.backend.handler.distsql.ral;
 
-import lombok.Getter;
-import org.apache.shardingsphere.distsql.parser.statement.ral.RALStatement;
 import 
org.apache.shardingsphere.proxy.backend.handler.distsql.DistSQLBackendHandler;
-import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
 
 /**
  * RAL backend handler.
  */
-@Getter
-public abstract class RALBackendHandler<T extends RALStatement> implements 
DistSQLBackendHandler {
-    
-    private T sqlStatement;
-    
-    private ConnectionSession connectionSession;
-    
-    /**
-     * Initialize.
-     *
-     * @param sqlStatement SQL statement
-     * @param connectionSession connection session
-     */
-    public final void init(final RALStatement sqlStatement, final 
ConnectionSession connectionSession) {
-        this.sqlStatement = (T) sqlStatement;
-        this.connectionSession = connectionSession;
-    }
+public interface RALBackendHandler extends DistSQLBackendHandler {
 }
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/RALBackendHandlerFactory.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/RALBackendHandlerFactory.java
index 89f8b6e3043..191fbc6dc1c 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/RALBackendHandlerFactory.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/RALBackendHandlerFactory.java
@@ -19,11 +19,10 @@ package 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
-import org.apache.shardingsphere.distsql.handler.ral.update.RALUpdater;
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.QueryableRALStatement;
 import org.apache.shardingsphere.distsql.parser.statement.ral.RALStatement;
+import 
org.apache.shardingsphere.distsql.parser.statement.ral.UpdatableGlobalRuleRALStatement;
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.UpdatableRALStatement;
-import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
 import org.apache.shardingsphere.proxy.backend.handler.ProxyBackendHandler;
 import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
 
@@ -42,12 +41,11 @@ public final class RALBackendHandlerFactory {
      */
     public static ProxyBackendHandler newInstance(final RALStatement 
sqlStatement, final ConnectionSession connectionSession) {
         if (sqlStatement instanceof QueryableRALStatement) {
-            return new QueryableRALBackendHandler<>(sqlStatement, 
connectionSession);
+            return new QueryableRALBackendHandler<>((QueryableRALStatement) 
sqlStatement, connectionSession);
         }
-        // TODO remove other updatable RAL backend handlers after the 
refactoring of RALBackendHandler is complete
-        if (TypedSPILoader.contains(RALUpdater.class, 
sqlStatement.getClass().getName())) {
-            return new UpdatableRALBackendHandler<>((UpdatableRALStatement) 
sqlStatement, connectionSession);
+        if (sqlStatement instanceof UpdatableGlobalRuleRALStatement) {
+            new 
UpdatableGlobalRuleRALBackendHandler((UpdatableGlobalRuleRALStatement) 
sqlStatement);
         }
-        return new UpdatableGlobalRuleRALBackendHandler(sqlStatement);
+        return new UpdatableRALBackendHandler<>((UpdatableRALStatement) 
sqlStatement, connectionSession);
     }
 }
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/UpdatableGlobalRuleRALBackendHandler.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/UpdatableGlobalRuleRALBackendHandler.java
index 3a30316d9c8..71063a1f128 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/UpdatableGlobalRuleRALBackendHandler.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/UpdatableGlobalRuleRALBackendHandler.java
@@ -20,6 +20,7 @@ package 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral;
 import 
org.apache.shardingsphere.distsql.handler.exception.rule.MissingRequiredRuleException;
 import 
org.apache.shardingsphere.distsql.handler.ral.update.GlobalRuleRALUpdater;
 import org.apache.shardingsphere.distsql.parser.statement.ral.RALStatement;
+import 
org.apache.shardingsphere.distsql.parser.statement.ral.UpdatableGlobalRuleRALStatement;
 import org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
 import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
 import org.apache.shardingsphere.mode.manager.ContextManager;
@@ -36,9 +37,9 @@ import java.util.LinkedList;
  */
 public final class UpdatableGlobalRuleRALBackendHandler implements 
DistSQLBackendHandler {
     
-    private final RALStatement sqlStatement;
+    private final UpdatableGlobalRuleRALStatement sqlStatement;
     
-    public UpdatableGlobalRuleRALBackendHandler(final RALStatement 
sqlStatement) {
+    public UpdatableGlobalRuleRALBackendHandler(final 
UpdatableGlobalRuleRALStatement sqlStatement) {
         this.sqlStatement = sqlStatement;
     }
     
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/UpdatableRALBackendHandler.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/UpdatableRALBackendHandler.java
index 329a5a15552..e3a449c0931 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/UpdatableRALBackendHandler.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/UpdatableRALBackendHandler.java
@@ -18,7 +18,6 @@
 package org.apache.shardingsphere.proxy.backend.handler.distsql.ral;
 
 import lombok.RequiredArgsConstructor;
-import lombok.Setter;
 import org.apache.shardingsphere.distsql.handler.ral.update.RALUpdater;
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.UpdatableRALStatement;
 import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
@@ -33,8 +32,7 @@ import java.sql.SQLException;
  * Updatable RAL backend handler.
  */
 @RequiredArgsConstructor
-@Setter
-public final class UpdatableRALBackendHandler<T extends UpdatableRALStatement> 
extends RALBackendHandler<T> {
+public final class UpdatableRALBackendHandler<T extends UpdatableRALStatement> 
implements RALBackendHandler {
     
     private final UpdatableRALStatement sqlStatement;
     

Reply via email to