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());