You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by me...@apache.org on 2022/06/11 04:31:55 UTC
[shardingsphere] branch master updated: Merge SingleLocalDataMergedResult and MultipleLocalDataMergedResult to LocalDataMergedResult (#18299)
This is an automated email from the ASF dual-hosted git repository.
menghaoran 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 e70e8c993b0 Merge SingleLocalDataMergedResult and MultipleLocalDataMergedResult to LocalDataMergedResult (#18299)
e70e8c993b0 is described below
commit e70e8c993b0b059653025a00038356551be8d8f8
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Sat Jun 11 12:31:48 2022 +0800
Merge SingleLocalDataMergedResult and MultipleLocalDataMergedResult to LocalDataMergedResult (#18299)
---
.../merge/dal/ShardingDALResultMerger.java | 4 +-
...ergedResult.java => LocalDataMergedResult.java} | 6 +-
.../dal/common/SingleLocalDataMergedResult.java | 70 ----------------------
.../merge/dal/ShardingDALResultMergerTest.java | 4 +-
...ultTest.java => LocalDataMergedResultTest.java} | 12 ++--
.../common/SingleLocalDataMergedResultTest.java | 68 ---------------------
.../mysql/executor/ShowConnectionIdExecutor.java | 4 +-
.../executor/ShowCurrentDatabaseExecutor.java | 4 +-
.../mysql/executor/ShowCurrentUserExecutor.java | 4 +-
.../mysql/executor/ShowDatabasesExecutor.java | 11 ++--
.../mysql/executor/ShowTransactionExecutor.java | 4 +-
.../admin/mysql/executor/ShowVersionExecutor.java | 4 +-
.../distsql/ral/QueryableRALBackendHandler.java | 4 +-
.../ShowReadwriteSplittingHintStatusExecutor.java | 4 +-
.../executor/ShowShardingHintStatusExecutor.java | 4 +-
.../DatabaseAdminQueryBackendHandlerTest.java | 29 ++++-----
16 files changed, 46 insertions(+), 190 deletions(-)
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/merge/dal/ShardingDALResultMerger.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/merge/dal/ShardingDALResultMerger.java
index 80b2207b52b..2c0186a1554 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/merge/dal/ShardingDALResultMerger.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/merge/dal/ShardingDALResultMerger.java
@@ -26,7 +26,7 @@ import org.apache.shardingsphere.infra.merge.result.MergedResult;
import org.apache.shardingsphere.infra.merge.result.impl.transparent.TransparentMergedResult;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.metadata.database.schema.decorator.model.ShardingSphereSchema;
-import org.apache.shardingsphere.sharding.merge.dal.common.SingleLocalDataMergedResult;
+import org.apache.shardingsphere.sharding.merge.dal.common.LocalDataMergedResult;
import org.apache.shardingsphere.sharding.merge.dal.show.LogicTablesMergedResult;
import org.apache.shardingsphere.sharding.merge.dal.show.ShowCreateTableMergedResult;
import org.apache.shardingsphere.sharding.merge.dal.show.ShowIndexMergedResult;
@@ -58,7 +58,7 @@ public final class ShardingDALResultMerger implements ResultMerger {
SQLStatement dalStatement = sqlStatementContext.getSqlStatement();
String schemaName = sqlStatementContext.getTablesContext().getSchemaName().orElse(DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(), database.getName()));
if (dalStatement instanceof MySQLShowDatabasesStatement) {
- return new SingleLocalDataMergedResult(Collections.singletonList(databaseName));
+ return new LocalDataMergedResult(Collections.singleton(Collections.singletonList(databaseName)));
}
ShardingSphereSchema schema = database.getSchemas().get(schemaName);
if (dalStatement instanceof MySQLShowTablesStatement) {
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/merge/dal/common/MultipleLocalDataMergedResult.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/merge/dal/common/LocalDataMergedResult.java
similarity index 91%
rename from shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/merge/dal/common/MultipleLocalDataMergedResult.java
rename to shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/merge/dal/common/LocalDataMergedResult.java
index 7c558104cca..626a27818ff 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/merge/dal/common/MultipleLocalDataMergedResult.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/merge/dal/common/LocalDataMergedResult.java
@@ -28,15 +28,15 @@ import java.util.Iterator;
import java.util.List;
/**
- * Merged result for multiple local data.
+ * Local data merged result.
*/
-public final class MultipleLocalDataMergedResult implements MergedResult {
+public final class LocalDataMergedResult implements MergedResult {
private final Iterator<List<Object>> rows;
private List<Object> currentRow;
- public MultipleLocalDataMergedResult(final Collection<List<Object>> rows) {
+ public LocalDataMergedResult(final Collection<List<Object>> rows) {
this.rows = rows.iterator();
}
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/merge/dal/common/SingleLocalDataMergedResult.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/merge/dal/common/SingleLocalDataMergedResult.java
deleted file mode 100644
index a1010984865..00000000000
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/merge/dal/common/SingleLocalDataMergedResult.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.sharding.merge.dal.common;
-
-import org.apache.shardingsphere.infra.merge.result.MergedResult;
-
-import java.io.InputStream;
-import java.sql.SQLException;
-import java.sql.SQLFeatureNotSupportedException;
-import java.util.Calendar;
-import java.util.Collection;
-import java.util.Iterator;
-
-/**
- * Merged result for single local data.
- */
-public final class SingleLocalDataMergedResult implements MergedResult {
-
- private final Iterator<Object> values;
-
- private Object currentValue;
-
- public SingleLocalDataMergedResult(final Collection<Object> values) {
- this.values = values.iterator();
- }
-
- @Override
- public boolean next() {
- if (values.hasNext()) {
- currentValue = values.next();
- return true;
- }
- return false;
- }
-
- @Override
- public Object getValue(final int columnIndex, final Class<?> type) {
- return currentValue;
- }
-
- @Override
- public Object getCalendarValue(final int columnIndex, final Class<?> type, final Calendar calendar) {
- return currentValue;
- }
-
- @Override
- public InputStream getInputStream(final int columnIndex, final String type) throws SQLException {
- throw new SQLFeatureNotSupportedException("getInputStream");
- }
-
- @Override
- public boolean wasNull() {
- return null == currentValue;
- }
-}
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dal/ShardingDALResultMergerTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dal/ShardingDALResultMergerTest.java
index 50a8bc2c36e..46c66a46f8e 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dal/ShardingDALResultMergerTest.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dal/ShardingDALResultMergerTest.java
@@ -24,7 +24,7 @@ import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
import org.apache.shardingsphere.infra.executor.sql.execute.result.query.QueryResult;
import org.apache.shardingsphere.infra.merge.result.impl.transparent.TransparentMergedResult;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
-import org.apache.shardingsphere.sharding.merge.dal.common.SingleLocalDataMergedResult;
+import org.apache.shardingsphere.sharding.merge.dal.common.LocalDataMergedResult;
import org.apache.shardingsphere.sharding.merge.dal.show.LogicTablesMergedResult;
import org.apache.shardingsphere.sharding.merge.dal.show.ShowCreateTableMergedResult;
import org.apache.shardingsphere.sharding.merge.dal.show.ShowIndexMergedResult;
@@ -68,7 +68,7 @@ public final class ShardingDALResultMergerTest {
ShardingDALResultMerger resultMerger = new ShardingDALResultMerger(DefaultDatabase.LOGIC_NAME, null);
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
when(database.getName()).thenReturn(DefaultDatabase.LOGIC_NAME);
- assertThat(resultMerger.merge(queryResults, sqlStatementContext, database), instanceOf(SingleLocalDataMergedResult.class));
+ assertThat(resultMerger.merge(queryResults, sqlStatementContext, database), instanceOf(LocalDataMergedResult.class));
}
@Test
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dal/common/MultipleLocalDataMergedResultTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dal/common/LocalDataMergedResultTest.java
similarity index 79%
rename from shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dal/common/MultipleLocalDataMergedResultTest.java
rename to shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dal/common/LocalDataMergedResultTest.java
index 0c7dd75846d..a0c99db2c58 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dal/common/MultipleLocalDataMergedResultTest.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dal/common/LocalDataMergedResultTest.java
@@ -31,12 +31,12 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
-public final class MultipleLocalDataMergedResultTest {
+public final class LocalDataMergedResultTest {
@Test
public void assertNext() {
List<Object> row = Collections.singletonList("value");
- MultipleLocalDataMergedResult actual = new MultipleLocalDataMergedResult(Collections.singletonList(row));
+ LocalDataMergedResult actual = new LocalDataMergedResult(Collections.singletonList(row));
assertTrue(actual.next());
assertFalse(actual.next());
}
@@ -44,7 +44,7 @@ public final class MultipleLocalDataMergedResultTest {
@Test
public void assertGetValue() {
List<Object> row = Collections.singletonList("value");
- MultipleLocalDataMergedResult actual = new MultipleLocalDataMergedResult(Collections.singletonList(row));
+ LocalDataMergedResult actual = new LocalDataMergedResult(Collections.singletonList(row));
assertTrue(actual.next());
assertThat(actual.getValue(1, Object.class).toString(), is("value"));
}
@@ -52,7 +52,7 @@ public final class MultipleLocalDataMergedResultTest {
@Test
public void assertGetCalendarValue() {
List<Object> row = Collections.singletonList(new Date(0L));
- MultipleLocalDataMergedResult actual = new MultipleLocalDataMergedResult(Collections.singletonList(row));
+ LocalDataMergedResult actual = new LocalDataMergedResult(Collections.singletonList(row));
assertTrue(actual.next());
assertThat(actual.getCalendarValue(1, Object.class, Calendar.getInstance()), is(new Date(0L)));
}
@@ -60,14 +60,14 @@ public final class MultipleLocalDataMergedResultTest {
@Test(expected = SQLFeatureNotSupportedException.class)
public void assertGetInputStream() throws SQLException {
List<Object> row = Collections.singletonList("value");
- MultipleLocalDataMergedResult actual = new MultipleLocalDataMergedResult(Collections.singletonList(row));
+ LocalDataMergedResult actual = new LocalDataMergedResult(Collections.singletonList(row));
actual.getInputStream(1, "Ascii");
}
@Test
public void assertWasNull() {
List<Object> row = Collections.singletonList("value");
- MultipleLocalDataMergedResult actual = new MultipleLocalDataMergedResult(Collections.singletonList(row));
+ LocalDataMergedResult actual = new LocalDataMergedResult(Collections.singletonList(row));
assertTrue(actual.next());
assertFalse(actual.wasNull());
}
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dal/common/SingleLocalDataMergedResultTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dal/common/SingleLocalDataMergedResultTest.java
deleted file mode 100644
index 348a7a2390e..00000000000
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dal/common/SingleLocalDataMergedResultTest.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.sharding.merge.dal.common;
-
-import org.junit.Test;
-
-import java.sql.SQLException;
-import java.sql.SQLFeatureNotSupportedException;
-import java.util.Calendar;
-import java.util.Collections;
-import java.util.Date;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertThat;
-import static org.junit.Assert.assertTrue;
-
-public final class SingleLocalDataMergedResultTest {
-
- @Test
- public void assertNext() {
- SingleLocalDataMergedResult actual = new SingleLocalDataMergedResult(Collections.singleton("value"));
- assertTrue(actual.next());
- assertFalse(actual.next());
- }
-
- @Test
- public void assertGetValue() {
- SingleLocalDataMergedResult actual = new SingleLocalDataMergedResult(Collections.singleton("value"));
- assertTrue(actual.next());
- assertThat(actual.getValue(1, Object.class).toString(), is("value"));
- }
-
- @Test
- public void assertGetCalendarValue() {
- SingleLocalDataMergedResult actual = new SingleLocalDataMergedResult(Collections.singleton(new Date(0L)));
- assertTrue(actual.next());
- assertThat(actual.getCalendarValue(1, Object.class, Calendar.getInstance()), is(new Date(0L)));
- }
-
- @Test(expected = SQLFeatureNotSupportedException.class)
- public void assertGetInputStream() throws SQLException {
- SingleLocalDataMergedResult actual = new SingleLocalDataMergedResult(Collections.singleton("value"));
- actual.getInputStream(1, "Ascii");
- }
-
- @Test
- public void assertWasNull() {
- SingleLocalDataMergedResult actual = new SingleLocalDataMergedResult(Collections.singleton("value"));
- assertTrue(actual.next());
- assertFalse(actual.wasNull());
- }
-}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowConnectionIdExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowConnectionIdExecutor.java
index 67a04b21c4b..b6dddb5308b 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowConnectionIdExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowConnectionIdExecutor.java
@@ -24,7 +24,7 @@ import org.apache.shardingsphere.infra.executor.sql.execute.result.query.impl.ra
import org.apache.shardingsphere.infra.merge.result.MergedResult;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.apache.shardingsphere.proxy.backend.text.admin.executor.DatabaseAdminQueryExecutor;
-import org.apache.shardingsphere.sharding.merge.dal.common.SingleLocalDataMergedResult;
+import org.apache.shardingsphere.sharding.merge.dal.common.LocalDataMergedResult;
import java.sql.Types;
import java.util.Collections;
@@ -41,7 +41,7 @@ public final class ShowConnectionIdExecutor implements DatabaseAdminQueryExecuto
@Override
public void execute(final ConnectionSession connectionSession) {
- mergedResult = new SingleLocalDataMergedResult(Collections.singleton(connectionSession.getConnectionId()));
+ mergedResult = new LocalDataMergedResult(Collections.singleton(Collections.singletonList(connectionSession.getConnectionId())));
}
@Override
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowCurrentDatabaseExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowCurrentDatabaseExecutor.java
index 613d23d9f5d..b22d3a4c146 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowCurrentDatabaseExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowCurrentDatabaseExecutor.java
@@ -24,7 +24,7 @@ import org.apache.shardingsphere.infra.executor.sql.execute.result.query.impl.ra
import org.apache.shardingsphere.infra.merge.result.MergedResult;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.apache.shardingsphere.proxy.backend.text.admin.executor.DatabaseAdminQueryExecutor;
-import org.apache.shardingsphere.sharding.merge.dal.common.SingleLocalDataMergedResult;
+import org.apache.shardingsphere.sharding.merge.dal.common.LocalDataMergedResult;
import java.sql.Types;
import java.util.Collections;
@@ -41,7 +41,7 @@ public final class ShowCurrentDatabaseExecutor implements DatabaseAdminQueryExec
@Override
public void execute(final ConnectionSession connectionSession) {
- mergedResult = new SingleLocalDataMergedResult(Collections.singleton(connectionSession.getDatabaseName()));
+ mergedResult = new LocalDataMergedResult(Collections.singleton(Collections.singletonList(connectionSession.getDatabaseName())));
}
@Override
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowCurrentUserExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowCurrentUserExecutor.java
index 7c3be75f96e..8c0691b3c91 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowCurrentUserExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowCurrentUserExecutor.java
@@ -29,7 +29,7 @@ import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.apache.shardingsphere.proxy.backend.text.admin.executor.DatabaseAdminQueryExecutor;
-import org.apache.shardingsphere.sharding.merge.dal.common.SingleLocalDataMergedResult;
+import org.apache.shardingsphere.sharding.merge.dal.common.LocalDataMergedResult;
import java.sql.Types;
import java.util.Collection;
@@ -54,7 +54,7 @@ public final class ShowCurrentUserExecutor implements DatabaseAdminQueryExecutor
Optional<Grantee> grantee = rules.stream().filter(each -> each instanceof AuthorityRule)
.map(each -> ((AuthorityRule) each).findUser(connectionSession.getGrantee())).filter(Optional::isPresent)
.map(Optional::get).map(ShardingSphereUser::getGrantee).findFirst();
- mergedResult = new SingleLocalDataMergedResult(Collections.singleton(grantee.isPresent() ? grantee.get().toString() : ""));
+ mergedResult = new LocalDataMergedResult(Collections.singleton(Collections.singletonList(grantee.isPresent() ? grantee.get().toString() : "")));
}
@Override
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowDatabasesExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowDatabasesExecutor.java
index 46ff53c3c92..e7f06369fe0 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowDatabasesExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowDatabasesExecutor.java
@@ -28,7 +28,7 @@ import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.apache.shardingsphere.proxy.backend.text.admin.executor.DatabaseAdminQueryExecutor;
-import org.apache.shardingsphere.sharding.merge.dal.common.SingleLocalDataMergedResult;
+import org.apache.shardingsphere.sharding.merge.dal.common.LocalDataMergedResult;
import org.apache.shardingsphere.sql.parser.sql.common.util.SQLUtil;
import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQLShowDatabasesStatement;
@@ -36,6 +36,7 @@ import java.sql.Types;
import java.util.Collection;
import java.util.Collections;
import java.util.LinkedList;
+import java.util.List;
import java.util.Optional;
/**
@@ -51,14 +52,14 @@ public final class ShowDatabasesExecutor implements DatabaseAdminQueryExecutor {
@Override
public void execute(final ConnectionSession connectionSession) {
- mergedResult = new SingleLocalDataMergedResult(getDatabaseNames(connectionSession));
+ mergedResult = new LocalDataMergedResult(getDatabaseNames(connectionSession));
}
- private Collection<Object> getDatabaseNames(final ConnectionSession connectionSession) {
- Collection<Object> result = new LinkedList<>();
+ private Collection<List<Object>> getDatabaseNames(final ConnectionSession connectionSession) {
+ List<List<Object>> result = new LinkedList<>();
for (String each : ProxyContext.getInstance().getAllDatabaseNames()) {
if (checkLikePattern(each) && SQLCheckEngine.check(each, getRules(each), connectionSession.getGrantee())) {
- result.add(each);
+ result.add(Collections.singletonList(each));
}
}
return result;
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowTransactionExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowTransactionExecutor.java
index d90663aa70c..2ea6651fae1 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowTransactionExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowTransactionExecutor.java
@@ -25,7 +25,7 @@ import org.apache.shardingsphere.infra.executor.sql.execute.result.query.impl.ra
import org.apache.shardingsphere.infra.merge.result.MergedResult;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.apache.shardingsphere.proxy.backend.text.admin.executor.DatabaseAdminQueryExecutor;
-import org.apache.shardingsphere.sharding.merge.dal.common.SingleLocalDataMergedResult;
+import org.apache.shardingsphere.sharding.merge.dal.common.LocalDataMergedResult;
import java.sql.Types;
import java.util.Collections;
@@ -48,7 +48,7 @@ public final class ShowTransactionExecutor implements DatabaseAdminQueryExecutor
@Override
public void execute(final ConnectionSession connectionSession) {
String row = functionName.equals(TRANSACTION_ISOLATION) ? "REPEATABLE-READ" : "0";
- mergedResult = new SingleLocalDataMergedResult(Collections.singleton(row));
+ mergedResult = new LocalDataMergedResult(Collections.singleton(Collections.singletonList(row)));
}
@Override
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowVersionExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowVersionExecutor.java
index 74b36dfbeb7..ff67c96961f 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowVersionExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowVersionExecutor.java
@@ -25,7 +25,7 @@ import org.apache.shardingsphere.infra.executor.sql.execute.result.query.impl.ra
import org.apache.shardingsphere.infra.merge.result.MergedResult;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.apache.shardingsphere.proxy.backend.text.admin.executor.DatabaseAdminQueryExecutor;
-import org.apache.shardingsphere.sharding.merge.dal.common.SingleLocalDataMergedResult;
+import org.apache.shardingsphere.sharding.merge.dal.common.LocalDataMergedResult;
import java.sql.Types;
import java.util.Collections;
@@ -42,7 +42,7 @@ public final class ShowVersionExecutor implements DatabaseAdminQueryExecutor {
@Override
public void execute(final ConnectionSession connectionSession) {
- mergedResult = new SingleLocalDataMergedResult(Collections.singleton(MySQLServerInfo.getServerVersion(connectionSession.getDatabaseName())));
+ mergedResult = new LocalDataMergedResult(Collections.singleton(Collections.singletonList(MySQLServerInfo.getServerVersion(connectionSession.getDatabaseName()))));
}
@Override
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/QueryableRALBackendHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/QueryableRALBackendHandler.java
index 3139e9a8f46..d0a64c4733b 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/QueryableRALBackendHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/QueryableRALBackendHandler.java
@@ -27,7 +27,7 @@ import org.apache.shardingsphere.proxy.backend.response.data.impl.TextQueryRespo
import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
import org.apache.shardingsphere.proxy.backend.response.header.query.QueryHeader;
import org.apache.shardingsphere.proxy.backend.response.header.query.QueryResponseHeader;
-import org.apache.shardingsphere.sharding.merge.dal.common.MultipleLocalDataMergedResult;
+import org.apache.shardingsphere.sharding.merge.dal.common.LocalDataMergedResult;
import java.sql.SQLException;
import java.sql.Types;
@@ -59,7 +59,7 @@ public abstract class QueryableRALBackendHandler<E extends RALStatement> extends
}
private MergedResult createMergedResult() throws SQLException {
- return new MultipleLocalDataMergedResult(getRows(ProxyContext.getInstance().getContextManager()));
+ return new LocalDataMergedResult(getRows(ProxyContext.getInstance().getContextManager()));
}
@Override
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ShowReadwriteSplittingHintStatusExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ShowReadwriteSplittingHintStatusExecutor.java
index 28c188beb88..5bf24f238ad 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ShowReadwriteSplittingHintStatusExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ShowReadwriteSplittingHintStatusExecutor.java
@@ -23,7 +23,7 @@ import org.apache.shardingsphere.infra.merge.result.MergedResult;
import org.apache.shardingsphere.proxy.backend.response.header.query.QueryHeader;
import org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.hint.HintSourceType;
import org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.hint.ShowReadwriteSplittingHintStatusStatement;
-import org.apache.shardingsphere.sharding.merge.dal.common.MultipleLocalDataMergedResult;
+import org.apache.shardingsphere.sharding.merge.dal.common.LocalDataMergedResult;
import java.sql.Types;
import java.util.ArrayList;
@@ -46,7 +46,7 @@ public final class ShowReadwriteSplittingHintStatusExecutor extends AbstractHint
@Override
protected MergedResult createMergedResult() {
List<Object> row = createRow(HintManager.isWriteRouteOnly() ? HintSourceType.WRITE.getValue() : HintSourceType.AUTO.getValue());
- return new MultipleLocalDataMergedResult(Collections.singletonList(row));
+ return new LocalDataMergedResult(Collections.singletonList(row));
}
private List<Object> createRow(final String source) {
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ShowShardingHintStatusExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ShowShardingHintStatusExecutor.java
index 991cc0c090f..698358d0f41 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ShowShardingHintStatusExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ShowShardingHintStatusExecutor.java
@@ -29,7 +29,7 @@ import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.hint.HintShardingType;
import org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.hint.result.ShowShardingHintStatusResult;
import org.apache.shardingsphere.sharding.distsql.parser.statement.hint.ShowShardingHintStatusStatement;
-import org.apache.shardingsphere.sharding.merge.dal.common.MultipleLocalDataMergedResult;
+import org.apache.shardingsphere.sharding.merge.dal.common.LocalDataMergedResult;
import java.sql.Types;
import java.util.ArrayList;
@@ -94,7 +94,7 @@ public final class ShowShardingHintStatusExecutor extends AbstractHintQueryExecu
for (ShowShardingHintStatusResult each : showShardingHintStatusResults) {
values.add(createRow(each));
}
- return new MultipleLocalDataMergedResult(values);
+ return new LocalDataMergedResult(values);
}
private List<Object> createRow(final ShowShardingHintStatusResult showShardingHintStatusResult) {
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/DatabaseAdminQueryBackendHandlerTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/DatabaseAdminQueryBackendHandlerTest.java
index da529fa53b8..d3d23803978 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/DatabaseAdminQueryBackendHandlerTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/DatabaseAdminQueryBackendHandlerTest.java
@@ -17,7 +17,6 @@
package org.apache.shardingsphere.proxy.backend.text.admin;
-import lombok.SneakyThrows;
import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
import org.apache.shardingsphere.infra.federation.optimizer.context.OptimizerContext;
@@ -34,43 +33,38 @@ import org.apache.shardingsphere.proxy.backend.response.header.query.QueryRespon
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.apache.shardingsphere.proxy.backend.text.admin.postgresql.executor.SelectTableExecutor;
import org.apache.shardingsphere.proxy.backend.util.ProxyContextRestorer;
-import org.apache.shardingsphere.sharding.merge.dal.common.SingleLocalDataMergedResult;
+import org.apache.shardingsphere.sharding.merge.dal.common.LocalDataMergedResult;
import org.junit.Before;
import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnitRunner;
+import java.sql.SQLException;
import java.util.Arrays;
import java.util.Collections;
import java.util.Map;
import java.util.Properties;
import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
-@RunWith(MockitoJUnitRunner.class)
public final class DatabaseAdminQueryBackendHandlerTest extends ProxyContextRestorer {
- @Mock
- private ConnectionSession connectionSession;
-
private DatabaseAdminQueryBackendHandler handler;
- @SneakyThrows
@Before
- public void before() {
+ public void before() throws SQLException {
MetaDataContexts metaDataContexts = new MetaDataContexts(mock(MetaDataPersistService.class),
new ShardingSphereMetaData(getDatabases(), mock(ShardingSphereRuleMetaData.class), new ConfigurationProperties(new Properties())), mock(OptimizerContext.class));
ContextManager contextManager = new ContextManager(metaDataContexts, mock(InstanceContext.class));
ProxyContext.init(contextManager);
+ ConnectionSession connectionSession = mock(ConnectionSession.class);
when(connectionSession.getDatabaseName()).thenReturn("db");
SelectTableExecutor executor = mock(SelectTableExecutor.class, RETURNS_DEEP_STUBS);
- MergedResult mergedResult = new SingleLocalDataMergedResult(Arrays.asList("demo_ds_0", "demo_ds_1"));
+ MergedResult mergedResult = new LocalDataMergedResult(Collections.singleton(Arrays.asList("demo_ds_0", "demo_ds_1")));
when(executor.getMergedResult()).thenReturn(mergedResult);
when(executor.getQueryResultMetaData().getColumnCount()).thenReturn(1);
handler = new DatabaseAdminQueryBackendHandler(connectionSession, executor);
@@ -84,23 +78,22 @@ public final class DatabaseAdminQueryBackendHandlerTest extends ProxyContextRest
return Collections.singletonMap("db", result);
}
- @SneakyThrows
@Test
- public void assertExecute() {
+ public void assertExecute() throws SQLException {
assertThat(((QueryResponseHeader) handler.execute()).getQueryHeaders().size(), is(1));
}
- @SneakyThrows
@Test
- public void assertNext() {
+ public void assertNext() throws SQLException {
handler.execute();
assertTrue(handler.next());
+ assertFalse(handler.next());
}
- @SneakyThrows
@Test
- public void assertGetRowData() {
+ public void assertGetRowData() throws SQLException {
handler.execute();
+ assertTrue(handler.next());
assertThat(handler.getRowData().size(), is(1));
}
}