You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by ji...@apache.org on 2023/02/01 11:35:57 UTC
[shardingsphere] branch master updated: Replace `SQLTranslatorRuleResultSet` with `ShowSQLTranslatorRuleExecutor` (#23902)
This is an automated email from the ASF dual-hosted git repository.
jianglongtao 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 c4fede5a2db Replace `SQLTranslatorRuleResultSet` with `ShowSQLTranslatorRuleExecutor` (#23902)
c4fede5a2db is described below
commit c4fede5a2db338279008cd0c1542d746c6da4438
Author: Zichao <57...@users.noreply.github.com>
AuthorDate: Thu Feb 2 00:35:42 2023 +1300
Replace `SQLTranslatorRuleResultSet` with `ShowSQLTranslatorRuleExecutor` (#23902)
---
...Set.java => ShowSQLTranslatorRuleExecutor.java} | 37 +++--------
...distsql.handler.ral.query.QueryableRALExecutor} | 2 +-
.../handler/SQLTranslatorRuleResultSetTest.java | 57 -----------------
.../handler/ShowSQLTranslatorRuleExecutorTest.java | 73 ++++++++++++++++++++++
4 files changed, 84 insertions(+), 85 deletions(-)
diff --git a/kernel/sql-translator/distsql/handler/src/main/java/org/apache/shardingsphere/sqltranslator/distsql/handler/SQLTranslatorRuleResultSet.java b/kernel/sql-translator/distsql/handler/src/main/java/org/apache/shardingsphere/sqltranslator/distsql/handler/ShowSQLTranslatorRuleExecutor.java
similarity index 51%
rename from kernel/sql-translator/distsql/handler/src/main/java/org/apache/shardingsphere/sqltranslator/distsql/handler/SQLTranslatorRuleResultSet.java
rename to kernel/sql-translator/distsql/handler/src/main/java/org/apache/shardingsphere/sqltranslator/distsql/handler/ShowSQLTranslatorRuleExecutor.java
index 357a1658636..fa37d1f9a15 100644
--- a/kernel/sql-translator/distsql/handler/src/main/java/org/apache/shardingsphere/sqltranslator/distsql/handler/SQLTranslatorRuleResultSet.java
+++ b/kernel/sql-translator/distsql/handler/src/main/java/org/apache/shardingsphere/sqltranslator/distsql/handler/ShowSQLTranslatorRuleExecutor.java
@@ -17,9 +17,9 @@
package org.apache.shardingsphere.sqltranslator.distsql.handler;
-import org.apache.shardingsphere.distsql.handler.resultset.GlobalRuleDistSQLResultSet;
-import org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
-import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
+import org.apache.shardingsphere.distsql.handler.ral.query.MetaDataRequiredQueryableRALExecutor;
+import org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
+import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import org.apache.shardingsphere.sqltranslator.api.config.SQLTranslatorRuleConfiguration;
import org.apache.shardingsphere.sqltranslator.distsql.parser.statement.ShowSQLTranslatorRuleStatement;
import org.apache.shardingsphere.sqltranslator.rule.SQLTranslatorRule;
@@ -27,42 +27,25 @@ import org.apache.shardingsphere.sqltranslator.rule.SQLTranslatorRule;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
-import java.util.Iterator;
/**
* Result set for SQL translator rule.
*/
-public final class SQLTranslatorRuleResultSet implements GlobalRuleDistSQLResultSet {
-
- private static final String TYPE = "type";
-
- private static final String USE_ORIGINAL_SQL_WHEN_TRANSLATING_FAILED = "use_original_sql_when_translating_failed";
-
- private Iterator<Collection<Object>> data;
+public final class ShowSQLTranslatorRuleExecutor implements MetaDataRequiredQueryableRALExecutor<ShowSQLTranslatorRuleStatement> {
@Override
- public void init(final ShardingSphereRuleMetaData globalRuleMetaData, final SQLStatement sqlStatement) {
- SQLTranslatorRule rule = globalRuleMetaData.getSingleRule(SQLTranslatorRule.class);
- data = buildData(rule.getConfiguration()).iterator();
+ public Collection<LocalDataQueryResultRow> getRows(final ShardingSphereMetaData metaData, final ShowSQLTranslatorRuleStatement sqlStatement) {
+ SQLTranslatorRule rule = metaData.getGlobalRuleMetaData().getSingleRule(SQLTranslatorRule.class);
+ return buildData(rule.getConfiguration());
}
- private Collection<Collection<Object>> buildData(final SQLTranslatorRuleConfiguration ruleConfig) {
- return Collections.singleton(Arrays.asList(null != ruleConfig.getType() ? ruleConfig.getType() : "", String.valueOf(ruleConfig.isUseOriginalSQLWhenTranslatingFailed())));
+ private Collection<LocalDataQueryResultRow> buildData(final SQLTranslatorRuleConfiguration ruleConfig) {
+ return Collections.singleton(new LocalDataQueryResultRow(null != ruleConfig.getType() ? ruleConfig.getType() : "", String.valueOf(ruleConfig.isUseOriginalSQLWhenTranslatingFailed())));
}
@Override
public Collection<String> getColumnNames() {
- return Arrays.asList(TYPE, USE_ORIGINAL_SQL_WHEN_TRANSLATING_FAILED);
- }
-
- @Override
- public boolean next() {
- return data.hasNext();
- }
-
- @Override
- public Collection<Object> getRowData() {
- return data.next();
+ return Arrays.asList("type", "use_original_sql_when_translating_failed");
}
@Override
diff --git a/kernel/sql-translator/distsql/handler/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.handler.resultset.DistSQLResultSet b/kernel/sql-translator/distsql/handler/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.handler.ral.query.QueryableRALExecutor
similarity index 90%
rename from kernel/sql-translator/distsql/handler/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.handler.resultset.DistSQLResultSet
rename to kernel/sql-translator/distsql/handler/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.handler.ral.query.QueryableRALExecutor
index 7877b63d807..f4756663dd8 100644
--- a/kernel/sql-translator/distsql/handler/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.handler.resultset.DistSQLResultSet
+++ b/kernel/sql-translator/distsql/handler/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.handler.ral.query.QueryableRALExecutor
@@ -15,4 +15,4 @@
# limitations under the License.
#
-org.apache.shardingsphere.sqltranslator.distsql.handler.SQLTranslatorRuleResultSet
+org.apache.shardingsphere.sqltranslator.distsql.handler.ShowSQLTranslatorRuleExecutor
diff --git a/kernel/sql-translator/distsql/handler/src/test/java/org/apache/shardingsphere/sqltranslator/distsql/handler/SQLTranslatorRuleResultSetTest.java b/kernel/sql-translator/distsql/handler/src/test/java/org/apache/shardingsphere/sqltranslator/distsql/handler/SQLTranslatorRuleResultSetTest.java
deleted file mode 100644
index 730f54114b9..00000000000
--- a/kernel/sql-translator/distsql/handler/src/test/java/org/apache/shardingsphere/sqltranslator/distsql/handler/SQLTranslatorRuleResultSetTest.java
+++ /dev/null
@@ -1,57 +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.sqltranslator.distsql.handler;
-
-import org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
-import org.apache.shardingsphere.sqltranslator.api.config.SQLTranslatorRuleConfiguration;
-import org.apache.shardingsphere.sqltranslator.distsql.parser.statement.ShowSQLTranslatorRuleStatement;
-import org.apache.shardingsphere.sqltranslator.rule.SQLTranslatorRule;
-import org.junit.Test;
-
-import java.util.Collection;
-import java.util.Collections;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-public final class SQLTranslatorRuleResultSetTest {
-
- @Test
- public void assertExecute() {
- ShardingSphereRuleMetaData ruleMetaData = mockGlobalRuleMetaData();
- SQLTranslatorRuleResultSet resultSet = new SQLTranslatorRuleResultSet();
- resultSet.init(ruleMetaData, mock(ShowSQLTranslatorRuleStatement.class));
- Collection<Object> actual = resultSet.getRowData();
- assertThat(actual.size(), is(2));
- assertTrue(actual.contains("NATIVE"));
- assertTrue(actual.contains(Boolean.TRUE.toString()));
- }
-
- private ShardingSphereRuleMetaData mockGlobalRuleMetaData() {
- SQLTranslatorRule authorityRule = mock(SQLTranslatorRule.class);
- when(authorityRule.getConfiguration()).thenReturn(createSQLTranslatorRuleConfiguration());
- return new ShardingSphereRuleMetaData(Collections.singleton(authorityRule));
- }
-
- private SQLTranslatorRuleConfiguration createSQLTranslatorRuleConfiguration() {
- return new SQLTranslatorRuleConfiguration("NATIVE", true);
- }
-}
diff --git a/kernel/sql-translator/distsql/handler/src/test/java/org/apache/shardingsphere/sqltranslator/distsql/handler/ShowSQLTranslatorRuleExecutorTest.java b/kernel/sql-translator/distsql/handler/src/test/java/org/apache/shardingsphere/sqltranslator/distsql/handler/ShowSQLTranslatorRuleExecutorTest.java
new file mode 100644
index 00000000000..34f10d72183
--- /dev/null
+++ b/kernel/sql-translator/distsql/handler/src/test/java/org/apache/shardingsphere/sqltranslator/distsql/handler/ShowSQLTranslatorRuleExecutorTest.java
@@ -0,0 +1,73 @@
+/*
+ * 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.sqltranslator.distsql.handler;
+
+import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
+import org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
+import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
+import org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
+import org.apache.shardingsphere.sqltranslator.api.config.SQLTranslatorRuleConfiguration;
+import org.apache.shardingsphere.sqltranslator.distsql.parser.statement.ShowSQLTranslatorRuleStatement;
+import org.apache.shardingsphere.sqltranslator.rule.SQLTranslatorRule;
+import org.junit.Test;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.Properties;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+public final class ShowSQLTranslatorRuleExecutorTest {
+
+ @Test
+ public void assertExecute() {
+ ShardingSphereMetaData ruleMetaData = mockGlobalRuleMetaData();
+ ShowSQLTranslatorRuleExecutor executor = new ShowSQLTranslatorRuleExecutor();
+ Collection<LocalDataQueryResultRow> actual = executor.getRows(ruleMetaData, mock(ShowSQLTranslatorRuleStatement.class));
+ assertThat(actual.size(), is(1));
+ Iterator<LocalDataQueryResultRow> iterator = actual.iterator();
+ LocalDataQueryResultRow row = iterator.next();
+ assertThat(row.getCell(1), is("NATIVE"));
+ assertThat(row.getCell(2), is("true"));
+ }
+
+ @Test
+ public void assertGetColumnNames() {
+ ShowSQLTranslatorRuleExecutor executor = new ShowSQLTranslatorRuleExecutor();
+ Collection<String> columns = executor.getColumnNames();
+ assertThat(columns.size(), is(2));
+ Iterator<String> iterator = columns.iterator();
+ assertThat(iterator.next(), is("type"));
+ assertThat(iterator.next(), is("use_original_sql_when_translating_failed"));
+ }
+
+ private ShardingSphereMetaData mockGlobalRuleMetaData() {
+ SQLTranslatorRule sqlTranslatorRule = mock(SQLTranslatorRule.class);
+ when(sqlTranslatorRule.getConfiguration()).thenReturn(createSQLTranslatorRuleConfiguration());
+ return new ShardingSphereMetaData(new LinkedHashMap<>(), new ShardingSphereRuleMetaData(Collections.singleton(sqlTranslatorRule)), new ConfigurationProperties(new Properties()));
+ }
+
+ private SQLTranslatorRuleConfiguration createSQLTranslatorRuleConfiguration() {
+ return new SQLTranslatorRuleConfiguration("NATIVE", true);
+ }
+}