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 c5dc97cdb19 Refactor DataNode.format() (#32955)
c5dc97cdb19 is described below

commit c5dc97cdb1911791d4e4a47fe847dd546a8c8808
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Sep 22 13:21:02 2024 +0800

    Refactor DataNode.format() (#32955)
---
 .../handler/query/ShowShardingTableNodesExecutor.java      |  9 ++++-----
 .../org/apache/shardingsphere/infra/datanode/DataNode.java |  9 ---------
 .../UnsupportedActualDataNodeStructureException.java       |  5 ++---
 .../metadata/database/schema/util/SchemaMetaDataUtils.java |  3 ++-
 .../apache/shardingsphere/infra/datanode/DataNodeTest.java | 14 --------------
 5 files changed, 8 insertions(+), 32 deletions(-)

diff --git 
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/ShowShardingTableNodesExecutor.java
 
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/ShowShardingTableNodesExecutor.java
index 69cdef27dbd..b344604ca46 100644
--- 
a/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/ShowShardingTableNodesExecutor.java
+++ 
b/features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/ShowShardingTableNodesExecutor.java
@@ -20,7 +20,6 @@ package 
org.apache.shardingsphere.sharding.distsql.handler.query;
 import lombok.Setter;
 import 
org.apache.shardingsphere.distsql.handler.aware.DistSQLExecutorRuleAware;
 import 
org.apache.shardingsphere.distsql.handler.engine.query.DistSQLQueryExecutor;
-import org.apache.shardingsphere.infra.datanode.DataNode;
 import 
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import 
org.apache.shardingsphere.sharding.distsql.statement.ShowShardingTableNodesStatement;
@@ -49,12 +48,12 @@ public final class ShowShardingTableNodesExecutor 
implements DistSQLQueryExecuto
     public Collection<LocalDataQueryResultRow> getRows(final 
ShowShardingTableNodesStatement sqlStatement, final ContextManager 
contextManager) {
         String tableName = sqlStatement.getTableName();
         return null == tableName
-                ? rule.getShardingTables().entrySet().stream().map(entry -> 
new LocalDataQueryResultRow(entry.getKey(), 
getTableNodes(entry.getValue()))).collect(Collectors.toList())
-                : Collections.singleton(new LocalDataQueryResultRow(tableName, 
getTableNodes(rule.getShardingTable(tableName))));
+                ? rule.getShardingTables().entrySet().stream().map(entry -> 
new LocalDataQueryResultRow(entry.getKey(), getTableNodes(sqlStatement, 
entry.getValue()))).collect(Collectors.toList())
+                : Collections.singleton(new LocalDataQueryResultRow(tableName, 
getTableNodes(sqlStatement, rule.getShardingTable(tableName))));
     }
     
-    private String getTableNodes(final ShardingTable shardingTable) {
-        return 
shardingTable.getActualDataNodes().stream().map(DataNode::format).collect(Collectors.joining(",
 "));
+    private String getTableNodes(final ShowShardingTableNodesStatement 
sqlStatement, final ShardingTable shardingTable) {
+        return shardingTable.getActualDataNodes().stream().map(each -> 
each.format(sqlStatement.getDatabaseType())).collect(Collectors.joining(", "));
     }
     
     @Override
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/datanode/DataNode.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/datanode/DataNode.java
index cf4a2be276d..008f9fde040 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/datanode/DataNode.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/datanode/DataNode.java
@@ -102,15 +102,6 @@ public final class DataNode {
         return isValidDataNode(actualDataNodes, 3);
     }
     
-    /**
-     * Format data node as string.
-     *
-     * @return formatted data node
-     */
-    public String format() {
-        return dataSourceName + DELIMITER + tableName;
-    }
-    
     /**
      * Format data node as string.
      *
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/kernel/metadata/datanode/UnsupportedActualDataNodeStructureException.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/kernel/metadata/datanode/UnsupportedActualDataNodeStructureException.java
index d2bb0835550..760d0fbcd1d 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/kernel/metadata/datanode/UnsupportedActualDataNodeStructureException.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/exception/kernel/metadata/datanode/UnsupportedActualDataNodeStructureException.java
@@ -17,7 +17,6 @@
 
 package org.apache.shardingsphere.infra.exception.kernel.metadata.datanode;
 
-import org.apache.shardingsphere.infra.datanode.DataNode;
 import 
org.apache.shardingsphere.infra.exception.core.external.sql.sqlstate.XOpenSQLState;
 
 import java.util.Collection;
@@ -29,7 +28,7 @@ public final class 
UnsupportedActualDataNodeStructureException extends DataNodeD
     
     private static final long serialVersionUID = -8921823916974492519L;
     
-    public UnsupportedActualDataNodeStructureException(final DataNode 
dataNode, final Collection<String> jdbcUrlPrefixes) {
-        super(XOpenSQLState.FEATURE_NOT_SUPPORTED, 1, "Can not support 3-tier 
structure for actual data node '%s' with JDBC '%s'.", dataNode.format(), 
jdbcUrlPrefixes);
+    public UnsupportedActualDataNodeStructureException(final String 
dataSourceName, final String tableName, final Collection<String> 
jdbcUrlPrefixes) {
+        super(XOpenSQLState.FEATURE_NOT_SUPPORTED, 1, "Can not support 3-tier 
structure for actual data node '%s.%s' with JDBC '%s'.", dataSourceName, 
tableName, jdbcUrlPrefixes);
     }
 }
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/util/SchemaMetaDataUtils.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/util/SchemaMetaDataUtils.java
index c292869a1e6..63d51985a17 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/util/SchemaMetaDataUtils.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/util/SchemaMetaDataUtils.java
@@ -84,7 +84,8 @@ public final class SchemaMetaDataUtils {
                                                                                
  final String tableName) {
         for (DataNode dataNode : dataNodes.getDataNodes(tableName)) {
             
ShardingSpherePreconditions.checkState(notSupportThreeTierStructureStorageTypes.isEmpty()
 || !dataNode.getDataSourceName().contains("."),
-                    () -> new 
UnsupportedActualDataNodeStructureException(dataNode, 
notSupportThreeTierStructureStorageTypes.iterator().next().getJdbcUrlPrefixes()));
+                    () -> new UnsupportedActualDataNodeStructureException(
+                            dataNode.getDataSourceName(), 
dataNode.getTableName(), 
notSupportThreeTierStructureStorageTypes.iterator().next().getJdbcUrlPrefixes()));
             if (dataNode.getDataSourceName().contains(".")) {
                 String database = dataNode.getDataSourceName().split("\\.")[1];
                 
GlobalDataSourceRegistry.getInstance().getCachedDatabaseTables().put(dataNode.getTableName(),
 database);
diff --git 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/datanode/DataNodeTest.java
 
b/infra/common/src/test/java/org/apache/shardingsphere/infra/datanode/DataNodeTest.java
index a3e03d4af95..abc6544a166 100644
--- 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/datanode/DataNodeTest.java
+++ 
b/infra/common/src/test/java/org/apache/shardingsphere/infra/datanode/DataNodeTest.java
@@ -80,13 +80,6 @@ class DataNodeTest {
         assertThrows(InvalidDataNodeFormatException.class, () -> new 
DataNode("ds_0."));
     }
     
-    @Test
-    void assertFormat() {
-        String expected = "ds_0.tbl_0";
-        DataNode dataNode = new DataNode(expected);
-        assertThat(dataNode.format(), is(expected));
-    }
-    
     @Test
     void assertNewValidDataNodeIncludeInstance() {
         DataNode dataNode = new DataNode("ds_0.db_0.tbl_0");
@@ -103,11 +96,4 @@ class DataNodeTest {
     void assertToStringIncludeInstance() {
         assertThat(new DataNode("ds_0.db_0.tbl_0").toString(), 
is("DataNode(dataSourceName=ds_0.db_0, tableName=tbl_0, schemaName=null)"));
     }
-    
-    @Test
-    void assertFormatIncludeInstance() {
-        String expected = "ds_0.db_0.tbl_0";
-        DataNode dataNode = new DataNode(expected);
-        assertThat(dataNode.format(), is(expected));
-    }
 }

Reply via email to