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 d4671c1352a Refactor TableMetaDataNodePath.getVersionNodePath() 
(#34585)
d4671c1352a is described below

commit d4671c1352a2a156810ae8625d2bfc6cba08dba5
Author: Liang Zhang <zhangli...@apache.org>
AuthorDate: Fri Feb 7 11:57:09 2025 +0800

    Refactor TableMetaDataNodePath.getVersionNodePath() (#34585)
---
 .../service/TableMetaDataPersistService.java       | 11 +++----
 .../node/path/metadata/TableMetaDataNodePath.java  | 35 ++++------------------
 .../path/metadata/TableMetaDataNodePathTest.java   | 16 +++-------
 3 files changed, 15 insertions(+), 47 deletions(-)

diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/metadata/service/TableMetaDataPersistService.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/metadata/service/TableMetaDataPersistService.java
index 261179b3ec1..16657c63a4a 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/metadata/service/TableMetaDataPersistService.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/metadata/service/TableMetaDataPersistService.java
@@ -67,7 +67,7 @@ public final class TableMetaDataPersistService {
     public ShardingSphereTable load(final String databaseName, final String 
schemaName, final String tableName) {
         Integer activeVersion = getActiveVersion(databaseName, schemaName, 
tableName);
         String tableContent = repository.query(
-                TableMetaDataNodePath.getTableVersionPath(databaseName, 
schemaName, tableName, null == activeVersion ? MetaDataVersion.DEFAULT_VERSION 
: activeVersion));
+                TableMetaDataNodePath.getVersionNodePath(databaseName, 
schemaName, tableName).getVersionPath(null == activeVersion ? 
MetaDataVersion.DEFAULT_VERSION : activeVersion));
         return swapper.swapToObject(YamlEngine.unmarshal(tableContent, 
YamlShardingSphereTable.class));
     }
     
@@ -82,10 +82,11 @@ public final class TableMetaDataPersistService {
         Collection<MetaDataVersion> metaDataVersions = new LinkedList<>();
         for (ShardingSphereTable each : tables) {
             String tableName = each.getName().toLowerCase();
-            int nextActiveVersion = 
metaDataVersionPersistService.getNextVersion(TableMetaDataNodePath.getTableVersionsPath(databaseName,
 schemaName, tableName));
-            
repository.persist(TableMetaDataNodePath.getTableVersionPath(databaseName, 
schemaName, tableName, nextActiveVersion), 
YamlEngine.marshal(swapper.swapToYamlConfiguration(each)));
+            int nextActiveVersion = 
metaDataVersionPersistService.getNextVersion(TableMetaDataNodePath.getVersionNodePath(databaseName,
 schemaName, tableName).getVersionsPath());
+            repository.persist(
+                    TableMetaDataNodePath.getVersionNodePath(databaseName, 
schemaName, tableName).getVersionPath(nextActiveVersion), 
YamlEngine.marshal(swapper.swapToYamlConfiguration(each)));
             if (null == getActiveVersion(databaseName, schemaName, tableName)) 
{
-                
repository.persist(TableMetaDataNodePath.getTableActiveVersionPath(databaseName,
 schemaName, tableName), String.valueOf(MetaDataVersion.DEFAULT_VERSION));
+                
repository.persist(TableMetaDataNodePath.getVersionNodePath(databaseName, 
schemaName, tableName).getActiveVersionPath(), 
String.valueOf(MetaDataVersion.DEFAULT_VERSION));
             }
             metaDataVersions.add(
                     new 
MetaDataVersion(TableMetaDataNodePath.getTablePath(databaseName, schemaName, 
tableName), getActiveVersion(databaseName, schemaName, tableName), 
nextActiveVersion));
@@ -94,7 +95,7 @@ public final class TableMetaDataPersistService {
     }
     
     private Integer getActiveVersion(final String databaseName, final String 
schemaName, final String tableName) {
-        String value = 
repository.query(TableMetaDataNodePath.getTableActiveVersionPath(databaseName, 
schemaName, tableName));
+        String value = 
repository.query(TableMetaDataNodePath.getVersionNodePath(databaseName, 
schemaName, tableName).getActiveVersionPath());
         return Strings.isNullOrEmpty(value) ? null : Integer.parseInt(value);
     }
     
diff --git 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/TableMetaDataNodePath.java
 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/TableMetaDataNodePath.java
index 2c5b6494eb6..7688006d16c 100644
--- 
a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/TableMetaDataNodePath.java
+++ 
b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/TableMetaDataNodePath.java
@@ -59,40 +59,15 @@ public final class TableMetaDataNodePath {
     }
     
     /**
-     * Get table active version path.
+     * Get table version node path.
      *
      * @param databaseName database name
      * @param schemaName schema name
      * @param tableName table name
-     * @return tables active version path
+     * @return table version node path
      */
-    public static String getTableActiveVersionPath(final String databaseName, 
final String schemaName, final String tableName) {
-        return new VersionNodePath(getTablePath(databaseName, schemaName, 
tableName)).getActiveVersionPath();
-    }
-    
-    /**
-     * Get table versions path.
-     *
-     * @param databaseName database name
-     * @param schemaName schema name
-     * @param tableName table name
-     * @return tables versions path
-     */
-    public static String getTableVersionsPath(final String databaseName, final 
String schemaName, final String tableName) {
-        return new VersionNodePath(getTablePath(databaseName, schemaName, 
tableName)).getVersionsPath();
-    }
-    
-    /**
-     * Get table version path.
-     *
-     * @param databaseName database name
-     * @param schemaName schema name
-     * @param tableName table name
-     * @param version version
-     * @return table version path
-     */
-    public static String getTableVersionPath(final String databaseName, final 
String schemaName, final String tableName, final int version) {
-        return String.join("/", getTableVersionsPath(databaseName, schemaName, 
tableName), String.valueOf(version));
+    public static VersionNodePath getVersionNodePath(final String 
databaseName, final String schemaName, final String tableName) {
+        return new VersionNodePath(getTablePath(databaseName, schemaName, 
tableName));
     }
     
     /**
@@ -124,7 +99,7 @@ public final class TableMetaDataNodePath {
      * @return table name
      */
     public static Optional<String> findTableNameByActiveVersionPath(final 
String path) {
-        Pattern pattern = 
Pattern.compile(getTableActiveVersionPath(IDENTIFIER_PATTERN, 
IDENTIFIER_PATTERN, IDENTIFIER_PATTERN), Pattern.CASE_INSENSITIVE);
+        Pattern pattern = 
Pattern.compile(getVersionNodePath(IDENTIFIER_PATTERN, IDENTIFIER_PATTERN, 
IDENTIFIER_PATTERN).getActiveVersionPath(), Pattern.CASE_INSENSITIVE);
         Matcher matcher = pattern.matcher(path);
         return matcher.find() ? Optional.of(matcher.group(3)) : 
Optional.empty();
     }
diff --git 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/metadata/TableMetaDataNodePathTest.java
 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/metadata/TableMetaDataNodePathTest.java
index a0e1c61cd26..418bc674688 100644
--- 
a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/metadata/TableMetaDataNodePathTest.java
+++ 
b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/metadata/TableMetaDataNodePathTest.java
@@ -39,18 +39,10 @@ class TableMetaDataNodePathTest {
     }
     
     @Test
-    void assertGetTableActiveVersionPath() {
-        assertThat(TableMetaDataNodePath.getTableActiveVersionPath("foo_db", 
"foo_schema", "foo_tbl"), 
is("/metadata/foo_db/schemas/foo_schema/tables/foo_tbl/active_version"));
-    }
-    
-    @Test
-    void assertGetTableVersionsPath() {
-        assertThat(TableMetaDataNodePath.getTableVersionsPath("foo_db", 
"foo_schema", "foo_tbl"), 
is("/metadata/foo_db/schemas/foo_schema/tables/foo_tbl/versions"));
-    }
-    
-    @Test
-    void assertGetTableVersionPath() {
-        assertThat(TableMetaDataNodePath.getTableVersionPath("foo_db", 
"foo_schema", "foo_tbl", 0), 
is("/metadata/foo_db/schemas/foo_schema/tables/foo_tbl/versions/0"));
+    void assertGetVersionNodePath() {
+        assertThat(TableMetaDataNodePath.getVersionNodePath("foo_db", 
"foo_schema", "foo_tbl").getActiveVersionPath(), 
is("/metadata/foo_db/schemas/foo_schema/tables/foo_tbl/active_version"));
+        assertThat(TableMetaDataNodePath.getVersionNodePath("foo_db", 
"foo_schema", "foo_tbl").getVersionsPath(), 
is("/metadata/foo_db/schemas/foo_schema/tables/foo_tbl/versions"));
+        assertThat(TableMetaDataNodePath.getVersionNodePath("foo_db", 
"foo_schema", "foo_tbl").getVersionPath(0), 
is("/metadata/foo_db/schemas/foo_schema/tables/foo_tbl/versions/0"));
     }
     
     @Test

Reply via email to