Skip to content

Commit c603396

Browse files
authored
Add DistSQLExecutorDatabaseAware interface to ShowShardingTableNodesExecutor (#35488)
1 parent e1f39e5 commit c603396

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

features/sharding/distsql/handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/ShowShardingTableNodesExecutor.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,11 @@
1818
package org.apache.shardingsphere.sharding.distsql.handler.query;
1919

2020
import lombok.Setter;
21+
import org.apache.shardingsphere.distsql.handler.aware.DistSQLExecutorDatabaseAware;
2122
import org.apache.shardingsphere.distsql.handler.aware.DistSQLExecutorRuleAware;
2223
import org.apache.shardingsphere.distsql.handler.engine.query.DistSQLQueryExecutor;
2324
import org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
25+
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
2426
import org.apache.shardingsphere.mode.manager.ContextManager;
2527
import org.apache.shardingsphere.sharding.distsql.statement.ShowShardingTableNodesStatement;
2628
import org.apache.shardingsphere.sharding.rule.ShardingRule;
@@ -35,10 +37,12 @@
3537
* Show sharding table nodes executor.
3638
*/
3739
@Setter
38-
public final class ShowShardingTableNodesExecutor implements DistSQLQueryExecutor<ShowShardingTableNodesStatement>, DistSQLExecutorRuleAware<ShardingRule> {
40+
public final class ShowShardingTableNodesExecutor implements DistSQLQueryExecutor<ShowShardingTableNodesStatement>, DistSQLExecutorRuleAware<ShardingRule>, DistSQLExecutorDatabaseAware {
3941

4042
private ShardingRule rule;
4143

44+
private ShardingSphereDatabase database;
45+
4246
@Override
4347
public Collection<String> getColumnNames(final ShowShardingTableNodesStatement sqlStatement) {
4448
return Arrays.asList("name", "nodes");
@@ -48,12 +52,12 @@ public Collection<String> getColumnNames(final ShowShardingTableNodesStatement s
4852
public Collection<LocalDataQueryResultRow> getRows(final ShowShardingTableNodesStatement sqlStatement, final ContextManager contextManager) {
4953
String tableName = sqlStatement.getTableName();
5054
return null == tableName
51-
? rule.getShardingTables().entrySet().stream().map(entry -> new LocalDataQueryResultRow(entry.getKey(), getTableNodes(sqlStatement, entry.getValue()))).collect(Collectors.toList())
52-
: Collections.singleton(new LocalDataQueryResultRow(tableName, getTableNodes(sqlStatement, rule.getShardingTable(tableName))));
55+
? rule.getShardingTables().entrySet().stream().map(entry -> new LocalDataQueryResultRow(entry.getKey(), getTableNodes(entry.getValue()))).collect(Collectors.toList())
56+
: Collections.singleton(new LocalDataQueryResultRow(tableName, getTableNodes(rule.getShardingTable(tableName))));
5357
}
5458

55-
private String getTableNodes(final ShowShardingTableNodesStatement sqlStatement, final ShardingTable shardingTable) {
56-
return shardingTable.getActualDataNodes().stream().map(each -> each.format(sqlStatement.getDatabaseType())).collect(Collectors.joining(", "));
59+
private String getTableNodes(final ShardingTable shardingTable) {
60+
return shardingTable.getActualDataNodes().stream().map(each -> each.format(database.getProtocolType())).collect(Collectors.joining(", "));
5761
}
5862

5963
@Override

0 commit comments

Comments
 (0)