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 2020/11/26 04:51:57 UTC
[shardingsphere] branch master updated: fix bug:sqlserver
databasename cannot contain dot (#8349)
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 0c25e13 fix bug:sqlserver databasename cannot contain dot (#8349)
0c25e13 is described below
commit 0c25e13c70f53d2b4f5a8642f68cd04856648075
Author: riyun1989 <56...@qq.com>
AuthorDate: Thu Nov 26 12:51:33 2020 +0800
fix bug:sqlserver databasename cannot contain dot (#8349)
* fix bug:sqlserver databasename cannot contain dot
* delete emtpy lines for Checkstyle
Co-authored-by: 569065692@qq.com <one+one=1314>
---
.../metadata/dialect/SQLServerDataSourceMetaData.java | 2 +-
.../dialect/SQLServerDataSourceMetaDataTest.java | 18 ++++++++++++++++++
2 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/database/metadata/dialect/SQLServerDataSourceMetaData.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/database/metadata/dialect/SQLServerDataSourceMetaData.java
index 2c3ad0f..2edcc2a 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/database/metadata/dialect/SQLServerDataSourceMetaData.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/database/metadata/dialect/SQLServerDataSourceMetaData.java
@@ -41,7 +41,7 @@ public final class SQLServerDataSourceMetaData implements DataSourceMetaData {
private final String schema;
- private final Pattern pattern = Pattern.compile("jdbc:(microsoft:)?sqlserver://([\\w\\-\\.]+):?([0-9]*);\\S*(DatabaseName|database)=([\\w\\-]+);?", Pattern.CASE_INSENSITIVE);
+ private final Pattern pattern = Pattern.compile("jdbc:(microsoft:)?sqlserver://([\\w\\-\\.]+):?([0-9]*);\\S*(DatabaseName|database)=([\\w\\-\\.]+);?", Pattern.CASE_INSENSITIVE);
public SQLServerDataSourceMetaData(final String url) {
Matcher matcher = pattern.matcher(url);
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/database/metadata/dialect/SQLServerDataSourceMetaDataTest.java b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/database/metadata/dialect/SQLServerDataSourceMetaDataTest.java
index 6880be7..69718f5 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/database/metadata/dialect/SQLServerDataSourceMetaDataTest.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/database/metadata/dialect/SQLServerDataSourceMetaDataTest.java
@@ -58,6 +58,24 @@ public final class SQLServerDataSourceMetaDataTest {
assertThat(actual.getPort(), is(1433));
assertNull(actual.getSchema());
}
+
+ @Test
+ public void assertNewConstructorWithDataBaseNameContainDotAndMicrosoft() {
+ SQLServerDataSourceMetaData actual = new SQLServerDataSourceMetaData("jdbc:microsoft:sqlserver://127.0.0.1:9999;DatabaseName=ds_0.0.0");
+ assertThat(actual.getHostName(), is("127.0.0.1"));
+ assertThat(actual.getPort(), is(9999));
+ assertThat(actual.getCatalog(), is("ds_0.0.0"));
+ assertNull(actual.getSchema());
+ }
+
+ @Test
+ public void assertNewConstructorWithDataBaseNameContainDotAndWithoutMicrosoft() {
+ SQLServerDataSourceMetaData actual = new SQLServerDataSourceMetaData("jdbc:sqlserver://127.0.0.1:9999;DatabaseName=ds_0.0.0");
+ assertThat(actual.getHostName(), is("127.0.0.1"));
+ assertThat(actual.getPort(), is(9999));
+ assertThat(actual.getCatalog(), is("ds_0.0.0"));
+ assertNull(actual.getSchema());
+ }
@Test(expected = UnrecognizedDatabaseURLException.class)
public void assertNewConstructorFailure() {