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 2024/08/29 07:22:14 UTC

(shardingsphere) branch master updated: Rename ShowSingleTablesExecutor, ShowLogicalTablesExecutor, ShowUnloadedSingleTablesExecutor (#32719)

This is an automated email from the ASF dual-hosted git repository.

jiangmaolin 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 eb439793860 Rename ShowSingleTablesExecutor, ShowLogicalTablesExecutor, ShowUnloadedSingleTablesExecutor (#32719)
eb439793860 is described below

commit eb439793860f1efcb08d38640b37126b98099418
Author: Raigor <ra...@gmail.com>
AuthorDate: Thu Aug 29 15:22:07 2024 +0800

    Rename ShowSingleTablesExecutor, ShowLogicalTablesExecutor, ShowUnloadedSingleTablesExecutor (#32719)
    
    * Rename ShowSingleTablesExecutor, ShowLogicalTablesExecutor, ShowUnloadedSingleTablesExecutor
    
    * Fix E2E
---
 ...xecutor.java => ShowLogicalTablesExecutor.java} |  4 +-
 ...stsql.handler.engine.query.DistSQLQueryExecutor |  2 +-
 ...est.java => ShowLogicalTablesExecutorTest.java} |  4 +-
 ...Executor.java => ShowSingleTablesExecutor.java} | 23 ++++-----
 ....java => ShowUnloadedSingleTablesExecutor.java} | 14 ++---
 ...stsql.handler.engine.query.DistSQLQueryExecutor |  4 +-
 ...Test.java => ShowSingleTablesExecutorTest.java} | 10 ++--
 .../src/main/antlr4/imports/single/RQLStatement.g4 |  4 +-
 .../parser/autogen/SingleDistSQLStatement.g4       |  2 +-
 .../parser/core/SingleDistSQLStatementVisitor.java | 19 +++----
 ...atement.java => ShowSingleTablesStatement.java} | 22 ++------
 ...java => ShowUnloadedSingleTablesStatement.java} |  8 +--
 .../rql/resource/ShowLogicalTablesStatement.java   |  2 +-
 .../rql/resource/ShowTablesStatement.java          | 20 ++++----
 .../src/test/resources/cases/rql/e2e-rql-show.xml  |  2 +-
 .../rql/impl/ShowTablesStatementAssert.java        |  5 --
 .../table/ShowSingleTablesStatementAssert.java     | 59 ----------------------
 .../cases/parser/jaxb/RootSQLParserTestCases.java  |  9 ++--
 .../table/ShowLogicalTableStatementTestCase.java   | 24 ---------
 .../table/ShowSingleTableStatementTestCase.java    | 34 -------------
 .../rql/table/ShowTableStatementTestCase.java      |  2 +-
 .../it/parser/src/main/resources/case/rql/show.xml | 14 ++---
 .../src/main/resources/sql/supported/rql/show.xml  |  3 +-
 23 files changed, 74 insertions(+), 216 deletions(-)

diff --git a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rql/resource/ShowLogicalTableExecutor.java b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rql/resource/ShowLogicalTablesExecutor.java
similarity index 96%
rename from infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rql/resource/ShowLogicalTableExecutor.java
rename to infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rql/resource/ShowLogicalTablesExecutor.java
index 4cac299f3f4..cf7d81b121b 100644
--- a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rql/resource/ShowLogicalTableExecutor.java
+++ b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/executor/rql/resource/ShowLogicalTablesExecutor.java
@@ -38,10 +38,10 @@ import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
 /**
- * Show logical table executor.
+ * Show logical tables executor.
  */
 @Setter
