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

zhaojinchao 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 cd70cb25607 Optimizing connection properties comparison in 
AlterStorageUnitExecutor (#34653)
cd70cb25607 is described below

commit cd70cb25607e614f0db48fbcfb50a9b2234954ef
Author: jiangML <1060319...@qq.com>
AuthorDate: Thu Feb 13 14:33:27 2025 +0800

    Optimizing connection properties comparison in AlterStorageUnitExecutor 
(#34653)
---
 .../executor/rdl/resource/AlterStorageUnitExecutor.java    | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git 
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/AlterStorageUnitExecutor.java
 
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/AlterStorageUnitExecutor.java
index 797d9573c21..4f23d7f0b78 100644
--- 
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/AlterStorageUnitExecutor.java
+++ 
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/AlterStorageUnitExecutor.java
@@ -29,8 +29,9 @@ import 
org.apache.shardingsphere.distsql.segment.converter.DataSourceSegmentsCon
 import 
org.apache.shardingsphere.distsql.statement.rdl.resource.unit.type.AlterStorageUnitStatement;
 import 
org.apache.shardingsphere.infra.database.core.checker.PrivilegeCheckType;
 import 
org.apache.shardingsphere.infra.database.core.connector.ConnectionProperties;
-import org.apache.shardingsphere.infra.database.core.connector.url.JdbcUrl;
-import 
org.apache.shardingsphere.infra.database.core.connector.url.StandardJdbcUrlParser;
+import 
org.apache.shardingsphere.infra.database.core.connector.ConnectionPropertiesParser;
+import 
org.apache.shardingsphere.infra.database.core.spi.DatabaseTypedSPILoader;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
 import 
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePoolProperties;
 import 
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
 import 
org.apache.shardingsphere.infra.exception.core.external.ShardingSphereExternalException;
@@ -103,10 +104,11 @@ public final class AlterStorageUnitExecutor implements 
DistSQLUpdateExecutor<Alt
             port = ((HostnameAndPortBasedDataSourceSegment) segment).getPort();
             database = ((HostnameAndPortBasedDataSourceSegment) 
segment).getDatabase();
         } else if (segment instanceof URLBasedDataSourceSegment) {
-            JdbcUrl segmentJdbcUrl = new 
StandardJdbcUrlParser().parse(((URLBasedDataSourceSegment) segment).getUrl());
-            hostName = segmentJdbcUrl.getHostname();
-            port = String.valueOf(segmentJdbcUrl.getPort());
-            database = segmentJdbcUrl.getDatabase();
+            String url = ((URLBasedDataSourceSegment) segment).getUrl();
+            ConnectionProperties connectionProps = 
DatabaseTypedSPILoader.getService(ConnectionPropertiesParser.class, 
DatabaseTypeFactory.get(url)).parse(url, segment.getUser(), null);
+            hostName = connectionProps.getHostname();
+            port = String.valueOf(connectionProps.getPort());
+            database = connectionProps.getCatalog();
         }
         ConnectionProperties connectionProps = 
storageUnit.getConnectionProperties();
         return Objects.equals(hostName, connectionProps.getHostname()) && 
Objects.equals(port, String.valueOf(connectionProps.getPort())) && 
Objects.equals(database, connectionProps.getCatalog());

Reply via email to