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 c6ec965  Minor refactor for SchemaMetaDataNode (#13006)
c6ec965 is described below

commit c6ec9650d0a9190eb6d17cc2ecf6085513f69f7d
Author: Haoran Meng <[email protected]>
AuthorDate: Tue Oct 12 20:55:10 2021 +0800

    Minor refactor for SchemaMetaDataNode (#13006)
---
 .../mode/metadata/persist/node/SchemaMetaDataNode.java              | 6 +++---
 .../mode/metadata/persist/node/SchemaMetaDataNodeTest.java          | 5 +++++
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git 
a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/node/SchemaMetaDataNode.java
 
b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/node/SchemaMetaDataNode.java
index f9b5e69..2801aa8 100644
--- 
a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/node/SchemaMetaDataNode.java
+++ 
b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/node/SchemaMetaDataNode.java
@@ -97,11 +97,11 @@ public final class SchemaMetaDataNode {
      * @return schema name
      */
     public static String getSchemaName(final String configurationNodeFullPath) 
{
-        Pattern pattern = Pattern.compile(getMetaDataNodePath() + "/(\\w+)" + 
"(/datasource|/rule|/schema)?", Pattern.CASE_INSENSITIVE);
+        Pattern pattern = Pattern.compile(getMetaDataNodePath() + 
"/([\\w\\-]+)" + "(/datasources|/rules|/schema)?", Pattern.CASE_INSENSITIVE);
         Matcher matcher = pattern.matcher(configurationNodeFullPath);
         return matcher.find() ? matcher.group(1) : "";
     }
-
+    
     /**
      * Get schema name by schema path.
      *
@@ -109,7 +109,7 @@ public final class SchemaMetaDataNode {
      * @return schema name
      */
     public static String getSchemaNameBySchemaPath(final String schemaPath) {
-        Pattern pattern = Pattern.compile(getMetaDataNodePath() + "/(\\w+)$", 
Pattern.CASE_INSENSITIVE);
+        Pattern pattern = Pattern.compile(getMetaDataNodePath() + 
"/([\\w\\-]+)$", Pattern.CASE_INSENSITIVE);
         Matcher matcher = pattern.matcher(schemaPath);
         return matcher.find() ? matcher.group(1) : "";
     }
diff --git 
a/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/node/SchemaMetaDataNodeTest.java
 
b/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/node/SchemaMetaDataNodeTest.java
index ec0443e..96735af 100644
--- 
a/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/node/SchemaMetaDataNodeTest.java
+++ 
b/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/node/SchemaMetaDataNodeTest.java
@@ -36,6 +36,11 @@ public class SchemaMetaDataNodeTest {
     }
     
     @Test
+    public void assertGetSchemaNameWithLine() {
+        
assertThat(SchemaMetaDataNode.getSchemaName("/metadata/logic-db-test/rules"), 
is("logic-db-test"));
+    }
+    
+    @Test
     public void assertGetSchemaNamePath() {
         assertThat(SchemaMetaDataNode.getSchemaNamePath("sharding_db"), 
is("/metadata/sharding_db"));
     }

Reply via email to