-public final class ShowLogicalTableExecutor implements DistSQLQueryExecutor<ShowLogicalTablesStatement>, DistSQLExecutorDatabaseAware {
+public final class ShowLogicalTablesExecutor implements DistSQLQueryExecutor<ShowLogicalTablesStatement>, DistSQLExecutorDatabaseAware {
     
     private ShardingSphereDatabase database;
     
diff --git a/infra/distsql-handler/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.handler.engine.query.DistSQLQueryExecutor b/infra/distsql-handler/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.handler.engine.query.DistSQLQueryExecutor
index 455641ebc51..a7d745cb3f0 100644
--- a/infra/distsql-handler/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.handler.engine.query.DistSQLQueryExecutor
+++ b/infra/distsql-handler/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.handler.engine.query.DistSQLQueryExecutor
@@ -17,6 +17,6 @@
 
 org.apache.shardingsphere.distsql.handler.executor.rql.resource.ShowStorageUnitExecutor
 org.apache.shardingsphere.distsql.handler.executor.rql.resource.ShowRulesUsedStorageUnitExecutor
-org.apache.shardingsphere.distsql.handler.executor.rql.resource.ShowLogicalTableExecutor
+org.apache.shardingsphere.distsql.handler.executor.rql.resource.ShowLogicalTablesExecutor
 org.apache.shardingsphere.distsql.handler.executor.rql.rule.RuleCountExecutor
 org.apache.shardingsphere.distsql.handler.executor.ral.plugin.ShowPluginsExecutor
diff --git a/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rql/resource/ShowLogicalTableExecutorTest.java b/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rql/resource/ShowLogicalTablesExecutorTest.java
similarity index 97%
rename from infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rql/resource/ShowLogicalTableExecutorTest.java
rename to infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rql/resource/ShowLogicalTablesExecutorTest.java
index 808491761aa..fa95d1ec71a 100644
--- a/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rql/resource/ShowLogicalTableExecutorTest.java
+++ b/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rql/resource/ShowLogicalTablesExecutorTest.java
@@ -46,9 +46,9 @@ import static org.mockito.Mockito.when;
 
 @ExtendWith(MockitoExtension.class)
 @MockitoSettings(strictness = Strictness.LENIENT)
-class ShowLogicalTableExecutorTest {
+class ShowLogicalTablesExecutorTest {
     
-    private final ShowLogicalTableExecutor executor = new ShowLogicalTableExecutor();
+    private final ShowLogicalTablesExecutor executor = new ShowLogicalTablesExecutor();
     
     @Mock
     private ShardingSphereDatabase database;
diff --git a/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/query/ShowSingleTableExecutor.java b/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/query/ShowSingleTablesExecutor.java
similarity index 78%
rename from kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/query/ShowSingleTableExecutor.java
rename to kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/query/ShowSingleTablesExecutor.java
index 073ba4082cf..ffe287dcd7d 100644
--- a/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/query/ShowSingleTableExecutor.java
+++ b/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/query/ShowSingleTablesExecutor.java
@@ -25,7 +25,7 @@ import org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryRes
 import org.apache.shardingsphere.infra.rule.attribute.datanode.DataNodeRuleAttribute;
 import org.apache.shardingsphere.infra.util.regex.RegexUtils;
 import org.apache.shardingsphere.mode.manager.ContextManager;
-import org.apache.shardingsphere.single.distsql.statement.rql.ShowSingleTableStatement;
+import org.apache.shardingsphere.single.distsql.statement.rql.ShowSingleTablesStatement;
 import org.apache.shardingsphere.single.rule.SingleRule;
 
 import java.util.Arrays;
@@ -37,28 +37,28 @@ import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
 /**
- * Show single table executor.
+ * Show single tables executor.
  */
 @Setter
-public final class ShowSingleTableExecutor implements DistSQLQueryExecutor<ShowSingleTableStatement>, DistSQLExecutorRuleAware<SingleRule> {
+public final class ShowSingleTablesExecutor implements DistSQLQueryExecutor<ShowSingleTablesStatement>, DistSQLExecutorRuleAware<SingleRule> {
     
     private SingleRule rule;
     
     @Override
-    public Collection<String> getColumnNames(final ShowSingleTableStatement sqlStatement) {
+    public Collection<String> getColumnNames(final ShowSingleTablesStatement sqlStatement) {
         return Arrays.asList("table_name", "storage_unit_name");
     }
     
     @Override
-    public Collection<LocalDataQueryResultRow> getRows(final ShowSingleTableStatement sqlStatement, final ContextManager contextManager) {
+    public Collection<LocalDataQueryResultRow> getRows(final ShowSingleTablesStatement sqlStatement, final ContextManager contextManager) {
         Collection<DataNode> resultDataNodes = getPattern(sqlStatement)
                 .map(optional -> getDataNodesWithLikePattern(rule.getAttributes().getAttribute(DataNodeRuleAttribute.class).getAllDataNodes(), optional))
-                .orElseGet(() -> getDataNodes(rule.getAttributes().getAttribute(DataNodeRuleAttribute.class).getAllDataNodes(), sqlStatement));
+                .orElseGet(() -> getDataNodes(rule.getAttributes().getAttribute(DataNodeRuleAttribute.class).getAllDataNodes()));
         Collection<DataNode> sortedDataNodes = resultDataNodes.stream().sorted(Comparator.comparing(DataNode::getTableName)).collect(Collectors.toList());
         return sortedDataNodes.stream().map(each -> new LocalDataQueryResultRow(each.getTableName(), each.getDataSourceName())).collect(Collectors.toList());
     }
     
-    private Optional<Pattern> getPattern(final ShowSingleTableStatement sqlStatement) {
+    private Optional<Pattern> getPattern(final ShowSingleTablesStatement sqlStatement) {
         return sqlStatement.getLikePattern().isPresent()
                 ? Optional.of(Pattern.compile(RegexUtils.convertLikePatternToRegex(sqlStatement.getLikePattern().get()), Pattern.CASE_INSENSITIVE))
                 : Optional.empty();
@@ -68,9 +68,8 @@ public final class ShowSingleTableExecutor implements DistSQLQueryExecutor<ShowS
         return singleTableNodes.entrySet().stream().filter(entry -> pattern.matcher(entry.getKey()).matches()).map(entry -> entry.getValue().iterator().next()).collect(Collectors.toList());
     }
     
-    private Collection<DataNode> getDataNodes(final Map<String, Collection<DataNode>> singleTableNodes, final ShowSingleTableStatement sqlStatement) {
-        return singleTableNodes.entrySet().stream().filter(entry -> !sqlStatement.getTableName().isPresent() || sqlStatement.getTableName().get().equalsIgnoreCase(entry.getKey()))
-                .map(entry -> entry.getValue().iterator().next()).collect(Collectors.toList());
+    private Collection<DataNode> getDataNodes(final Map<String, Collection<DataNode>> singleTableNodes) {
+        return singleTableNodes.values().stream().map(each -> each.iterator().next()).collect(Collectors.toList());
     }
     
     @Override
@@ -79,7 +78,7 @@ public final class ShowSingleTableExecutor implements DistSQLQueryExecutor<ShowS
     }
     
     @Override
-    public Class<ShowSingleTableStatement> getType() {
-        return ShowSingleTableStatement.class;
+    public Class<ShowSingleTablesStatement> getType() {
+        return ShowSingleTablesStatement.class;
     }
 }
diff --git a/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/query/ShowUnloadedSingleTableExecutor.java b/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/query/ShowUnloadedSingleTablesExecutor.java
similarity index 88%
rename from kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/query/ShowUnloadedSingleTableExecutor.java
rename to kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/query/ShowUnloadedSingleTablesExecutor.java
index dde2bb2532e..58371ab8105 100644
--- a/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/query/ShowUnloadedSingleTableExecutor.java
+++ b/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/query/ShowUnloadedSingleTablesExecutor.java
@@ -28,7 +28,7 @@ import org.apache.shardingsphere.infra.metadata.database.resource.ResourceMetaDa
 import org.apache.shardingsphere.infra.rule.attribute.table.TableMapperRuleAttribute;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.single.datanode.SingleTableDataNodeLoader;
-import org.apache.shardingsphere.single.distsql.statement.rql.ShowUnloadedSingleTableStatement;
+import org.apache.shardingsphere.single.distsql.statement.rql.ShowUnloadedSingleTablesStatement;
 import org.apache.shardingsphere.single.rule.SingleRule;
 import org.apache.shardingsphere.single.util.SingleTableLoadUtils;
 
@@ -41,22 +41,22 @@ import java.util.Map.Entry;
 import java.util.stream.Collectors;
 
 /**
- * Show unloaded single table executor.
+ * Show unloaded single tables executor.
  */
 @Setter
-public final class ShowUnloadedSingleTableExecutor implements DistSQLQueryExecutor<ShowUnloadedSingleTableStatement>, DistSQLExecutorDatabaseAware, DistSQLExecutorRuleAware<SingleRule> {
+public final class ShowUnloadedSingleTablesExecutor implements DistSQLQueryExecutor<ShowUnloadedSingleTablesStatement>, DistSQLExecutorDatabaseAware, DistSQLExecutorRuleAware<SingleRule> {
     
     private ShardingSphereDatabase database;
     
     private SingleRule rule;
     
     @Override
-    public Collection<String> getColumnNames(final ShowUnloadedSingleTableStatement sqlStatement) {
+    public Collection<String> getColumnNames(final ShowUnloadedSingleTablesStatement sqlStatement) {
         return Arrays.asList("table_name", "storage_unit_name");
     }
     
     @Override
-    public Collection<LocalDataQueryResultRow> getRows(final ShowUnloadedSingleTableStatement sqlStatement, final ContextManager contextManager) {
+    public Collection<LocalDataQueryResultRow> getRows(final ShowUnloadedSingleTablesStatement sqlStatement, final ContextManager contextManager) {
         Map<String, Collection<DataNode>> actualDataNodes = getActualDataNodes(database);
         for (String each : rule.getAttributes().getAttribute(TableMapperRuleAttribute.class).getLogicTableNames()) {
             actualDataNodes.remove(each.toLowerCase());
@@ -80,7 +80,7 @@ public final class ShowUnloadedSingleTableExecutor implements DistSQLQueryExecut
     }
     
     @Override
-    public Class<ShowUnloadedSingleTableStatement> getType() {
-        return ShowUnloadedSingleTableStatement.class;
+    public Class<ShowUnloadedSingleTablesStatement> getType() {
+        return ShowUnloadedSingleTablesStatement.class;
     }
 }
diff --git a/kernel/single/distsql/handler/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.handler.engine.query.DistSQLQueryExecutor b/kernel/single/distsql/handler/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.handler.engine.query.DistSQLQueryExecutor
index 079a94826fd..5076a3efc9f 100644
--- a/kernel/single/distsql/handler/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.handler.engine.query.DistSQLQueryExecutor
+++ b/kernel/single/distsql/handler/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.handler.engine.query.DistSQLQueryExecutor
@@ -15,6 +15,6 @@
 # limitations under the License.
 #
 
-org.apache.shardingsphere.single.distsql.handler.query.ShowSingleTableExecutor
+org.apache.shardingsphere.single.distsql.handler.query.ShowSingleTablesExecutor
 org.apache.shardingsphere.single.distsql.handler.query.ShowDefaultSingleTableStorageUnitExecutor
-org.apache.shardingsphere.single.distsql.handler.query.ShowUnloadedSingleTableExecutor
+org.apache.shardingsphere.single.distsql.handler.query.ShowUnloadedSingleTablesExecutor
diff --git a/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/query/ShowSingleTableExecutorTest.java b/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/query/ShowSingleTablesExecutorTest.java
similarity index 94%
rename from kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/query/ShowSingleTableExecutorTest.java
rename to kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/query/ShowSingleTablesExecutorTest.java
index 235b694c696..dbcd9757667 100644
--- a/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/query/ShowSingleTableExecutorTest.java
+++ b/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/query/ShowSingleTablesExecutorTest.java
@@ -25,7 +25,7 @@ import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import org.apache.shardingsphere.infra.rule.attribute.RuleAttributes;
 import org.apache.shardingsphere.infra.rule.attribute.datanode.DataNodeRuleAttribute;
 import org.apache.shardingsphere.mode.manager.ContextManager;
-import org.apache.shardingsphere.single.distsql.statement.rql.ShowSingleTableStatement;
+import org.apache.shardingsphere.single.distsql.statement.rql.ShowSingleTablesStatement;
 import org.apache.shardingsphere.single.rule.SingleRule;
 import org.junit.jupiter.api.Test;
 
@@ -43,11 +43,11 @@ import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
-class ShowSingleTableExecutorTest {
+class ShowSingleTablesExecutorTest {
     
     private DistSQLQueryExecuteEngine engine;
     
-    DistSQLQueryExecuteEngine setUp(final ShowSingleTableStatement statement) {
+    DistSQLQueryExecuteEngine setUp(final ShowSingleTablesStatement statement) {
         return new DistSQLQueryExecuteEngine(statement, "foo_db", mockContextManager(), mock(DistSQLConnectionContext.class));
     }
     
@@ -62,7 +62,7 @@ class ShowSingleTableExecutorTest {
     
     @Test
     void assertGetRowData() throws SQLException {
-        engine = setUp(mock(ShowSingleTableStatement.class));
+        engine = setUp(mock(ShowSingleTablesStatement.class));
         engine.executeQuery();
         Collection<LocalDataQueryResultRow> actual = engine.getRows();
         assertThat(actual.size(), is(2));
@@ -77,7 +77,7 @@ class ShowSingleTableExecutorTest {
     
     @Test
     void assertGetSingleTableWithLikeLiteral() throws SQLException {
-        engine = setUp(new ShowSingleTableStatement(null, "%item", null));
+        engine = setUp(new ShowSingleTablesStatement(null, "%item"));
         engine.executeQuery();
         Collection<LocalDataQueryResultRow> actual = engine.getRows();
         assertThat(actual.size(), is(1));
diff --git a/kernel/single/distsql/parser/src/main/antlr4/imports/single/RQLStatement.g4 b/kernel/single/distsql/parser/src/main/antlr4/imports/single/RQLStatement.g4
index ebc14ff51a4..1762663e97e 100644
--- a/kernel/single/distsql/parser/src/main/antlr4/imports/single/RQLStatement.g4
+++ b/kernel/single/distsql/parser/src/main/antlr4/imports/single/RQLStatement.g4
@@ -23,8 +23,8 @@ showDefaultSingleTableStorageUnit
     : SHOW DEFAULT SINGLE TABLE STORAGE UNIT (FROM databaseName)?
     ;
 
-showSingleTable
-    : SHOW SINGLE (TABLES showLike? | TABLE tableName) (FROM databaseName)?
+showSingleTables
+    : SHOW SINGLE TABLES (FROM databaseName)? showLike?
     ;
 
 showUnloadedSingleTables
diff --git a/kernel/single/distsql/parser/src/main/antlr4/org/apache/shardingsphere/distsql/parser/autogen/SingleDistSQLStatement.g4 b/kernel/single/distsql/parser/src/main/antlr4/org/apache/shardingsphere/distsql/parser/autogen/SingleDistSQLStatement.g4
index 345618d4c3e..b677e4bb592 100644
--- a/kernel/single/distsql/parser/src/main/antlr4/org/apache/shardingsphere/distsql/parser/autogen/SingleDistSQLStatement.g4
+++ b/kernel/single/distsql/parser/src/main/antlr4/org/apache/shardingsphere/distsql/parser/autogen/SingleDistSQLStatement.g4
@@ -22,7 +22,7 @@ import Symbol, RDLStatement, RQLStatement;
 execute
     : (setDefaultSingleTableStorageUnit
     | showDefaultSingleTableStorageUnit
-    | showSingleTable
+    | showSingleTables
     | countSingleTable
     | loadSingleTable
     | unloadSingleTable
diff --git a/kernel/single/distsql/parser/src/main/java/org/apache/shardingsphere/single/distsql/parser/core/SingleDistSQLStatementVisitor.java b/kernel/single/distsql/parser/src/main/java/org/apache/shardingsphere/single/distsql/parser/core/SingleDistSQLStatementVisitor.java
index ddcecec5490..9f1b53fe3eb 100644
--- a/kernel/single/distsql/parser/src/main/java/org/apache/shardingsphere/single/distsql/parser/core/SingleDistSQLStatementVisitor.java
+++ b/kernel/single/distsql/parser/src/main/java/org/apache/shardingsphere/single/distsql/parser/core/SingleDistSQLStatementVisitor.java
@@ -29,7 +29,7 @@ import org.apache.shardingsphere.distsql.parser.autogen.SingleDistSQLStatementPa
 import org.apache.shardingsphere.distsql.parser.autogen.SingleDistSQLStatementParser.LoadSingleTableContext;
 import org.apache.shardingsphere.distsql.parser.autogen.SingleDistSQLStatementParser.SetDefaultSingleTableStorageUnitContext;
 import org.apache.shardingsphere.distsql.parser.autogen.SingleDistSQLStatementParser.ShowDefaultSingleTableStorageUnitContext;
-import org.apache.shardingsphere.distsql.parser.autogen.SingleDistSQLStatementParser.ShowSingleTableContext;
+import org.apache.shardingsphere.distsql.parser.autogen.SingleDistSQLStatementParser.ShowSingleTablesContext;
 import org.apache.shardingsphere.distsql.parser.autogen.SingleDistSQLStatementParser.ShowUnloadedSingleTablesContext;
 import org.apache.shardingsphere.distsql.parser.autogen.SingleDistSQLStatementParser.TableFromSchemaContext;
 import org.apache.shardingsphere.distsql.parser.autogen.SingleDistSQLStatementParser.TableFromStorageUnitContext;
@@ -41,8 +41,8 @@ import org.apache.shardingsphere.single.distsql.statement.rdl.LoadSingleTableSta
 import org.apache.shardingsphere.single.distsql.statement.rdl.SetDefaultSingleTableStorageUnitStatement;
 import org.apache.shardingsphere.single.distsql.statement.rdl.UnloadSingleTableStatement;
 import org.apache.shardingsphere.single.distsql.statement.rql.ShowDefaultSingleTableStorageUnitStatement;
-import org.apache.shardingsphere.single.distsql.statement.rql.ShowSingleTableStatement;
-import org.apache.shardingsphere.single.distsql.statement.rql.ShowUnloadedSingleTableStatement;
+import org.apache.shardingsphere.single.distsql.statement.rql.ShowSingleTablesStatement;
+import org.apache.shardingsphere.single.distsql.statement.rql.ShowUnloadedSingleTablesStatement;
 import org.apache.shardingsphere.sql.parser.api.ASTNode;
 import org.apache.shardingsphere.sql.parser.api.visitor.SQLVisitor;
 import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment;
@@ -73,9 +73,9 @@ public final class SingleDistSQLStatementVisitor extends SingleDistSQLStatementB
     }
     
     @Override
-    public ASTNode visitShowSingleTable(final ShowSingleTableContext ctx) {
-        return new ShowSingleTableStatement(null == ctx.TABLE() ? null : getIdentifierValue(ctx.tableName()), null == ctx.showLike() ? null : getIdentifierValue(ctx.showLike().likePattern()),
-                null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName()));
+    public ASTNode visitShowSingleTables(final ShowSingleTablesContext ctx) {
+        return new ShowSingleTablesStatement(null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName()),
+                null == ctx.showLike() ? null : getIdentifierValue(ctx.showLike().likePattern()));
     }
     
     @Override
@@ -119,12 +119,13 @@ public final class SingleDistSQLStatementVisitor extends SingleDistSQLStatementB
     
     @Override
     public ASTNode visitShowUnloadedSingleTables(final ShowUnloadedSingleTablesContext ctx) {
-        return null == ctx.fromClause() ? new ShowUnloadedSingleTableStatement(null, null, null) : visitShowUnloadedSingleTablesWithFromClause(ctx.fromClause());
+        return null == ctx.fromClause() ? new ShowUnloadedSingleTablesStatement(null, null, null) : visitShowUnloadedSingleTablesWithFromClause(ctx.fromClause());
     }
     
     private ASTNode visitShowUnloadedSingleTablesWithFromClause(final FromClauseContext ctx) {
-        return new ShowUnloadedSingleTableStatement(null == ctx.storageUnitName() ? null : getIdentifierValue(ctx.storageUnitName()),
-                null == ctx.schemaName() ? null : getIdentifierValue(ctx.schemaName()), null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName()));
+        return new ShowUnloadedSingleTablesStatement(null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName()),
+                null == ctx.storageUnitName() ? null : getIdentifierValue(ctx.storageUnitName()),
+                null == ctx.schemaName() ? null : getIdentifierValue(ctx.schemaName()));
     }
     
     @Override
diff --git a/kernel/single/distsql/statement/src/main/java/org/apache/shardingsphere/single/distsql/statement/rql/ShowSingleTableStatement.java b/kernel/single/distsql/statement/src/main/java/org/apache/shardingsphere/single/distsql/statement/rql/ShowSingleTablesStatement.java
similarity index 66%
rename from kernel/single/distsql/statement/src/main/java/org/apache/shardingsphere/single/distsql/statement/rql/ShowSingleTableStatement.java
rename to kernel/single/distsql/statement/src/main/java/org/apache/shardingsphere/single/distsql/statement/rql/ShowSingleTablesStatement.java
index 26e6a925088..1d2c378b0ce 100644
--- a/kernel/single/distsql/statement/src/main/java/org/apache/shardingsphere/single/distsql/statement/rql/ShowSingleTableStatement.java
+++ b/kernel/single/distsql/statement/src/main/java/org/apache/shardingsphere/single/distsql/statement/rql/ShowSingleTablesStatement.java
@@ -20,26 +20,12 @@ package org.apache.shardingsphere.single.distsql.statement.rql;
 import org.apache.shardingsphere.distsql.statement.rql.resource.ShowTablesStatement;
 import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment;
 
-import java.util.Optional;
-
 /**
- * Show single table statement.
+ * Show single tables statement.
  */
-public final class ShowSingleTableStatement extends ShowTablesStatement {
-    
-    private final String tableName;
-    
-    public ShowSingleTableStatement(final String tableName, final String likePattern, final DatabaseSegment database) {
-        super(likePattern, database);
-        this.tableName = tableName;
-    }
+public final class ShowSingleTablesStatement extends ShowTablesStatement {
     
-    /**
-     * Get table name.
-     *
-     * @return table name
-     */
-    public Optional<String> getTableName() {
-        return Optional.ofNullable(tableName);
+    public ShowSingleTablesStatement(final DatabaseSegment database, final String likePattern) {
+        super(database, likePattern);
     }
 }
diff --git a/kernel/single/distsql/statement/src/main/java/org/apache/shardingsphere/single/distsql/statement/rql/ShowUnloadedSingleTableStatement.java b/kernel/single/distsql/statement/src/main/java/org/apache/shardingsphere/single/distsql/statement/rql/ShowUnloadedSingleTablesStatement.java
similarity index 85%
rename from kernel/single/distsql/statement/src/main/java/org/apache/shardingsphere/single/distsql/statement/rql/ShowUnloadedSingleTableStatement.java
rename to kernel/single/distsql/statement/src/main/java/org/apache/shardingsphere/single/distsql/statement/rql/ShowUnloadedSingleTablesStatement.java
index 117c8b7c4ee..ec83ce3e556 100644
--- a/kernel/single/distsql/statement/src/main/java/org/apache/shardingsphere/single/distsql/statement/rql/ShowUnloadedSingleTableStatement.java
+++ b/kernel/single/distsql/statement/src/main/java/org/apache/shardingsphere/single/distsql/statement/rql/ShowUnloadedSingleTablesStatement.java
@@ -23,17 +23,17 @@ import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.Datab
 import java.util.Optional;
 
 /**
- * Show unloaded single table statement.
+ * Show unloaded single tables statement.
  */
-public final class ShowUnloadedSingleTableStatement extends ShowTablesStatement {
+public final class ShowUnloadedSingleTablesStatement extends ShowTablesStatement {
     
     private final String storageUnitName;
     
     private final String schemaName;
     
-    public ShowUnloadedSingleTableStatement(final String storageUnitName, final String schemaName, final DatabaseSegment database) {
+    public ShowUnloadedSingleTablesStatement(final DatabaseSegment database, final String storageUnitName, final String schemaName) {
         // TODO support like later
-        super(null, database);
+        super(database, null);
         this.storageUnitName = storageUnitName;
         this.schemaName = schemaName;
     }
diff --git a/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/statement/rql/resource/ShowLogicalTablesStatement.java b/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/statement/rql/resource/ShowLogicalTablesStatement.java
index 96c4398e95c..6144ecab3d9 100644
--- a/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/statement/rql/resource/ShowLogicalTablesStatement.java
+++ b/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/statement/rql/resource/ShowLogicalTablesStatement.java
@@ -29,7 +29,7 @@ public final class ShowLogicalTablesStatement extends ShowTablesStatement {
     private final boolean containsFull;
     
     public ShowLogicalTablesStatement(final boolean containsFull, final DatabaseSegment database, final String likePattern) {
-        super(likePattern, database);
+        super(database, likePattern);
         this.containsFull = containsFull;
     }
 }
diff --git a/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/statement/rql/resource/ShowTablesStatement.java b/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/statement/rql/resource/ShowTablesStatement.java
index be597c37ef8..09f513095bf 100644
--- a/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/statement/rql/resource/ShowTablesStatement.java
+++ b/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/statement/rql/resource/ShowTablesStatement.java
@@ -29,18 +29,9 @@ import java.util.Optional;
 @RequiredArgsConstructor
 public abstract class ShowTablesStatement extends ResourceQueryStatement implements FromDatabaseAvailable {
     
-    private final String likePattern;
-    
     private final DatabaseSegment database;
     
-    /**
-     * Get like pattern.
-     *
-     * @return like pattern
-     */
-    public Optional<String> getLikePattern() {
-        return Optional.ofNullable(likePattern);
-    }
+    private final String likePattern;
     
     /**
      * Get database.
@@ -51,4 +42,13 @@ public abstract class ShowTablesStatement extends ResourceQueryStatement impleme
     public final Optional<DatabaseSegment> getDatabase() {
         return Optional.ofNullable(database);
     }
+    
+    /**
+     * Get like pattern.
+     *
+     * @return like pattern
+     */
+    public Optional<String> getLikePattern() {
+        return Optional.ofNullable(likePattern);
+    }
 }
diff --git a/test/e2e/sql/src/test/resources/cases/rql/e2e-rql-show.xml b/test/e2e/sql/src/test/resources/cases/rql/e2e-rql-show.xml
index 53a283fbcb2..92ab678da4e 100644
--- a/test/e2e/sql/src/test/resources/cases/rql/e2e-rql-show.xml
+++ b/test/e2e/sql/src/test/resources/cases/rql/e2e-rql-show.xml
@@ -96,7 +96,7 @@
     </test-case>
     
     <!-- TODO add db,tbl,dbtbl_with_readwrite_splitting,encrypt,encrypt_and_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt scenario when use standard table -->
-    <test-case sql="SHOW SINGLE TABLE t_product" scenario-types="sharding_and_encrypt">
+    <test-case sql="SHOW SINGLE TABLES LIKE 't_product'" scenario-types="sharding_and_encrypt">
         <assertion expected-data-file="show_single_table.xml" />
     </test-case>
     
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rql/impl/ShowTablesStatementAssert.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rql/impl/ShowTablesStatementAssert.java
index 58354daa587..5d3e31a9eca 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rql/impl/ShowTablesStatementAssert.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rql/impl/ShowTablesStatementAssert.java
@@ -20,10 +20,8 @@ package org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
 import org.apache.shardingsphere.distsql.statement.rql.resource.ShowTablesStatement;
-import org.apache.shardingsphere.single.distsql.statement.rql.ShowSingleTableStatement;
 import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.SQLCaseAssertContext;
 import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.segment.database.DatabaseAssert;
-import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.rql.impl.table.ShowSingleTablesStatementAssert;
 import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.SQLParserTestCase;
 import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rql.table.ShowTableStatementTestCase;
 
@@ -49,9 +47,6 @@ public final class ShowTablesStatementAssert {
     public static void assertIs(final SQLCaseAssertContext assertContext, final ShowTablesStatement actual, final SQLParserTestCase expected) {
         assertThat("Expected value should be ShowTableStatementTestCase", expected, instanceOf(ShowTableStatementTestCase.class));
         assertIs(assertContext, actual, (ShowTableStatementTestCase) expected);
-        if (actual instanceof ShowSingleTableStatement) {
-            ShowSingleTablesStatementAssert.assertIs(assertContext, (ShowSingleTableStatement) actual, expected);
-        }
     }
     
     private static void assertIs(final SQLCaseAssertContext assertContext, final ShowTablesStatement actual, final ShowTableStatementTestCase expected) {
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rql/impl/table/ShowSingleTablesStatementAssert.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rql/impl/table/ShowSingleTablesStatementAssert.java
deleted file mode 100644
index 9577082b142..00000000000
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rql/impl/table/ShowSingleTablesStatementAssert.java
+++ /dev/null
@@ -1,59 +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.test.it.sql.parser.internal.asserts.statement.rql.impl.table;
-
-import lombok.AccessLevel;
-import lombok.NoArgsConstructor;
-import org.apache.shardingsphere.single.distsql.statement.rql.ShowSingleTableStatement;
-import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.SQLCaseAssertContext;
-import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.SQLParserTestCase;
-import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rql.table.ShowSingleTableStatementTestCase;
-
-import static org.hamcrest.CoreMatchers.instanceOf;
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
-/**
- * Show single tables statement assert.
- */
-@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class ShowSingleTablesStatementAssert {
-    
-    /**
-     * Assert show single tables statement is correct with expected parser result.
-     *
-     * @param assertContext assert context
-     * @param actual actual show single tables statement
-     * @param expected expected show single tables statement test case
-     */
-    public static void assertIs(final SQLCaseAssertContext assertContext, final ShowSingleTableStatement actual, final SQLParserTestCase expected) {
-        assertThat("Expected value should be ShowSingleTableStatementTestCase", expected, instanceOf(ShowSingleTableStatementTestCase.class));
-        assertIs(assertContext, actual, (ShowSingleTableStatementTestCase) expected);
-    }
-    
-    private static void assertIs(final SQLCaseAssertContext assertContext, final ShowSingleTableStatement actual, final ShowSingleTableStatementTestCase expected) {
-        if (null == expected.getTable()) {
-            assertFalse(actual.getTableName().isPresent(), assertContext.getText("Actual table name should not exist."));
-        } else {
-            assertTrue(actual.getTableName().isPresent(), assertContext.getText("Actual table name should exist."));
-            assertThat(assertContext.getText("Table name assertion error"), actual.getTableName().get(), is(expected.getTable()));
-        }
-    }
-}
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/RootSQLParserTestCases.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/RootSQLParserTestCases.java
index 8b9bebec14d..0d6471aa7e9 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/RootSQLParserTestCases.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/RootSQLParserTestCases.java
@@ -430,8 +430,7 @@ import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.s
 import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rql.rule.translator.ShowSQLTranslatorRuleStatementTestCase;
 import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rql.storage.unit.ShowRulesUsedStorageUnitStatementTestCase;
 import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rql.storage.unit.ShowStorageUnitsStatementTestCase;
-import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rql.table.ShowLogicalTableStatementTestCase;
-import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rql.table.ShowSingleTableStatementTestCase;
+import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rql.table.ShowTableStatementTestCase;
 import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rul.FormatSQLStatementTestCase;
 import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rul.ParseStatementTestCase;
 import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rul.PreviewStatementTestCase;
@@ -1153,11 +1152,11 @@ public final class RootSQLParserTestCases {
     @XmlElement(name = "show-storage-units")
     private final List<ShowStorageUnitsStatementTestCase> showStorageUnitsTestCases = new LinkedList<>();
     
-    @XmlElement(name = "show-single-table")
-    private final List<ShowSingleTableStatementTestCase> showSingleTableTestCases = new LinkedList<>();
+    @XmlElement(name = "show-single-tables")
+    private final List<ShowTableStatementTestCase> showSingleTableTestCases = new LinkedList<>();
     
     @XmlElement(name = "show-logical-tables")
-    private final List<ShowLogicalTableStatementTestCase> showLogicalTableTestCases = new LinkedList<>();
+    private final List<ShowTableStatementTestCase> showLogicalTableTestCases = new LinkedList<>();
     
     @XmlElement(name = "show-default-single-table-storage-unit")
     private final List<ShowDefaultSingleTableStorageUnitStatementTestCase> showDefaultSingleTableStorageUnitTestCases = new LinkedList<>();
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/rql/table/ShowLogicalTableStatementTestCase.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/rql/table/ShowLogicalTableStatementTestCase.java
deleted file mode 100644
index ba753370904..00000000000
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/rql/table/ShowLogicalTableStatementTestCase.java
+++ /dev/null
@@ -1,24 +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.test.it.sql.parser.internal.cases.parser.jaxb.statement.rql.table;
-
-/**
- * Show logical table statement test case.
- */
-public final class ShowLogicalTableStatementTestCase extends ShowTableStatementTestCase {
-}
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/rql/table/ShowSingleTableStatementTestCase.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/rql/table/ShowSingleTableStatementTestCase.java
deleted file mode 100644
index 4760c3d3cc2..00000000000
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/rql/table/ShowSingleTableStatementTestCase.java
+++ /dev/null
@@ -1,34 +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.test.it.sql.parser.internal.cases.parser.jaxb.statement.rql.table;
-
-import lombok.Getter;
-import lombok.Setter;
-
-import javax.xml.bind.annotation.XmlAttribute;
-
-/**
- * Show single table statement test case.
- */
-@Getter
-@Setter
-public final class ShowSingleTableStatementTestCase extends ShowTableStatementTestCase {
-    
-    @XmlAttribute
-    private String table;
-}
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/rql/table/ShowTableStatementTestCase.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/rql/table/ShowTableStatementTestCase.java
index 47e08f9b122..7a802054155 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/rql/table/ShowTableStatementTestCase.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/jaxb/statement/rql/table/ShowTableStatementTestCase.java
@@ -28,7 +28,7 @@ import javax.xml.bind.annotation.XmlAttribute;
  */
 @Getter
 @Setter
-public abstract class ShowTableStatementTestCase extends DatabaseContainedTestCase {
+public final class ShowTableStatementTestCase extends DatabaseContainedTestCase {
     
     @XmlAttribute(name = "like-pattern")
     private String likePattern;
diff --git a/test/it/parser/src/main/resources/case/rql/show.xml b/test/it/parser/src/main/resources/case/rql/show.xml
index 2d05bef81a9..c83d542e535 100644
--- a/test/it/parser/src/main/resources/case/rql/show.xml
+++ b/test/it/parser/src/main/resources/case/rql/show.xml
@@ -83,17 +83,13 @@
         <database name="shadow_db" start-index="35" stop-index="43" />
     </show-default-shadow-algorithm>
     
-    <show-single-table sql-case-id="show-single-table" table="t_order">
-        <database name="single_table_db" start-index="31" stop-index="45" />
-    </show-single-table>
-    
-    <show-single-table sql-case-id="show-single-tables">
+    <show-single-tables sql-case-id="show-single-tables">
         <database name="single_table_db" start-index="24" stop-index="38" />
-    </show-single-table>
+    </show-single-tables>
     
-    <show-single-table sql-case-id="show-single-tables-like" like-pattern="t_%">
-        <database name="single_table_db" start-index="35" stop-index="49" />
-    </show-single-table>
+    <show-single-tables sql-case-id="show-single-tables-like" like-pattern="t_%">
+        <database name="single_table_db" start-index="24" stop-index="38" />
+    </show-single-tables>
     
     <show-default-single-table-storage-unit sql-case-id="show-default-single-table-storage-unit">
         <database name="single_table_db" start-index="44" stop-index="58" />
diff --git a/test/it/parser/src/main/resources/sql/supported/rql/show.xml b/test/it/parser/src/main/resources/sql/supported/rql/show.xml
index 29e1dde85e6..b314dba34d1 100644
--- a/test/it/parser/src/main/resources/sql/supported/rql/show.xml
+++ b/test/it/parser/src/main/resources/sql/supported/rql/show.xml
@@ -31,9 +31,8 @@
     <sql-case id="show-shadow-table-rules" value="SHOW SHADOW TABLE RULES FROM shadow_db" db-types="ShardingSphere" />
     <sql-case id="show-shadow-algorithms" value="SHOW SHADOW ALGORITHMS FROM shadow_db" db-types="ShardingSphere" />
     <sql-case id="show-default-shadow-algorithm" value="SHOW DEFAULT SHADOW ALGORITHM FROM shadow_db" db-types="ShardingSphere" />
-    <sql-case id="show-single-table" value="SHOW SINGLE TABLE t_order FROM single_table_db" db-types="ShardingSphere" />
     <sql-case id="show-single-tables" value="SHOW SINGLE TABLES FROM single_table_db" db-types="ShardingSphere" />
-    <sql-case id="show-single-tables-like" value="SHOW SINGLE TABLES LIKE 't_%' FROM single_table_db" db-types="ShardingSphere" />
+    <sql-case id="show-single-tables-like" value="SHOW SINGLE TABLES FROM single_table_db LIKE 't_%'" db-types="ShardingSphere" />
     <sql-case id="show-default-single-table-storage-unit" value="SHOW DEFAULT SINGLE TABLE STORAGE UNIT FROM single_table_db" db-types="ShardingSphere" />
     <sql-case id="show-sharding-table-nodes" value="SHOW SHARDING TABLE NODES t_order FROM sharding_db" db-types="ShardingSphere" />
     <sql-case id="show-sharding-key-generators" value="SHOW SHARDING KEY GENERATORS FROM sharding_db" db-types="ShardingSphere" />