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 2025/05/22 16:17:09 UTC

(shardingsphere) branch master updated: Add DistSQLExecutorDatabaseAware interface to ShowShardingTableNodesExecutor (#35488)

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 c603396b625 Add DistSQLExecutorDatabaseAware interface to ShowShardingTableNodesExecutor (#35488)
c603396b625 is described below

commit c603396b625fefe9a157e12dac092c4ec94cd15c
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Fri May 23 00:17:02 2025 +0800

    Add DistSQLExecutorDatabaseAware interface to ShowShardingTableNodesExecutor (#35488)
---
 .../handler/query/ShowShardingTableNodesExecutor.java      | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 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 b344604ca46..df54dfb7637 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
@@ -18,9 +18,11 @@
 package org.apache.shardingsphere.sharding.distsql.handler.query;
 
 import lombok.Setter;
+import org.apache.shardingsphere.distsql.handler.aware.DistSQLExecutorDatabaseAware;
 import org.apache.shardingsphere.distsql.handler.aware.DistSQLExecutorRuleAware;
 import org.apache.shardingsphere.distsql.handler.engine.query.DistSQLQueryExecutor;
 import org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
+import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.sharding.distsql.statement.ShowShardingTableNodesStatement;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
@@ -35,10 +37,12 @@ import java.util.stream.Collectors;
  * Show sharding table nodes executor.
  */
 @Setter
-public final class ShowShardingTableNodesExecutor implements DistSQLQueryExecutor<ShowShardingTableNodesStatement>, DistSQLExecutorRuleAware<ShardingRule> {
+public final class ShowShardingTableNodesExecutor implements DistSQLQueryExecutor<ShowShardingTableNodesStatement>, DistSQLExecutorRuleAware<ShardingRule>, DistSQLExecutorDatabaseAware {
     
     private ShardingRule rule;
     
+    private ShardingSphereDatabase database;
+    
     @Override
     public Collection<String> getColumnNames(final ShowShardingTableNodesStatement sqlStatement) {
         return Arrays.asList("name", "nodes");
@@ -48,12 +52,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(sqlStatement, entry.getValue()))).collect(Collectors.toList())
-                : Collections.singleton(new LocalDataQueryResultRow(tableName, getTableNodes(sqlStatement, rule.getShardingTable(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))));
     }
     
-    private String getTableNodes(final ShowShardingTableNodesStatement sqlStatement, final ShardingTable shardingTable) {
-        return shardingTable.getActualDataNodes().stream().map(each -> each.format(sqlStatement.getDatabaseType())).collect(Collectors.joining(", "));
+    private String getTableNodes(final ShardingTable shardingTable) {
+        return shardingTable.getActualDataNodes().stream().map(each -> each.format(database.getProtocolType())).collect(Collectors.joining(", "));
     }
     
     @Override