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 2021/05/31 11:45:50 UTC

[shardingsphere] branch master updated: fixed #10453 (#10576)

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 15c1132  fixed #10453 (#10576)
15c1132 is described below

commit 15c1132992b329ee220bfe00c0ddff86615432cc
Author: totalo <48...@qq.com>
AuthorDate: Mon May 31 19:44:51 2021 +0800

    fixed #10453 (#10576)
---
 .../api/DistSQLStatementParserEngineTest.java      | 37 ++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/shardingsphere-distsql-parser/shardingsphere-distsql-parser-engine/src/test/java/org/apache/shardingsphere/distsql/parser/api/DistSQLStatementParserEngineTest.java b/shardingsphere-distsql-parser/shardingsphere-distsql-parser-engine/src/test/java/org/apache/shardingsphere/distsql/parser/api/DistSQLStatementParserEngineTest.java
index 675b3c2..bff261c 100644
--- a/shardingsphere-distsql-parser/shardingsphere-distsql-parser-engine/src/test/java/org/apache/shardingsphere/distsql/parser/api/DistSQLStatementParserEngineTest.java
+++ b/shardingsphere-distsql-parser/shardingsphere-distsql-parser-engine/src/test/java/org/apache/shardingsphere/distsql/parser/api/DistSQLStatementParserEngineTest.java
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.distsql.parser.api;
 import org.apache.shardingsphere.distsql.parser.segment.DataSourceSegment;
 import org.apache.shardingsphere.distsql.parser.segment.TableRuleSegment;
 import org.apache.shardingsphere.distsql.parser.segment.rdl.DatabaseDiscoveryRuleSegment;
+import org.apache.shardingsphere.distsql.parser.segment.rdl.ReadwriteSplittingRuleSegment;
 import org.apache.shardingsphere.distsql.parser.segment.rdl.EncryptColumnSegment;
 import org.apache.shardingsphere.distsql.parser.segment.rdl.EncryptRuleSegment;
 import org.apache.shardingsphere.distsql.parser.segment.rdl.ShardingBindingTableRuleSegment;
@@ -329,18 +330,54 @@ public final class DistSQLStatementParserEngineTest {
     public void assertParseStaticReadwriteSplittingRule() {
         SQLStatement sqlStatement = engine.parse(RDL_CREATE_STATIC_READWRITE_SPLITTING_RULE);
         assertTrue(sqlStatement instanceof CreateReadwriteSplittingRuleStatement);
+        CreateReadwriteSplittingRuleStatement statement = (CreateReadwriteSplittingRuleStatement) sqlStatement;
+        assertThat(statement.getReadwriteSplittingRules().size(), is(1));
+        List<ReadwriteSplittingRuleSegment> readwriteSplittingRuleSegments
+                = new ArrayList<>(((CreateReadwriteSplittingRuleStatement) sqlStatement).getReadwriteSplittingRules());
+        assertThat(readwriteSplittingRuleSegments.get(0).getName(), is("ms_group_0"));
+        assertThat(readwriteSplittingRuleSegments.get(0).getWriteDataSource(), is("primary_ds"));
+        assertThat(readwriteSplittingRuleSegments.get(0).getReadDataSources(), is(Arrays.asList("replica_ds_0", "replica_ds_1")));
+        assertThat(readwriteSplittingRuleSegments.get(0).getLoadBalancer(), is("random"));
+        assertThat(readwriteSplittingRuleSegments.get(0).getProps().size(), is(0));
     }
 
     @Test
     public void assertParseDynamicReadwriteSplittingRule() {
         SQLStatement sqlStatement = engine.parse(RDL_CREATE_DYNAMIC_READWRITE_SPLITTING_RULE);
         assertTrue(sqlStatement instanceof CreateReadwriteSplittingRuleStatement);
+        CreateReadwriteSplittingRuleStatement statement = (CreateReadwriteSplittingRuleStatement) sqlStatement;
+        assertThat(statement.getReadwriteSplittingRules().size(), is(1));
+        List<ReadwriteSplittingRuleSegment> readwriteSplittingRuleSegments
+                = new ArrayList<>(((CreateReadwriteSplittingRuleStatement) sqlStatement).getReadwriteSplittingRules());
+        assertThat(readwriteSplittingRuleSegments.get(0).getName(), is("ms_group_1"));
+        assertThat(readwriteSplittingRuleSegments.get(0).getAutoAwareResource(), is("group_0"));
+        assertNull(readwriteSplittingRuleSegments.get(0).getWriteDataSource());
+        assertNull(readwriteSplittingRuleSegments.get(0).getReadDataSources());
+        assertThat(readwriteSplittingRuleSegments.get(0).getLoadBalancer(), is("random"));
+        assertThat(readwriteSplittingRuleSegments.get(0).getProps().size(), is(1));
+        assertThat(readwriteSplittingRuleSegments.get(0).getProps().getProperty("read_weight"), is("'2:1'"));
     }
 
     @Test
     public void assertParseAlterReadwriteSplittingRule() {
         SQLStatement sqlStatement = engine.parse(RDL_ALTER_READWRITE_SPLITTING_RULE);
         assertTrue(sqlStatement instanceof AlterReadwriteSplittingRuleStatement);
+        AlterReadwriteSplittingRuleStatement statement = (AlterReadwriteSplittingRuleStatement) sqlStatement;
+        assertThat(statement.getReadwriteSplittingRules().size(), is(2));
+        List<ReadwriteSplittingRuleSegment> readwriteSplittingRuleSegments
+                = new ArrayList<>(((AlterReadwriteSplittingRuleStatement) sqlStatement).getReadwriteSplittingRules());
+        assertThat(readwriteSplittingRuleSegments.get(0).getName(), is("ms_group_0"));
+        assertThat(readwriteSplittingRuleSegments.get(0).getAutoAwareResource(), is("group_0"));
+        assertNull(readwriteSplittingRuleSegments.get(0).getWriteDataSource());
+        assertNull(readwriteSplittingRuleSegments.get(0).getReadDataSources());
+        assertThat(readwriteSplittingRuleSegments.get(0).getLoadBalancer(), is("random"));
+        assertThat(readwriteSplittingRuleSegments.get(0).getProps().size(), is(1));
+        assertThat(readwriteSplittingRuleSegments.get(0).getProps().getProperty("read_weight"), is("'2:1'"));
+        assertThat(readwriteSplittingRuleSegments.get(1).getName(), is("ms_group_1"));
+        assertThat(readwriteSplittingRuleSegments.get(1).getWriteDataSource(), is("primary_ds"));
+        assertThat(readwriteSplittingRuleSegments.get(1).getReadDataSources(), is(Arrays.asList("replica_ds_0", "replica_ds_1")));
+        assertThat(readwriteSplittingRuleSegments.get(1).getLoadBalancer(), is("random"));
+        assertThat(readwriteSplittingRuleSegments.get(1).getProps().size(), is(0));
     }
 
     @Test