This is an automated email from the ASF dual-hosted git repository.

jianglongtao pushed a commit to branch fix-33341
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git

commit 73fdba54591b965a030ef52ace8ac1ffbe2d5627
Author: RaigorJiang <[email protected]>
AuthorDate: Tue Aug 6 19:50:15 2024 +0800

    Add pool name for show storage units
---
 infra/distsql-handler/pom.xml                          |  5 +++++
 .../executor/rql/resource/ShowStorageUnitExecutor.java | 18 ++++++++++++++++--
 2 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/infra/distsql-handler/pom.xml b/infra/distsql-handler/pom.xml
index 4633bdc1fe4..289273149be 100644
--- a/infra/distsql-handler/pom.xml
+++ b/infra/distsql-handler/pom.xml
@@ -47,6 +47,11 @@
             <artifactId>shardingsphere-mode-core</artifactId>
             <version>${project.version}</version>
         </dependency>
+        <dependency>
+            <groupId>com.zaxxer</groupId>
+            <artifactId>HikariCP</artifactId>
+            <scope>compile</scope>
+        </dependency>
         
         <dependency>
             <groupId>org.apache.shardingsphere</groupId>
diff --git 
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rql/resource/ShowStorageUnitExecutor.java
 
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rql/resource/ShowStorageUnitExecutor.java
index bb9e7f702d9..1365745643c 100644
--- 
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rql/resource/ShowStorageUnitExecutor.java
+++ 
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rql/resource/ShowStorageUnitExecutor.java
@@ -17,6 +17,7 @@
 
 package org.apache.shardingsphere.distsql.handler.executor.rql.resource;
 
+import com.zaxxer.hikari.HikariDataSource;
 import lombok.Setter;
 import 
org.apache.shardingsphere.distsql.handler.aware.DistSQLExecutorDatabaseAware;
 import 
org.apache.shardingsphere.distsql.handler.engine.query.DistSQLQueryExecutor;
@@ -30,6 +31,8 @@ import 
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryRes
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.unit.StorageUnit;
 import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
+import org.apache.shardingsphere.infra.util.SphereEx;
+import org.apache.shardingsphere.infra.util.SphereEx.Type;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 
 import javax.sql.DataSource;
@@ -50,12 +53,14 @@ public final class ShowStorageUnitExecutor implements 
DistSQLQueryExecutor<ShowS
     
     private ShardingSphereDatabase database;
     
+    @SphereEx(Type.MODIFY)
     @Override
     public Collection<String> getColumnNames(final ShowStorageUnitsStatement 
sqlStatement) {
         return Arrays.asList("name", "type", "host", "port", "db", 
"connection_timeout_milliseconds", "idle_timeout_milliseconds",
-                "max_lifetime_milliseconds", "max_pool_size", "min_pool_size", 
"read_only", "other_attributes");
+                "max_lifetime_milliseconds", "max_pool_size", "min_pool_size", 
"read_only", "other_attributes", "pool_name");
     }
     
+    @SphereEx(Type.MODIFY)
     @Override
     public Collection<LocalDataQueryResultRow> getRows(final 
ShowStorageUnitsStatement sqlStatement, final ContextManager contextManager) {
         Collection<LocalDataQueryResultRow> result = new LinkedList<>();
@@ -75,7 +80,7 @@ public final class ShowStorageUnitExecutor implements 
DistSQLQueryExecutor<ShowS
                     getStandardProperty(poolProps, "maxPoolSize"),
                     getStandardProperty(poolProps, "minPoolSize"),
                     getStandardProperty(poolProps, "readOnly"),
-                    customProps));
+                    customProps, 
getPoolName(entry.getValue().getDataSource())));
         }
         return result;
     }
@@ -120,6 +125,15 @@ public final class ShowStorageUnitExecutor implements 
DistSQLQueryExecutor<ShowS
         return result;
     }
     
+    @SphereEx
+    private String getPoolName(final DataSource dataSource) {
+        DataSource realDataSource = dataSource instanceof 
CatalogSwitchableDataSource ? ((CatalogSwitchableDataSource) 
dataSource).getDataSource() : dataSource;
+        if (realDataSource instanceof HikariDataSource) {
+            return ((HikariDataSource) realDataSource).getPoolName();
+        }
+        return "";
+    }
+    
     private String getStandardProperty(final Map<String, Object> 
standardProps, final String key) {
         return standardProps.containsKey(key) && null != 
standardProps.get(key) ? standardProps.get(key).toString() : "";
     }

Reply via email to