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 7e08335 For #14609, Add `SHOW UNUSED SHARDING ALGORITHMS` syntax to
DistSQL. (#14638)
7e08335 is described below
commit 7e083359cce3b4ad63edd0156fed008a370e559c
Author: yx9o <[email protected]>
AuthorDate: Mon Jan 10 00:07:36 2022 +0800
For #14609, Add `SHOW UNUSED SHARDING ALGORITHMS` syntax to DistSQL.
(#14638)
* Add a syntax SHOW UNUSED SHARDING ALGORITHMS.
* Update.
---
.../UnusedShardingAlgorithmsQueryResultSet.java | 128 +++++++++++++++++++++
...dingsphere.infra.distsql.query.DistSQLResultSet | 1 +
.../UnusedShardingAlgorithmQueryResultSetTest.java | 81 +++++++++++++
.../src/main/antlr4/imports/sharding/Keyword.g4 | 12 +-
.../main/antlr4/imports/sharding/RQLStatement.g4 | 4 +
.../parser/autogen/ShardingDistSQLStatement.g4 | 1 +
.../core/ShardingDistSQLStatementVisitor.java | 9 +-
.../ShowUnusedShardingAlgorithmsStatement.java} | 51 ++------
.../distsql/rql/impl/ShowRulesStatementAssert.java | 5 +
...howUnusedShardingAlgorithmsStatementAssert.java | 51 ++++++++
.../jaxb/cases/domain/SQLParserTestCases.java | 59 +++++-----
...wUnusedShardingAlgorithmsStatementTestCase.java | 54 +++------
.../src/main/resources/case/rql/show.xml | 6 +-
.../src/main/resources/sql/supported/rql/show.xml | 1 +
14 files changed, 351 insertions(+), 112 deletions(-)
diff --git
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/UnusedShardingAlgorithmsQueryResultSet.java
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/UnusedShardingAlgorithmsQueryResultSet.java
new file mode 100644
index 0000000..7da0f86
--- /dev/null
+++
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/UnusedShardingAlgorithmsQueryResultSet.java
@@ -0,0 +1,128 @@
+/*
+ * 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.distsql.handler.query;
+
+import
org.apache.shardingsphere.infra.config.algorithm.ShardingSphereAlgorithmConfiguration;
+import org.apache.shardingsphere.infra.distsql.query.DistSQLResultSet;
+import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
+import org.apache.shardingsphere.infra.properties.PropertiesConverter;
+import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
+import
org.apache.shardingsphere.sharding.api.config.strategy.sharding.ShardingStrategyConfiguration;
+import
org.apache.shardingsphere.sharding.distsql.parser.statement.ShowUnusedShardingAlgorithmsStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashSet;
+import java.util.LinkedList;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Objects;
+import java.util.Optional;
+import java.util.Properties;
+
+/**
+ * Result set for show unused sharding algorithms.
+ */
+public final class UnusedShardingAlgorithmsQueryResultSet implements
DistSQLResultSet {
+
+ private static final String TYPE =
ShowUnusedShardingAlgorithmsStatement.class.getCanonicalName();
+
+ private static final String NAME = "name";
+
+ private static final String COLUMN_TYPE = "type";
+
+ private static final String PROPS = "props";
+
+ private Iterator<Entry<String, ShardingSphereAlgorithmConfiguration>> data
= Collections.emptyIterator();
+
+ @Override
+ public void init(final ShardingSphereMetaData metaData, final SQLStatement
sqlStatement) {
+ Optional<ShardingRuleConfiguration> ruleConfig =
metaData.getRuleMetaData().getConfigurations()
+ .stream().filter(each -> each instanceof
ShardingRuleConfiguration).map(each -> (ShardingRuleConfiguration)
each).findAny();
+ ruleConfig.ifPresent(rule -> getUnusedShardingAlgorithms(rule));
+ }
+
+ @Override
+ public Collection<String> getColumnNames() {
+ return Arrays.asList(NAME, COLUMN_TYPE, PROPS);
+ }
+
+ @Override
+ public boolean next() {
+ return data.hasNext();
+ }
+
+ @Override
+ public Collection<Object> getRowData() {
+ return buildTableRowData(data.next());
+ }
+
+ private Collection<Object> buildTableRowData(final Entry<String,
ShardingSphereAlgorithmConfiguration> data) {
+ Collection<Object> result = new LinkedList<>();
+ result.add(data.getKey());
+ result.add(data.getValue().getType());
+ result.add(buildProps(data.getValue().getProps()));
+ return result;
+ }
+
+ private Object buildProps(final Properties props) {
+ return Objects.nonNull(props) ? PropertiesConverter.convert(props) :
"";
+ }
+
+ @Override
+ public String getType() {
+ return TYPE;
+ }
+
+ private void getUnusedShardingAlgorithms(final ShardingRuleConfiguration
shardingRuleConfig) {
+ Collection<String> inUsedSet =
getUsedShardingAlgorithms(shardingRuleConfig);
+ Map<String, ShardingSphereAlgorithmConfiguration> map = new
HashMap<>();
+ for (Entry<String, ShardingSphereAlgorithmConfiguration> each :
shardingRuleConfig.getShardingAlgorithms().entrySet()) {
+ if (!inUsedSet.contains(each.getKey())) {
+ map.put(each.getKey(), each.getValue());
+ }
+ }
+ data = map.entrySet().iterator();
+ }
+
+ private Collection<String> getUsedShardingAlgorithms(final
ShardingRuleConfiguration shardingRuleConfig) {
+ Collection<String> result = new LinkedHashSet<>();
+ shardingRuleConfig.getTables().forEach(each -> {
+ if (Objects.nonNull(each.getDatabaseShardingStrategy())) {
+
result.add(each.getDatabaseShardingStrategy().getShardingAlgorithmName());
+ }
+ if (Objects.nonNull(each.getTableShardingStrategy())) {
+
result.add(each.getTableShardingStrategy().getShardingAlgorithmName());
+ }
+ });
+ shardingRuleConfig.getAutoTables().stream().filter(each ->
Objects.nonNull(each.getShardingStrategy())).forEach(each ->
result.add(each.getShardingStrategy().getShardingAlgorithmName()));
+ ShardingStrategyConfiguration tableShardingStrategy =
shardingRuleConfig.getDefaultTableShardingStrategy();
+ if (null != tableShardingStrategy &&
!tableShardingStrategy.getShardingAlgorithmName().isEmpty()) {
+ result.add(tableShardingStrategy.getShardingAlgorithmName());
+ }
+ ShardingStrategyConfiguration databaseShardingStrategy =
shardingRuleConfig.getDefaultDatabaseShardingStrategy();
+ if (null != databaseShardingStrategy &&
!databaseShardingStrategy.getShardingAlgorithmName().isEmpty()) {
+ result.add(databaseShardingStrategy.getShardingAlgorithmName());
+ }
+ return result;
+ }
+}
diff --git
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-handler/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.distsql.query.DistSQLResultSet
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-handler/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.distsql.query.DistSQLResultSet
index 3da55c6..34a23a1 100644
---
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-handler/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.distsql.query.DistSQLResultSet
+++
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-handler/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.distsql.query.DistSQLResultSet
@@ -26,3 +26,4 @@
org.apache.shardingsphere.scaling.distsql.handler.CheckScalingQueryResultSet
org.apache.shardingsphere.scaling.distsql.handler.ShowScalingListQueryResultSet
org.apache.shardingsphere.scaling.distsql.handler.ShowScalingJobStatusQueryResultSet
org.apache.shardingsphere.scaling.distsql.handler.ShowScalingCheckAlgorithmsQueryResultSet
+org.apache.shardingsphere.sharding.distsql.handler.query.UnusedShardingAlgorithmsQueryResultSet
diff --git
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/UnusedShardingAlgorithmQueryResultSetTest.java
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/UnusedShardingAlgorithmQueryResultSetTest.java
new file mode 100644
index 0000000..00007e2
--- /dev/null
+++
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/UnusedShardingAlgorithmQueryResultSetTest.java
@@ -0,0 +1,81 @@
+/*
+ * 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.distsql.query;
+
+import org.apache.shardingsphere.infra.config.RuleConfiguration;
+import
org.apache.shardingsphere.infra.config.algorithm.ShardingSphereAlgorithmConfiguration;
+import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
+import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
+import
org.apache.shardingsphere.sharding.api.config.rule.ShardingAutoTableRuleConfiguration;
+import
org.apache.shardingsphere.sharding.api.config.strategy.sharding.StandardShardingStrategyConfiguration;
+import
org.apache.shardingsphere.sharding.distsql.handler.query.UnusedShardingAlgorithmsQueryResultSet;
+import
org.apache.shardingsphere.sharding.distsql.parser.statement.ShowShardingAlgorithmsStatement;
+import org.junit.Test;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Properties;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+public final class UnusedShardingAlgorithmQueryResultSetTest {
+
+ @Test
+ public void assertGetRowData() {
+ ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class,
RETURNS_DEEP_STUBS);
+
when(metaData.getRuleMetaData().getConfigurations()).thenReturn(Collections.singleton(createRuleConfiguration()));
+ UnusedShardingAlgorithmsQueryResultSet resultSet = new
UnusedShardingAlgorithmsQueryResultSet();
+ resultSet.init(metaData, mock(ShowShardingAlgorithmsStatement.class));
+ List<Object> actual = new ArrayList<>(resultSet.getRowData());
+ assertThat(actual.size(), is(3));
+ assertThat(actual.get(0), is("database_inline"));
+ assertThat(actual.get(1), is("INLINE"));
+ assertThat(actual.get(2), is("algorithm-expression=ds_${user_id %
2}"));
+ }
+
+ private RuleConfiguration createRuleConfiguration() {
+ ShardingRuleConfiguration result = new ShardingRuleConfiguration();
+ result.getShardingAlgorithms().put("database_inline",
createShardingInlineAlgorithmConfiguration());
+ result.getShardingAlgorithms().put("t_order_hash_mod",
createShardingHashModAlgorithmConfiguration());
+ result.getAutoTables().add(createShardingAutoTableRuleConfiguration());
+ return result;
+ }
+
+ private ShardingSphereAlgorithmConfiguration
createShardingInlineAlgorithmConfiguration() {
+ Properties props = new Properties();
+ props.put("algorithm-expression", "ds_${user_id % 2}");
+ return new ShardingSphereAlgorithmConfiguration("INLINE", props);
+ }
+
+ private ShardingSphereAlgorithmConfiguration
createShardingHashModAlgorithmConfiguration() {
+ Properties props = new Properties();
+ props.put("sharding-count", 4);
+ return new ShardingSphereAlgorithmConfiguration("hash_mod", props);
+ }
+
+ private ShardingAutoTableRuleConfiguration
createShardingAutoTableRuleConfiguration() {
+ ShardingAutoTableRuleConfiguration result = new
ShardingAutoTableRuleConfiguration("auto_table");
+ result.setShardingStrategy(new
StandardShardingStrategyConfiguration("order_id", "hash_mod"));
+ return result;
+ }
+}
diff --git
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/antlr4/imports/sharding/Keyword.g4
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/antlr4/imports/sharding/Keyword.g4
index 8747772..8ba5b70 100644
---
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/antlr4/imports/sharding/Keyword.g4
+++
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/antlr4/imports/sharding/Keyword.g4
@@ -142,7 +142,7 @@ CLEAR
DEFAULT
: D E F A U L T
;
-
+
DATABASE
: D A T A B A S E
;
@@ -154,15 +154,15 @@ SHARDING_ALGORITHM
STRATEGY
: S T R A T E G Y
;
-
+
DATANODES
: D A T A N O D E S
;
-
+
DATABASE_STRATEGY
: D A T A B A S E UL_ S T R A T E G Y
;
-
+
TABLE_STRATEGY
: T A B L E UL_ S T R A T E G Y
;
@@ -186,3 +186,7 @@ GENERATORS
GENERATED_KEY_ALGORITHM
: G E N E R A T E D UL_ K E Y UL_ A L G O R I T H M
;
+
+UNUSED
+ : U N U S E D
+ ;
diff --git
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/antlr4/imports/sharding/RQLStatement.g4
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/antlr4/imports/sharding/RQLStatement.g4
index 7ac5f5f..8594531 100644
---
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/antlr4/imports/sharding/RQLStatement.g4
+++
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/antlr4/imports/sharding/RQLStatement.g4
@@ -46,6 +46,10 @@ showShardingKeyGenerators
showShardingDefaultShardingStrategy
: SHOW DEFAULT SHARDING STRATEGY (FROM schemaName)?
;
+
+showUnusedShardingAlgorithms
+ : SHOW UNUSED SHARDING ALGORITHMS (FROM schemaName)?
+ ;
tableRule
: RULE tableName
diff --git
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/antlr4/sharding/org/apache/shardingsphere/distsql/parser/autogen/ShardingDistSQLStatement.g4
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/antlr4/sharding/org/apache/shardingsphere/distsql/parser/autogen/ShardingDistSQLStatement.g4
index 466625c..db780e0 100644
---
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/antlr4/sharding/org/apache/shardingsphere/distsql/parser/autogen/ShardingDistSQLStatement.g4
+++
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/antlr4/sharding/org/apache/shardingsphere/distsql/parser/autogen/ShardingDistSQLStatement.g4
@@ -50,5 +50,6 @@ execute
| showShardingDefaultShardingStrategy
| alterDefaultShardingStrategy
| dropDefaultShardingStrategy
+ | showUnusedShardingAlgorithms
) SEMI?
;
diff --git
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/core/ShardingDistSQLStatementVisitor.java
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/core/ShardingDistSQLStatementVisitor.java
index 66e13d5..f4542fe 100644
---
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/core/ShardingDistSQLStatementVisitor.java
+++
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/core/ShardingDistSQLStatementVisitor.java
@@ -64,6 +64,7 @@ import
org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatement
import
org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.ShowShardingKeyGeneratorsContext;
import
org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.ShowShardingTableNodesContext;
import
org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.ShowShardingTableRulesContext;
+import
org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.ShowUnusedShardingAlgorithmsContext;
import
org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.TableNameContext;
import org.apache.shardingsphere.distsql.parser.segment.AlgorithmSegment;
import
org.apache.shardingsphere.sharding.distsql.parser.segment.AbstractTableRuleSegment;
@@ -100,6 +101,7 @@ import
org.apache.shardingsphere.sharding.distsql.parser.statement.ShowShardingB
import
org.apache.shardingsphere.sharding.distsql.parser.statement.ShowShardingKeyGeneratorsStatement;
import
org.apache.shardingsphere.sharding.distsql.parser.statement.ShowShardingTableNodesStatement;
import
org.apache.shardingsphere.sharding.distsql.parser.statement.ShowShardingTableRulesStatement;
+import
org.apache.shardingsphere.sharding.distsql.parser.statement.ShowUnusedShardingAlgorithmsStatement;
import
org.apache.shardingsphere.sharding.distsql.parser.statement.hint.AddShardingHintDatabaseValueStatement;
import
org.apache.shardingsphere.sharding.distsql.parser.statement.hint.AddShardingHintTableValueStatement;
import
org.apache.shardingsphere.sharding.distsql.parser.statement.hint.ClearShardingHintStatement;
@@ -373,7 +375,7 @@ public final class ShardingDistSQLStatementVisitor extends
ShardingDistSQLStatem
}
return new IdentifierValue(context.getText()).getValue();
}
-
+
private String getIdentifierValueWithBracketReserved(final ParseTree
context) {
if (null == context) {
return null;
@@ -444,4 +446,9 @@ public final class ShardingDistSQLStatementVisitor extends
ShardingDistSQLStatem
public ASTNode visitShowShardingDefaultShardingStrategy(final
ShowShardingDefaultShardingStrategyContext ctx) {
return new
ShowDefaultShardingStrategyStatement(Objects.nonNull(ctx.schemaName()) ?
(SchemaSegment) visit(ctx.schemaName()) : null);
}
+
+ @Override
+ public ASTNode visitShowUnusedShardingAlgorithms(final
ShowUnusedShardingAlgorithmsContext ctx) {
+ return new
ShowUnusedShardingAlgorithmsStatement(Objects.nonNull(ctx.schemaName()) ?
(SchemaSegment) visit(ctx.schemaName()) : null);
+ }
}
diff --git
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/antlr4/imports/sharding/RQLStatement.g4
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowUnusedShardingAlgorithmsStatement.java
similarity index 50%
copy from
shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/antlr4/imports/sharding/RQLStatement.g4
copy to
shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowUnusedShardingAlgorithmsStatement.java
index 7ac5f5f..6a08f5f 100644
---
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/antlr4/imports/sharding/RQLStatement.g4
+++
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowUnusedShardingAlgorithmsStatement.java
@@ -15,46 +15,17 @@
* limitations under the License.
*/
-grammar RQLStatement;
+package org.apache.shardingsphere.sharding.distsql.parser.statement;
-import Keyword, Literals, Symbol;
+import
org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowRulesStatement;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
-showShardingTableRules
- : SHOW SHARDING TABLE (tableRule | RULES) (FROM schemaName)?
- ;
-
-showShardingBindingTableRules
- : SHOW SHARDING BINDING TABLE RULES (FROM schemaName)?
- ;
-
-showShardingBroadcastTableRules
- : SHOW SHARDING BROADCAST TABLE RULES (FROM schemaName)?
- ;
-
-showShardingAlgorithms
- : SHOW SHARDING ALGORITHMS (FROM schemaName)?
- ;
-
-showShardingTableNodes
- : SHOW SHARDING TABLE NODES tableName? (FROM schemaName)?
- ;
-
-showShardingKeyGenerators
- : SHOW SHARDING KEY GENERATORS (FROM schemaName)?
- ;
-
-showShardingDefaultShardingStrategy
- : SHOW DEFAULT SHARDING STRATEGY (FROM schemaName)?
- ;
+/**
+ * Show unused sharding algorithms statement.
+ */
+public final class ShowUnusedShardingAlgorithmsStatement extends
ShowRulesStatement {
-tableRule
- : RULE tableName
- ;
-
-tableName
- : IDENTIFIER
- ;
-
-schemaName
- : IDENTIFIER
- ;
+ public ShowUnusedShardingAlgorithmsStatement(final SchemaSegment schema) {
+ super(schema);
+ }
+}
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/ShowRulesStatementAssert.java
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/ShowRulesStatementAssert.java
index fc60ae4..4641889 100644
---
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/ShowRulesStatementAssert.java
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/ShowRulesStatementAssert.java
@@ -37,6 +37,7 @@ import
org.apache.shardingsphere.sharding.distsql.parser.statement.ShowShardingB
import
org.apache.shardingsphere.sharding.distsql.parser.statement.ShowShardingKeyGeneratorsStatement;
import
org.apache.shardingsphere.sharding.distsql.parser.statement.ShowShardingTableNodesStatement;
import
org.apache.shardingsphere.sharding.distsql.parser.statement.ShowShardingTableRulesStatement;
+import
org.apache.shardingsphere.sharding.distsql.parser.statement.ShowUnusedShardingAlgorithmsStatement;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.SQLCaseAssertContext;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rql.impl.rule.ShowDatabaseDiscoveryRulesStatementAssert;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rql.impl.rule.ShowDefaultShardingStrategyStatementAssert;
@@ -53,6 +54,7 @@ import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rql.impl.rule.ShowSingleTableRulesStatementAssert;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rql.impl.rule.ShowSingleTableStatementAssert;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rql.impl.rule.ShowTransactionRuleStatementAssert;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rql.impl.rule.ShowUnusedShardingAlgorithmsStatementAssert;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.SQLParserTestCase;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rql.ShowDataBaseDiscoveryRulesStatementTestCase;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rql.ShowDefaultShardingStrategyStatementTestCase;
@@ -69,6 +71,7 @@ import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rql.ShowSingleTableRulesStatementTestCase;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rql.ShowSingleTableStatementTestCase;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rql.ShowTransactionRuleStatementTestCase;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rql.ShowUnusedShardingAlgorithmsStatementTestCase;
/**
* Show rule statement assert.
@@ -114,6 +117,8 @@ public final class ShowRulesStatementAssert {
ShowTransactionRuleStatementAssert.assertIs(assertContext,
(ShowTransactionRuleStatement) actual, (ShowTransactionRuleStatementTestCase)
expected);
} else if (actual instanceof ShowDefaultShardingStrategyStatement) {
ShowDefaultShardingStrategyStatementAssert.assertIs(assertContext,
(ShowDefaultShardingStrategyStatement) actual,
(ShowDefaultShardingStrategyStatementTestCase) expected);
+ } else if (actual instanceof ShowUnusedShardingAlgorithmsStatement) {
+
ShowUnusedShardingAlgorithmsStatementAssert.assertIs(assertContext,
(ShowUnusedShardingAlgorithmsStatement) actual,
(ShowUnusedShardingAlgorithmsStatementTestCase) expected);
}
}
}
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowUnusedShardingAlgorithmsStatementAssert.java
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowUnusedShardingAlgorithmsStatementAssert.java
new file mode 100644
index 0000000..a59cac7
--- /dev/null
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowUnusedShardingAlgorithmsStatementAssert.java
@@ -0,0 +1,51 @@
+/*
+ * 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.test.sql.parser.parameterized.asserts.statement.distsql.rql.impl.rule;
+
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
+import
org.apache.shardingsphere.sharding.distsql.parser.statement.ShowUnusedShardingAlgorithmsStatement;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.SQLCaseAssertContext;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.schema.SchemaAssert;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rql.ShowUnusedShardingAlgorithmsStatementTestCase;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+/**
+ * Show unused sharding algorithms statement assert.
+ */
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
+public final class ShowUnusedShardingAlgorithmsStatementAssert {
+
+ /**
+ * Assert show unused sharding algorithms statement is correct with
expected parser result.
+ *
+ * @param assertContext assert context
+ * @param actual actual show unused sharding algorithms statement
+ * @param expected expected show unused sharding algorithms statement test
case
+ */
+ public static void assertIs(final SQLCaseAssertContext assertContext,
final ShowUnusedShardingAlgorithmsStatement actual, final
ShowUnusedShardingAlgorithmsStatementTestCase expected) {
+ if (null != expected.getSchema()) {
+ assertTrue(assertContext.getText("Actual schema should exist."),
actual.getSchema().isPresent());
+ SchemaAssert.assertIs(assertContext, actual.getSchema().get(),
expected.getSchema());
+ } else {
+ assertFalse(assertContext.getText("Actual schema should not
exist."), actual.getSchema().isPresent());
+ }
+ }
+}
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/SQLParserTestCases.java
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/SQLParserTestCases.java
index 9c79db6..4916e5a 100644
---
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/SQLParserTestCases.java
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/SQLParserTestCases.java
@@ -240,6 +240,7 @@ import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rql.ShowSingleTableRulesStatementTestCase;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rql.ShowSingleTableStatementTestCase;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rql.ShowTransactionRuleStatementTestCase;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rql.ShowUnusedShardingAlgorithmsStatementTestCase;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.dml.CallStatementTestCase;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.dml.CopyStatementTestCase;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.dml.DeleteStatementTestCase;
@@ -391,16 +392,16 @@ public final class SQLParserTestCases {
@XmlElement(name = "show-procedure-status")
private final List<ShowProcedureStatusStatementTestCase>
showProcedureStatusStatementTestCases = new LinkedList<>();
-
+
@XmlElement(name = "show-procedure-code")
private final List<ShowProcedureCodeStatementTestCase>
showProcedureCodeStatementTestCases = new LinkedList<>();
@XmlElement(name = "show-relaylog-events")
private final List<ShowRelaylogEventsStatementTestCase>
showRelaylogEventsStatementTestCases = new LinkedList<>();
-
+
@XmlElement(name = "show-slave-hosts")
private final List<ShowSlaveHostsStatementTestCase>
showSlaveHostsStatementTestCases = new LinkedList<>();
-
+
@XmlElement(name = "show-columns")
private final List<ShowColumnsStatementTestCase> showColumnsTestCases =
new LinkedList<>();
@@ -466,10 +467,10 @@ public final class SQLParserTestCases {
@XmlElement(name = "create-database")
private final List<CreateDatabaseStatementTestCase> createDatabaseTestCase
= new LinkedList<>();
-
+
@XmlElement(name = "create-database-link")
private final List<CreateDatabaseLinkStatementTestCase>
createDatabaseLinkTestCase = new LinkedList<>();
-
+
@XmlElement(name = "create-dimension")
private final List<CreateDimensionStatementTestCase>
createDimensionTestCase = new LinkedList<>();
@@ -517,10 +518,10 @@ public final class SQLParserTestCases {
@XmlElement(name = "drop-domain")
private final List<DropDomainStatementTestCase>
dropDomainStatementTestCases = new LinkedList<>();
-
+
@XmlElement(name = "show-triggers")
private final List<ShowTriggersStatementTestCase> showTriggerTestCase =
new LinkedList<>();
-
+
@XmlElement(name = "drop-view")
private final List<DropViewStatementTestCase> dropViewTestCase = new
LinkedList<>();
@@ -556,7 +557,7 @@ public final class SQLParserTestCases {
@XmlElement(name = "audit")
private final List<AuditStatementTestCase> auditTestCase = new
LinkedList<>();
-
+
@XmlElement(name = "no-audit")
private final List<NoAuditStatementTestCase> noAuditTestCase = new
LinkedList<>();
@@ -637,7 +638,7 @@ public final class SQLParserTestCases {
@XmlElement(name = "create-sharding-auto-table-rule")
private final List<CreateShardingAutoTableRuleStatementTestCase>
createShardingTableRuleTestCase = new LinkedList<>();
-
+
@XmlElement(name = "create-sharding-table-rule")
private final List<CreateShardingTableRuleStatementTestCase>
createShardingTableRuleTestCases = new LinkedList<>();
@@ -706,10 +707,10 @@ public final class SQLParserTestCases {
@XmlElement(name = "checkout-scaling")
private final List<CheckoutScalingStatementTestCase>
checkoutScalingStatementTestCases = new LinkedList<>();
-
+
@XmlElement(name = "create-sharding-scaling")
private final List<CreateShardingScalingStatementTestCase>
createShardingScalingStatementTestCases = new LinkedList<>();
-
+
@XmlElement(name = "drop-sharding-scaling")
private final List<DropShardingScalingStatementTestCase>
dropShardingScalingStatementTestCases = new LinkedList<>();
@@ -766,7 +767,7 @@ public final class SQLParserTestCases {
@XmlElement(name = "alter-shadow-algorithm")
private final List<AlterShadowAlgorithmStatementTestCase>
alterShadowAlgorithmTestCase = new LinkedList<>();
-
+
@XmlElement(name = "create-shadow-algorithm")
private final List<CreateShadowAlgorithmStatementTestCase>
createShadowAlgorithmTestCase = new LinkedList<>();
@@ -820,7 +821,7 @@ public final class SQLParserTestCases {
@XmlElement(name = "uninstall-component")
private final List<UninstallComponentStatementTestCase>
uninstallComponentStatementTestCases = new LinkedList<>();
-
+
@XmlElement(name = "uninstall-plugin")
private final List<UninstallPluginStatementTestCase>
uninstallPluginStatementTestCases = new LinkedList<>();
@@ -850,7 +851,7 @@ public final class SQLParserTestCases {
@XmlElement(name = "create-default-sharding-strategy")
private final List<CreateDefaultShardingStrategyStatementTestCase>
createDefaultShardingStrategyStatementTestCases = new LinkedList<>();
-
+
@XmlElement(name = "alter-default-sharding-strategy")
private final List<AlterDefaultShardingStrategyStatementTestCase>
alterDefaultShardingStrategyStatementTestCases = new LinkedList<>();
@@ -859,19 +860,19 @@ public final class SQLParserTestCases {
@XmlElement(name = "show-replicas")
private final List<ShowReplicasStatementTestCase>
showReplicasStatementTestCases = new LinkedList<>();
-
+
@XmlElement(name = "show-replica-status")
private final List<ShowReplicaStatusStatementTestCase>
showReplicaStatusStatementTestCases = new LinkedList<>();
-
+
@XmlElement(name = "show-slave-status")
private final List<ShowSlaveStatusStatementTestCase>
showSlaveStatusStatementTestCases = new LinkedList<>();
-
+
@XmlElement(name = "alter-sharding-algorithm")
private final List<AlterShardingAlgorithmStatementTestCase>
alterShardingAlgorithmStatementTestCases = new LinkedList<>();
@XmlElement(name = "alter-sharding-key-generator")
private final List<AlterShardingKeyGeneratorStatementTestCase>
alterShardingKeyGeneratorStatementTestCases = new LinkedList<>();
-
+
@XmlElement(name = "drop-sharding-key-generator")
private final List<DropShardingKeyGeneratorStatementTestCase>
dropShardingKeyGeneratorStatementTestCases = new LinkedList<>();
@@ -880,7 +881,7 @@ public final class SQLParserTestCases {
@XmlElement(name = "reset")
private final List<ResetStatementTestCase> resetStatementTestCases = new
LinkedList<>();
-
+
@XmlElement(name = "reset-persist")
private final List<ResetPersistStatementTestCase>
resetPersistStatementTestCases = new LinkedList<>();
@@ -889,13 +890,13 @@ public final class SQLParserTestCases {
@XmlElement(name = "load-index")
private final List<LoadIndexInfoStatementTestCase>
loadIndexInfoStatementTestCases = new LinkedList<>();
-
+
@XmlElement(name = "kill")
private final List<KillStatementTestCase> killStatementTestCases = new
LinkedList<>();
-
+
@XmlElement(name = "shutdown")
private final List<ShutdownStatementTestCase> shutdownStatementTestCases =
new LinkedList<>();
-
+
@XmlElement(name = "create-default-single-table")
private final List<CreateDefaultSingleTableRuleStatementTestCase>
createDefaultSingleTableRuleStatementTestCases = new LinkedList<>();
@@ -907,7 +908,7 @@ public final class SQLParserTestCases {
@XmlElement(name = "show-open-tables")
private final List<ShowOpenTablesStatementTestCase>
showOpenTablesStatementTestCases = new LinkedList<>();
-
+
@XmlElement(name = "check-table")
private final List<CheckTableStatementTestCase> checkTableTestCases = new
LinkedList<>();
@@ -931,7 +932,7 @@ public final class SQLParserTestCases {
@XmlElement(name = "show-variables")
private final List<ShowVariablesStatementTestCase>
showVariablesStatementTestCases = new LinkedList<>();
-
+
@XmlElement(name = "show-sharding-key-generators")
private final List<ShowShardingKeyGeneratorsStatementTestCase>
showShardingKeyGeneratorsStatementTestCases = new LinkedList<>();
@@ -980,6 +981,9 @@ public final class SQLParserTestCases {
@XmlElement(name = "help")
private final List<HelpStatementTestCase> helpStatementTestCases = new
LinkedList<>();
+ @XmlElement(name = "show-unused-sharding-algorithms")
+ private final List<ShowUnusedShardingAlgorithmsStatementTestCase>
showUnusedShardingAlgorithmsStatementTestCases = new LinkedList<>();
+
/**
* Get all SQL parser test cases.
*
@@ -1202,8 +1206,8 @@ public final class SQLParserTestCases {
putAll(showCharacterSetStatementTestCases, result);
putAll(showCollationStatementTestCases, result);
putAll(showVariablesStatementTestCases, result);
- putAll(showShardingKeyGeneratorsStatementTestCases,result);
- putAll(showDefaultShardingStrategyStatementTestCases,result);
+ putAll(showShardingKeyGeneratorsStatementTestCases, result);
+ putAll(showDefaultShardingStrategyStatementTestCases, result);
putAll(dropShardingKeyGeneratorStatementTestCases, result);
putAll(dropDefaultShardingStrategyStatementTestCases, result);
putAll(delimiterStatementTestCases, result);
@@ -1211,7 +1215,7 @@ public final class SQLParserTestCases {
putAll(showSQLParserRuleStatementTestCases, result);
putAll(createDomainStatementTestCases, result);
putAll(createRuleStatementTestCases, result);
- putAll(showAuthorityRuleStatementTestCases,result);
+ putAll(showAuthorityRuleStatementTestCases, result);
putAll(showTransactionRuleStatementTestCases, result);
putAll(alterSQLParserRuleStatementTestCases, result);
putAll(createTypeStatementTestCases, result);
@@ -1224,6 +1228,7 @@ public final class SQLParserTestCases {
putAll(alterLanguageStatementTestCases, result);
putAll(dropLanguageStatementTestCases, result);
putAll(helpStatementTestCases, result);
+ putAll(showUnusedShardingAlgorithmsStatementTestCases, result);
return result;
}
// CHECKSTYLE:ON
diff --git
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/antlr4/imports/sharding/RQLStatement.g4
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rql/ShowUnusedShardingAlgorithmsStatementTestCase.java
similarity index 50%
copy from
shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/antlr4/imports/sharding/RQLStatement.g4
copy to
shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rql/ShowUnusedShardingAlgorithmsStatementTestCase.java
index 7ac5f5f..5892360 100644
---
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/antlr4/imports/sharding/RQLStatement.g4
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rql/ShowUnusedShardingAlgorithmsStatementTestCase.java
@@ -15,46 +15,22 @@
* limitations under the License.
*/
-grammar RQLStatement;
+package
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rql;
-import Keyword, Literals, Symbol;
+import lombok.Getter;
+import lombok.Setter;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.schema.ExpectedSchema;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.SQLParserTestCase;
-showShardingTableRules
- : SHOW SHARDING TABLE (tableRule | RULES) (FROM schemaName)?
- ;
+import javax.xml.bind.annotation.XmlElement;
-showShardingBindingTableRules
- : SHOW SHARDING BINDING TABLE RULES (FROM schemaName)?
- ;
-
-showShardingBroadcastTableRules
- : SHOW SHARDING BROADCAST TABLE RULES (FROM schemaName)?
- ;
-
-showShardingAlgorithms
- : SHOW SHARDING ALGORITHMS (FROM schemaName)?
- ;
-
-showShardingTableNodes
- : SHOW SHARDING TABLE NODES tableName? (FROM schemaName)?
- ;
-
-showShardingKeyGenerators
- : SHOW SHARDING KEY GENERATORS (FROM schemaName)?
- ;
-
-showShardingDefaultShardingStrategy
- : SHOW DEFAULT SHARDING STRATEGY (FROM schemaName)?
- ;
+/**
+ * Show unused sharding algorithms statement test case.
+ */
+@Getter
+@Setter
+public final class ShowUnusedShardingAlgorithmsStatementTestCase extends
SQLParserTestCase {
-tableRule
- : RULE tableName
- ;
-
-tableName
- : IDENTIFIER
- ;
-
-schemaName
- : IDENTIFIER
- ;
+ @XmlElement
+ private ExpectedSchema schema;
+}
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/rql/show.xml
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/rql/show.xml
index 98d77dd..bbdd4ac 100644
---
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/rql/show.xml
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/rql/show.xml
@@ -95,9 +95,13 @@
<schema name="sharding_db" start-index="34" stop-index="44"/>
</show-sharding-key-generators>
- <show-transaction-rule sql-case-id="show-transaction-rule" />
+ <show-transaction-rule sql-case-id="show-transaction-rule"/>
<show-default-sharding-strategy
sql-case-id="show-default-sharding-strategy">
<schema name="sharding_db" start-index="36" stop-index="46"/>
</show-default-sharding-strategy>
+
+ <show-unused-sharding-algorithms
sql-case-id="show-unused-sharding-algorithms">
+ <schema name="schemaName" start-index="37" stop-index="46"/>
+ </show-unused-sharding-algorithms>
</sql-parser-test-cases>
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/rql/show.xml
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/rql/show.xml
index cbdd825..b6c3d81 100644
---
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/rql/show.xml
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/rql/show.xml
@@ -38,4 +38,5 @@
<distsql-case id="show-sharding-key-generators" value="SHOW SHARDING KEY
GENERATORS FROM sharding_db" />
<distsql-case id="show-transaction-rule" value="SHOW TRANSACTION RULE" />
<distsql-case id="show-default-sharding-strategy" value="SHOW DEFAULT
SHARDING STRATEGY FROM sharding_db" />
+ <distsql-case id="show-unused-sharding-algorithms" value="SHOW UNUSED
SHARDING ALGORITHMS FROM schemaName" />
</sql-cases>