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 2022/08/19 14:38:50 UTC

[shardingsphere] branch master updated: Make scaling query DistSQL could be executed when no database selected (#20294)

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 ada4ae5b698 Make scaling query DistSQL could be executed when no database selected (#20294)
ada4ae5b698 is described below

commit ada4ae5b6987bbabf16dad787cd1ec35f72b159c
Author: Hongsheng Zhong <sa...@126.com>
AuthorDate: Fri Aug 19 22:38:42 2022 +0800

    Make scaling query DistSQL could be executed when no database selected (#20294)
---
 .../distsql/ral/RALBackendHandlerFactory.java      |  2 +-
 .../query/QueryableScalingRALBackendHandler.java   | 23 ++++++++++------------
 2 files changed, 11 insertions(+), 14 deletions(-)

diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/RALBackendHandlerFactory.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/RALBackendHandlerFactory.java
index ed590bb9144..0dbac6a9967 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/RALBackendHandlerFactory.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/RALBackendHandlerFactory.java
@@ -143,7 +143,7 @@ public final class RALBackendHandlerFactory {
         }
         if (sqlStatement instanceof QueryableScalingRALStatement) {
             DistSQLResultSet resultSet = QueryableScalingRALBackendHandlerFactory.newInstance((QueryableScalingRALStatement) sqlStatement);
-            return new QueryableScalingRALBackendHandler(sqlStatement, connectionSession, (DatabaseDistSQLResultSet) resultSet);
+            return new QueryableScalingRALBackendHandler((QueryableScalingRALStatement) sqlStatement, (DatabaseDistSQLResultSet) resultSet);
         }
         if (sqlStatement instanceof UpdatableScalingRALStatement) {
             return new UpdatableScalingRALBackendHandler((UpdatableScalingRALStatement) sqlStatement, connectionSession);
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/migration/query/QueryableScalingRALBackendHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/migration/query/QueryableScalingRALBackendHandler.java
index 94172d88da0..e56753b2364 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/migration/query/QueryableScalingRALBackendHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/migration/query/QueryableScalingRALBackendHandler.java
@@ -17,16 +17,15 @@
 
 package org.apache.shardingsphere.proxy.backend.handler.distsql.ral.migration.query;
 
-import org.apache.shardingsphere.distsql.parser.statement.ral.RALStatement;
+import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.statement.ral.scaling.QueryableScalingRALStatement;
 import org.apache.shardingsphere.infra.distsql.query.DatabaseDistSQLResultSet;
-import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
-import org.apache.shardingsphere.proxy.backend.handler.DatabaseRequiredBackendHandler;
+import org.apache.shardingsphere.proxy.backend.handler.ProxyBackendHandler;
 import org.apache.shardingsphere.proxy.backend.response.data.QueryResponseCell;
 import org.apache.shardingsphere.proxy.backend.response.data.QueryResponseRow;
 import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
 import org.apache.shardingsphere.proxy.backend.response.header.query.QueryHeader;
 import org.apache.shardingsphere.proxy.backend.response.header.query.QueryResponseHeader;
-import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
 
 import java.sql.Types;
 import java.util.ArrayList;
@@ -36,21 +35,19 @@ import java.util.List;
 /**
  * Queryable scaling RAL backend handler.
  */
-public final class QueryableScalingRALBackendHandler extends DatabaseRequiredBackendHandler<RALStatement> {
+@RequiredArgsConstructor
+public final class QueryableScalingRALBackendHandler implements ProxyBackendHandler {
     
-    private final DatabaseDistSQLResultSet resultSet;
+    private final QueryableScalingRALStatement sqlStatement;
     
-    public QueryableScalingRALBackendHandler(final RALStatement sqlStatement, final ConnectionSession connectionSession, final DatabaseDistSQLResultSet resultSet) {
-        super(sqlStatement, connectionSession);
-        this.resultSet = resultSet;
-    }
+    private final DatabaseDistSQLResultSet resultSet;
     
     @Override
-    protected ResponseHeader execute(final String databaseName, final RALStatement sqlStatement) {
-        resultSet.init(ProxyContext.getInstance().getDatabase(databaseName), sqlStatement);
+    public ResponseHeader execute() {
+        resultSet.init(null, sqlStatement);
         List<QueryHeader> queryHeaders = new ArrayList<>();
         for (String each : resultSet.getColumnNames()) {
-            queryHeaders.add(new QueryHeader(databaseName, "", each, each, Types.CHAR, "CHAR", 255, 0, false, false, false, false));
+            queryHeaders.add(new QueryHeader("", "", each, each, Types.CHAR, "CHAR", 255, 0, false, false, false, false));
         }
         return new QueryResponseHeader(queryHeaders);
     }