You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by du...@apache.org on 2021/05/26 09:47:19 UTC

[shardingsphere] branch master updated: minor refactor for RQL (#10488)

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

duanzhengqiang 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 d0ea924  minor refactor for RQL (#10488)
d0ea924 is described below

commit d0ea9246c5c937fc6a37e0b43000a50fbbdad2c5
Author: Haoran Meng <me...@gmail.com>
AuthorDate: Wed May 26 17:46:30 2021 +0800

    minor refactor for RQL (#10488)
    
    Co-authored-by: menghaoranss <me...@apache.org>
---
 .../rql/impl/DatabaseDiscoveryRulesQueryBackendHandler.java    | 10 ++++++++--
 .../rql/impl/ReadwriteSplittingRulesQueryBackendHandler.java   | 10 ++++++++--
 .../rql/impl/ShardingBindingTableRulesQueryBackendHandler.java |  2 +-
 .../impl/ShardingBroadcastTableRulesQueryBackendHandler.java   |  2 +-
 .../impl/DatabaseDiscoveryRulesQueryBackendHandlerTest.java    |  2 +-
 .../impl/ReadwriteSplittingRulesQueryBackendHandlerTest.java   |  4 ++--
 6 files changed, 21 insertions(+), 9 deletions(-)

diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/impl/DatabaseDiscoveryRulesQueryBackendHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/impl/DatabaseDiscoveryRulesQueryBackendHandler.java
index 4fd1a79..fb035f9 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/impl/DatabaseDiscoveryRulesQueryBackendHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/impl/DatabaseDiscoveryRulesQueryBackendHandler.java
@@ -17,6 +17,7 @@
 
 package org.apache.shardingsphere.proxy.backend.text.distsql.rql.impl;
 
+import com.google.common.base.Joiner;
 import com.google.common.collect.Maps;
 import org.apache.shardingsphere.dbdiscovery.api.config.DatabaseDiscoveryRuleConfiguration;
 import org.apache.shardingsphere.dbdiscovery.api.config.rule.DatabaseDiscoveryDataSourceRuleConfiguration;
@@ -37,7 +38,10 @@ import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Optional;
+import java.util.Properties;
+import java.util.stream.Collectors;
 
 /**
  * Backend handler for show database discovery rules.
@@ -82,8 +86,10 @@ public final class DatabaseDiscoveryRulesQueryBackendHandler extends SchemaRequi
     @Override
     public Collection<Object> getRowData() {
         DatabaseDiscoveryDataSourceRuleConfiguration ruleConfig = data.next();
-        return Arrays.asList(ruleConfig.getName(), ruleConfig.getDataSourceNames(),
+        Properties discoverProps = discoverTypes.get(ruleConfig.getDiscoveryTypeName()).getProps();
+        return Arrays.asList(ruleConfig.getName(), Joiner.on(",").join(ruleConfig.getDataSourceNames()),
                 discoverTypes.get(ruleConfig.getDiscoveryTypeName()).getType(),
-                discoverTypes.get(ruleConfig.getDiscoveryTypeName()).getProps());
+                Objects.nonNull(discoverProps) ? Joiner.on(",").join(discoverProps.entrySet().stream()
+                        .map(each -> Joiner.on(":").join(each.getKey(), each.getValue())).collect(Collectors.toList())) : "");
     }
 }
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/impl/ReadwriteSplittingRulesQueryBackendHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/impl/ReadwriteSplittingRulesQueryBackendHandler.java
index 1b4d92e..c6dbce1 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/impl/ReadwriteSplittingRulesQueryBackendHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/impl/ReadwriteSplittingRulesQueryBackendHandler.java
@@ -17,6 +17,7 @@
 
 package org.apache.shardingsphere.proxy.backend.text.distsql.rql.impl;
 
+import com.google.common.base.Joiner;
 import com.google.common.collect.Maps;
 import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowReadwriteSplittingRulesStatement;
 import org.apache.shardingsphere.infra.config.algorithm.ShardingSphereAlgorithmConfiguration;
@@ -37,7 +38,10 @@ import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Optional;
+import java.util.Properties;
+import java.util.stream.Collectors;
 
 /**
  * Backend handler for show readwrite splitting rules.
@@ -84,9 +88,11 @@ public final class ReadwriteSplittingRulesQueryBackendHandler extends SchemaRequ
     @Override
     public Collection<Object> getRowData() {
         ReadwriteSplittingDataSourceRuleConfiguration ruleConfig = data.next();
+        Properties loadBalancerProps = loadBalancers.get(ruleConfig.getLoadBalancerName()).getProps();
         return Arrays.asList(ruleConfig.getName(), ruleConfig.getAutoAwareDataSourceName(),
-                ruleConfig.getWriteDataSourceName(), ruleConfig.getReadDataSourceNames(),
+                ruleConfig.getWriteDataSourceName(), Joiner.on(",").join(ruleConfig.getReadDataSourceNames()),
                 loadBalancers.get(ruleConfig.getLoadBalancerName()).getType(),
-                loadBalancers.get(ruleConfig.getLoadBalancerName()).getProps());
+                Objects.nonNull(loadBalancerProps) ? Joiner.on(",").join(loadBalancerProps.entrySet().stream()
+                        .map(each -> Joiner.on(":").join(each.getKey(), each.getValue())).collect(Collectors.toList())) : "");
     }
 }
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/impl/ShardingBindingTableRulesQueryBackendHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/impl/ShardingBindingTableRulesQueryBackendHandler.java
index 3c79b3e..e05b476 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/impl/ShardingBindingTableRulesQueryBackendHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/impl/ShardingBindingTableRulesQueryBackendHandler.java
@@ -57,7 +57,7 @@ public final class ShardingBindingTableRulesQueryBackendHandler extends SchemaRe
 
     private List<QueryHeader> getQueryHeader() {
         List<QueryHeader> result = new LinkedList<>();
-        result.add(new QueryHeader(schema, "", "shardingBindingTable", "shardingBindingTable", Types.CHAR, "CHAR", 255, 0, false, false, false, false));
+        result.add(new QueryHeader(schema, "", "shardingBindingTables", "shardingBindingTables", Types.CHAR, "CHAR", 255, 0, false, false, false, false));
         return result;
     }
     
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/impl/ShardingBroadcastTableRulesQueryBackendHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/impl/ShardingBroadcastTableRulesQueryBackendHandler.java
index b8485ac..ab7077e 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/impl/ShardingBroadcastTableRulesQueryBackendHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/impl/ShardingBroadcastTableRulesQueryBackendHandler.java
@@ -57,7 +57,7 @@ public final class ShardingBroadcastTableRulesQueryBackendHandler extends Schema
 
     private List<QueryHeader> getQueryHeader() {
         List<QueryHeader> result = new LinkedList<>();
-        result.add(new QueryHeader(schema, "", "shardingBroadcastTable", "shardingBroadcastTable", Types.CHAR, "CHAR", 255, 0, false, false, false, false));
+        result.add(new QueryHeader(schema, "", "shardingBroadcastTables", "shardingBroadcastTables", Types.CHAR, "CHAR", 255, 0, false, false, false, false));
         return result;
     }
     
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/impl/DatabaseDiscoveryRulesQueryBackendHandlerTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/impl/DatabaseDiscoveryRulesQueryBackendHandlerTest.java
index 7d6cf18..83091af 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/impl/DatabaseDiscoveryRulesQueryBackendHandlerTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/impl/DatabaseDiscoveryRulesQueryBackendHandlerTest.java
@@ -90,7 +90,7 @@ public final class DatabaseDiscoveryRulesQueryBackendHandlerTest {
         Collection<Object> rowData = handler.getRowData();
         assertThat(rowData.size(), is(4));
         assertTrue(rowData.contains("ms_group"));
-        assertTrue(rowData.contains(Arrays.asList("ds_0", "ds_1")));
+        assertTrue(rowData.contains("ds_0,ds_1"));
         assertTrue(rowData.contains("MGR"));
     }
 
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/impl/ReadwriteSplittingRulesQueryBackendHandlerTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/impl/ReadwriteSplittingRulesQueryBackendHandlerTest.java
index c30608e..c92fba3 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/impl/ReadwriteSplittingRulesQueryBackendHandlerTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/impl/ReadwriteSplittingRulesQueryBackendHandlerTest.java
@@ -92,9 +92,9 @@ public final class ReadwriteSplittingRulesQueryBackendHandlerTest {
         assertTrue(rowData.contains("pr_ds"));
         assertTrue(rowData.contains("ms_group"));
         assertTrue(rowData.contains("ds_primary"));
-        assertTrue(rowData.contains(Arrays.asList("ds_slave_0", "ds_slave_1")));
+        assertTrue(rowData.contains("ds_slave_0,ds_slave_1"));
         assertTrue(rowData.contains("random"));
-        assertTrue(rowData.contains(buildProps()));
+        assertTrue(rowData.contains("read_weight:2:1"));
     }
 
     private ReadwriteSplittingRuleConfiguration buildReadwriteSplittingRuleConfiguration() {