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 c1f1b46  [DistSQL] Support show single table rule resource statement 
(#13623)
c1f1b46 is described below

commit c1f1b46325c43475693fdb56acc61a33babdbda8
Author: lanchengx <[email protected]>
AuthorDate: Mon Nov 15 23:47:20 2021 -0600

    [DistSQL] Support show single table rule resource statement (#13623)
    
    * `show single table rule` is modified to `show single table`
    
    * Move class
    
    * Support `show single table rule` statement.
    
    * Add document.
    
    * Update document.
    
    * Update document.
    
    * Update document.
    
    * Update comment.
    
    * Update document.
    
    * Update document.
    
    * Update document.
---
 .../distsql/syntax/rdl/rdl-shadow-rule.cn.md       |  2 +-
 .../distsql/syntax/rdl/rdl-shadow-rule.en.md       |  2 +-
 .../distsql/syntax/rdl/rdl-single-table.cn.md      | 31 +++++++++++
 .../distsql/syntax/rdl/rdl-single-table.en.md      | 31 +++++++++++
 .../distsql/syntax/rql/rql-single-table.cn.md      | 33 +++++++++--
 .../distsql/syntax/rql/rql-single-table.en.md      | 33 +++++++++--
 .../src/main/antlr4/imports/RQLStatement.g4        | 13 +++--
 .../parser/autogen/CommonDistSQLStatement.g4       |  3 +-
 .../core/common/CommonDistSQLStatementVisitor.java | 13 ++++-
 .../rql/show/ShowSingleTableRulesStatement.java    |  5 +-
 ...tatement.java => ShowSingleTableStatement.java} |  6 +-
 .../{ => resource}/DataSourceQueryResultSet.java   |  2 +-
 .../DataSourceQueryResultSetConverter.java         |  2 +-
 .../SingleTableQueryResultSet.java}                | 16 +++---
 .../SingleTableRulesQueryResultSet.java}           | 29 ++++------
 ...dingsphere.infra.distsql.query.DistSQLResultSet |  5 +-
 .../rql/DataSourceQueryResultSetConverterTest.java |  1 +
 .../distsql/rql/DataSourceQueryResultSetTest.java  |  1 +
 ...est.java => SingleTableQueryResultSetTest.java} | 17 +++---
 .../rql/SingleTableRulesQueryResultSetTest.java    | 64 ++++++++++++++++++++++
 .../distsql/rql/impl/ShowRulesStatementAssert.java |  5 ++
 .../impl/rule/ShowSingleTableStatementAssert.java  | 51 +++++++++++++++++
 .../jaxb/cases/domain/SQLParserTestCases.java      |  5 ++
 .../rql/ShowSingleTableRulesStatementTestCase.java |  4 --
 ....java => ShowSingleTableStatementTestCase.java} |  4 +-
 .../src/main/resources/case/rql/show.xml           |  8 ++-
 .../src/main/resources/sql/supported/rdl/drop.xml  |  2 +-
 .../src/main/resources/sql/supported/rql/show.xml  |  3 +-
 28 files changed, 316 insertions(+), 75 deletions(-)

diff --git 
a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rdl-shadow-rule.cn.md
 
b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rdl-shadow-rule.cn.md
index 6dd365d..b8bff65 100644
--- 
a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rdl-shadow-rule.cn.md
+++ 
b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rdl-shadow-rule.cn.md
@@ -9,7 +9,7 @@ weight = 6
 CREATE SHADOW RULE shadowRuleDefinition [, shadowRuleDefinition] ... 
 
 ALTER SHADOW RULE shadowRuleDefinition [, shadowRuleDefinition] ... 
-``
+
 CREATE SHADOW ALGORITHM shadowAlgorithm [, shadowAlgorithm] ...
 
 ALTER SHADOW ALGORITHM shadowAlgorithm [, shadowAlgorithm] ...
diff --git 
a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rdl-shadow-rule.en.md
 
b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rdl-shadow-rule.en.md
index d730a41..138c724 100644
--- 
a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rdl-shadow-rule.en.md
+++ 
b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rdl-shadow-rule.en.md
@@ -9,7 +9,7 @@ weight = 6
 CREATE SHADOW RULE shadowRuleDefinition [, shadowRuleDefinition] ... 
 
 ALTER SHADOW RULE shadowRuleDefinition [, shadowRuleDefinition] ... 
-```
+
 CREATE SHADOW ALGORITHM shadowAlgorithm [, shadowAlgorithm] ...
 
 ALTER SHADOW ALGORITHM shadowAlgorithm [, shadowAlgorithm] ...
diff --git 
a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rdl-single-table.cn.md
 
b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rdl-single-table.cn.md
new file mode 100644
index 0000000..d704a88
--- /dev/null
+++ 
b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rdl-single-table.cn.md
@@ -0,0 +1,31 @@
++++
+title = "单表"
+weight = 7
++++
+
+## 定义
+
+```sql
+CREATE DEFAULT SINGLE TABLE RULE singleTableRuleDefinition
+
+ALTER DEFAULT SINGLE TABLE RULE singleTableRuleDefinition
+
+DROP DEFAULT SINGLE TABLE RULE
+
+singleTableRuleDefinition:
+    RESOURCE = resourceName
+```
+- `RESOURCE` 需使用 RDL 管理的数据源资源
+
+
+## 示例
+
+### Single Table Rule
+
+```sql
+CREATE DEFAULT SINGLE TABLE RULE RESOURCE = ds_0
+
+ALTER DEFAULT SINGLE TABLE RULE RESOURCE = ds_1
+
+DROP DEFAULT SINGLE TABLE RULE
+```
diff --git 
a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rdl-single-table.en.md
 
b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rdl-single-table.en.md
new file mode 100644
index 0000000..e1be122
--- /dev/null
+++ 
b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rdl-single-table.en.md
@@ -0,0 +1,31 @@
++++
+title = "Single Table"
+weight = 7
++++
+
+## Definition
+
+```sql
+CREATE DEFAULT SINGLE TABLE RULE singleTableRuleDefinition
+
+ALTER DEFAULT SINGLE TABLE RULE singleTableRuleDefinition
+
+DROP DEFAULT SINGLE TABLE RULE
+
+singleTableRuleDefinition:
+    RESOURCE = resourceName
+```
+- `RESOURCE` needs to use data source resource managed by RDL
+
+
+## Example
+
+### Single Table Rule
+
+```sql
+CREATE DEFAULT SINGLE TABLE RULE RESOURCE = ds_0
+
+ALTER DEFAULT SINGLE TABLE RULE RESOURCE = ds_1
+
+DROP DEFAULT SINGLE TABLE RULE
+```
diff --git 
a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rql-single-table.cn.md
 
b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rql-single-table.cn.md
index 36cac1c..00bf2f7 100644
--- 
a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rql-single-table.cn.md
+++ 
b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rql-single-table.cn.md
@@ -6,23 +6,48 @@ weight = 7
 ## 定义
 
 ```sql
-SHOW SINGLE TABLE (tableRule | RULES) [FROM schemaName]
+SHOW SINGLE TABLE RULES [FROM schemaName]
 
-tableRule:
-    RULE tableName
+SHOW SINGLE tableDefinition | TABLES [FROM schemaName]
+
+tableDefinition:
+    TABLE tableName
 ```
 
 ## 说明
 
+### Single Table Rule
+
 | 列            | 说明          |
 | ------------- | ------------ |
-| table_name    | 单表名称      |
+| name          | 规则名称      |
 | resource_name | 数据源名称    |
 
+### Single Table
+
+| 列            | 说明          |
+| ------------- | ------------ |
+| table_name    | 单表名称      |
+| resource_name | 数据源名称     |
+
 ## 示例
 
+### Single Table Rule
+
 ```sql
 mysql> show single table rules;
++---------+---------------+
+| name    | resource_name |
++---------+---------------+
+| default | ds_0          |
++---------+---------------+
+1 row in set (3.59 sec)
+```
+
+### Single Table
+
+```sql
+mysql> show single tables;
 +--------------+---------------+
 | table_name   | resource_name |
 +--------------+---------------+
diff --git 
a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rql-single-table.en.md
 
b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rql-single-table.en.md
index cfff1c2..db747d8 100644
--- 
a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rql-single-table.en.md
+++ 
b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rql-single-table.en.md
@@ -6,23 +6,48 @@ weight = 7
 ## Definition
 
 ```sql
-SHOW SINGLE TABLE (tableRule | RULES) [FROM schemaName]
+SHOW SINGLE TABLE RULES [FROM schemaName]
 
-tableRule:
-    RULE tableName
+SHOW SINGLE tableDefinition | TABLES [FROM schemaName]
+
+tableDefinition:
+    TABLE tableName
 ```
 
 ## Description
 
+### Single Table Rule
+
+| Column        | Description       |
+| ------------- | ------------------|
+| name          | Rule name         |
+| resource_name | Data source name  |
+
+### Single Table
+
 | Column        | Description        |
-| ------------- | -------------------|
+| ------------- | ------------------ |
 | table_name    | Single table name  |
 | resource_name | Data source name   |
 
 ## Example
 
+### Single Table Rule
+
 ```sql
 mysql> show single table rules;
++---------+---------------+
+| name    | resource_name |
++---------+---------------+
+| default | ds_0          |
++---------+---------------+
+1 row in set (3.59 sec)
+```
+
+### Single Table
+
+```sql
+mysql> show single tables;
 +--------------+---------------+
 | table_name   | resource_name |
 +--------------+---------------+
diff --git 
a/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/imports/RQLStatement.g4
 
b/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/imports/RQLStatement.g4
index aa8b09a..4f56b79 100644
--- 
a/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/imports/RQLStatement.g4
+++ 
b/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/imports/RQLStatement.g4
@@ -23,16 +23,19 @@ showResources
     : SHOW SCHEMA RESOURCES (FROM schemaName)?
     ;
 
-showSinglesTableRules
-    : SHOW SINGLE TABLE (tableRule | RULES) (FROM schemaName)?
+showSingleTableRules
+    : SHOW SINGLE TABLE RULES (FROM schemaName)?
     ;
-
+    
+showSingleTable
+    : SHOW SINGLE (table | TABLES)  (FROM schemaName)?;    
+    
 schemaName
     : IDENTIFIER
     ;
 
-tableRule
-    : RULE tableName
+table
+    : TABLE tableName
     ;
     
 tableName
diff --git 
a/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/org/apache/shardingsphere/distsql/parser/autogen/CommonDistSQLStatement.g4
 
b/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/org/apache/shardingsphere/distsql/parser/autogen/CommonDistSQLStatement.g4
index 2a544f3..92b1e86 100644
--- 
a/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/org/apache/shardingsphere/distsql/parser/autogen/CommonDistSQLStatement.g4
+++ 
b/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/org/apache/shardingsphere/distsql/parser/autogen/CommonDistSQLStatement.g4
@@ -31,7 +31,8 @@ execute
     | enableInstance
     | disableInstance
     | showInstance
-    | showSinglesTableRules
+    | showSingleTable
+    | showSingleTableRules
     | createDefaultSingleTableRule
     | alterDefaultSingleTableRule
     | dropDefaultSingleTableRule
diff --git 
a/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/java/org/apache/shardingsphere/distsql/parser/core/common/CommonDistSQLStatementVisitor.java
 
b/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/java/org/apache/shardingsphere/distsql/parser/core/common/CommonDistSQLStatementVisitor.java
index 9fb2518..6687d31 100644
--- 
a/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/java/org/apache/shardingsphere/distsql/parser/core/common/CommonDistSQLStatementVisitor.java
+++ 
b/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/java/org/apache/shardingsphere/distsql/parser/core/common/CommonDistSQLStatementVisitor.java
@@ -37,7 +37,8 @@ import 
org.apache.shardingsphere.distsql.parser.autogen.CommonDistSQLStatementPa
 import 
org.apache.shardingsphere.distsql.parser.autogen.CommonDistSQLStatementParser.ShowAllVariablesContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.CommonDistSQLStatementParser.ShowInstanceContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.CommonDistSQLStatementParser.ShowResourcesContext;
-import 
org.apache.shardingsphere.distsql.parser.autogen.CommonDistSQLStatementParser.ShowSinglesTableRulesContext;
+import 
org.apache.shardingsphere.distsql.parser.autogen.CommonDistSQLStatementParser.ShowSingleTableContext;
+import 
org.apache.shardingsphere.distsql.parser.autogen.CommonDistSQLStatementParser.ShowSingleTableRulesContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.CommonDistSQLStatementParser.ShowVariableContext;
 import org.apache.shardingsphere.distsql.parser.segment.DataSourceSegment;
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.common.hint.ClearHintStatement;
@@ -54,6 +55,7 @@ import 
org.apache.shardingsphere.distsql.parser.statement.rdl.drop.DropDefaultSi
 import 
org.apache.shardingsphere.distsql.parser.statement.rdl.drop.DropResourceStatement;
 import 
org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowResourcesStatement;
 import 
org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowSingleTableRulesStatement;
+import 
org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowSingleTableStatement;
 import org.apache.shardingsphere.sql.parser.api.visitor.ASTNode;
 import org.apache.shardingsphere.sql.parser.api.visitor.SQLVisitor;
 import 
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
@@ -161,8 +163,13 @@ public final class CommonDistSQLStatementVisitor extends 
CommonDistSQLStatementB
     }
     
     @Override
-    public ASTNode visitShowSinglesTableRules(final 
ShowSinglesTableRulesContext ctx) {
-        return new ShowSingleTableRulesStatement(null == ctx.tableRule() ? 
null : getIdentifierValue(ctx.tableRule().tableName()),
+    public ASTNode visitShowSingleTableRules(final ShowSingleTableRulesContext 
ctx) {
+        return new ShowSingleTableRulesStatement(null == ctx.schemaName() ? 
null : (SchemaSegment) visit(ctx.schemaName()));
+    }
+    
+    @Override
+    public ASTNode visitShowSingleTable(final ShowSingleTableContext ctx) {
+        return new ShowSingleTableStatement(null == ctx.table() ? null : 
getIdentifierValue(ctx.table().tableName()),
                 null == ctx.schemaName() ? null : (SchemaSegment) 
visit(ctx.schemaName()));
     }
     
diff --git 
a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowSingleTableRulesStatement.java
 
b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowSingleTableRulesStatement.java
index 7a2a6df..41904c1 100644
--- 
a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowSingleTableRulesStatement.java
+++ 
b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowSingleTableRulesStatement.java
@@ -26,10 +26,7 @@ import 
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSeg
 @Getter
 public final class ShowSingleTableRulesStatement extends ShowRulesStatement {
     
-    private final String tableName;
-    
-    public ShowSingleTableRulesStatement(final String tableName, final 
SchemaSegment schema) {
+    public ShowSingleTableRulesStatement(final SchemaSegment schema) {
         super(schema);
-        this.tableName = tableName;
     }
 }
diff --git 
a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowSingleTableRulesStatement.java
 
b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowSingleTableStatement.java
similarity index 84%
copy from 
shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowSingleTableRulesStatement.java
copy to 
shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowSingleTableStatement.java
index 7a2a6df..f0b80b1 100644
--- 
a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowSingleTableRulesStatement.java
+++ 
b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowSingleTableStatement.java
@@ -21,14 +21,14 @@ import lombok.Getter;
 import 
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
 
 /**
- * Show single table rules statement.
+ * Show single table statement.
  */
 @Getter
-public final class ShowSingleTableRulesStatement extends ShowRulesStatement {
+public final class ShowSingleTableStatement extends ShowRulesStatement {
     
     private final String tableName;
     
-    public ShowSingleTableRulesStatement(final String tableName, final 
SchemaSegment schema) {
+    public ShowSingleTableStatement(final String tableName, final 
SchemaSegment schema) {
         super(schema);
         this.tableName = tableName;
     }
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/DataSourceQueryResultSet.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/resource/DataSourceQueryResultSet.java
similarity index 99%
rename from 
shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/DataSourceQueryResultSet.java
rename to 
shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/resource/DataSourceQueryResultSet.java
index 3d0cbd5..d19b947 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/DataSourceQueryResultSet.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/resource/DataSourceQueryResultSet.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.proxy.backend.text.distsql.rql;
+package org.apache.shardingsphere.proxy.backend.text.distsql.rql.resource;
 
 import com.google.gson.Gson;
 import 
org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowResourcesStatement;
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/DataSourceQueryResultSetConverter.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/resource/DataSourceQueryResultSetConverter.java
similarity index 99%
rename from 
shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/DataSourceQueryResultSetConverter.java
rename to 
shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/resource/DataSourceQueryResultSetConverter.java
index 80b7e6e..958e487 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/DataSourceQueryResultSetConverter.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/resource/DataSourceQueryResultSetConverter.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.proxy.backend.text.distsql.rql;
+package org.apache.shardingsphere.proxy.backend.text.distsql.rql.resource;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/SingleTableRuleQueryResultSet.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/rule/SingleTableQueryResultSet.java
similarity index 84%
copy from 
shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/SingleTableRuleQueryResultSet.java
copy to 
shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/rule/SingleTableQueryResultSet.java
index c9be884..b7f5cc7 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/SingleTableRuleQueryResultSet.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/rule/SingleTableQueryResultSet.java
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.proxy.backend.text.distsql.rql;
+package org.apache.shardingsphere.proxy.backend.text.distsql.rql.rule;
 
-import 
org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowSingleTableRulesStatement;
+import 
org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowSingleTableStatement;
 import org.apache.shardingsphere.infra.distsql.query.DistSQLResultSet;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import org.apache.shardingsphere.singletable.rule.SingleTableDataNode;
@@ -34,19 +34,19 @@ import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
 /**
- * Result set for show single table rules.
+ * Result set for show single table.
  */
-public final class SingleTableRuleQueryResultSet implements DistSQLResultSet {
+public final class SingleTableQueryResultSet implements DistSQLResultSet {
     
     private Iterator<SingleTableDataNode> data = Collections.emptyIterator();
     
     @Override
     public void init(final ShardingSphereMetaData metaData, final SQLStatement 
sqlStatement) {
-        ShowSingleTableRulesStatement showSingleTableRulesStatement = 
(ShowSingleTableRulesStatement) sqlStatement;
+        ShowSingleTableStatement showSingleTableStatement = 
(ShowSingleTableStatement) sqlStatement;
         Stream<SingleTableDataNode> singleTableRules = 
metaData.getRuleMetaData().getRules().stream().filter(each -> each instanceof 
SingleTableRule)
                 .map(each -> (SingleTableRule) each).map(each -> 
each.getSingleTableDataNodes().entrySet()).flatMap(Collection::stream).map(Entry::getValue);
-        if (null != showSingleTableRulesStatement.getTableName()) {
-            singleTableRules = singleTableRules.filter(each -> 
showSingleTableRulesStatement.getTableName().equals(each.getTableName()));
+        if (null != showSingleTableStatement.getTableName()) {
+            singleTableRules = singleTableRules.filter(each -> 
showSingleTableStatement.getTableName().equals(each.getTableName()));
         }
         data = 
singleTableRules.collect(Collectors.toCollection(LinkedList::new)).iterator();
     }
@@ -69,6 +69,6 @@ public final class SingleTableRuleQueryResultSet implements 
DistSQLResultSet {
     
     @Override
     public String getType() {
-        return ShowSingleTableRulesStatement.class.getCanonicalName();
+        return ShowSingleTableStatement.class.getCanonicalName();
     }
 }
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/SingleTableRuleQueryResultSet.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/rule/SingleTableRulesQueryResultSet.java
similarity index 57%
rename from 
shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/SingleTableRuleQueryResultSet.java
rename to 
shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/rule/SingleTableRulesQueryResultSet.java
index c9be884..3f6cad7 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/SingleTableRuleQueryResultSet.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/rule/SingleTableRulesQueryResultSet.java
@@ -15,45 +15,37 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.proxy.backend.text.distsql.rql;
+package org.apache.shardingsphere.proxy.backend.text.distsql.rql.rule;
 
 import 
org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowSingleTableRulesStatement;
 import org.apache.shardingsphere.infra.distsql.query.DistSQLResultSet;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
-import org.apache.shardingsphere.singletable.rule.SingleTableDataNode;
-import org.apache.shardingsphere.singletable.rule.SingleTableRule;
+import 
org.apache.shardingsphere.singletable.config.SingleTableRuleConfiguration;
 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.Iterator;
-import java.util.LinkedList;
-import java.util.Map.Entry;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
+import java.util.Optional;
 
 /**
  * Result set for show single table rules.
  */
-public final class SingleTableRuleQueryResultSet implements DistSQLResultSet {
+public final class SingleTableRulesQueryResultSet implements DistSQLResultSet {
     
-    private Iterator<SingleTableDataNode> data = Collections.emptyIterator();
+    private Iterator<String> data = Collections.emptyIterator();
     
     @Override
     public void init(final ShardingSphereMetaData metaData, final SQLStatement 
sqlStatement) {
-        ShowSingleTableRulesStatement showSingleTableRulesStatement = 
(ShowSingleTableRulesStatement) sqlStatement;
-        Stream<SingleTableDataNode> singleTableRules = 
metaData.getRuleMetaData().getRules().stream().filter(each -> each instanceof 
SingleTableRule)
-                .map(each -> (SingleTableRule) each).map(each -> 
each.getSingleTableDataNodes().entrySet()).flatMap(Collection::stream).map(Entry::getValue);
-        if (null != showSingleTableRulesStatement.getTableName()) {
-            singleTableRules = singleTableRules.filter(each -> 
showSingleTableRulesStatement.getTableName().equals(each.getTableName()));
-        }
-        data = 
singleTableRules.collect(Collectors.toCollection(LinkedList::new)).iterator();
+        Optional<SingleTableRuleConfiguration> ruleConfiguration = 
metaData.getRuleMetaData().getConfigurations().stream()
+                .filter(each -> each instanceof 
SingleTableRuleConfiguration).map(each -> (SingleTableRuleConfiguration) 
each).findAny();
+        
ruleConfiguration.flatMap(SingleTableRuleConfiguration::getDefaultDataSource).ifPresent(op
 -> data = Collections.singletonList(op).iterator());
     }
     
     @Override
     public Collection<String> getColumnNames() {
-        return Arrays.asList("table_name", "resource_name");
+        return Arrays.asList("name", "resource_name");
     }
     
     @Override
@@ -63,8 +55,7 @@ public final class SingleTableRuleQueryResultSet implements 
DistSQLResultSet {
     
     @Override
     public Collection<Object> getRowData() {
-        SingleTableDataNode next = data.next();
-        return Arrays.asList(next.getTableName(), next.getDataSourceName());
+        return Arrays.asList("default", data.next());
     }
     
     @Override
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.distsql.query.DistSQLResultSet
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.distsql.query.DistSQLResultSet
index 8693e4c..efdaef5 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.distsql.query.DistSQLResultSet
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.distsql.query.DistSQLResultSet
@@ -15,5 +15,6 @@
 # limitations under the License.
 #
 
-org.apache.shardingsphere.proxy.backend.text.distsql.rql.DataSourceQueryResultSet
-org.apache.shardingsphere.proxy.backend.text.distsql.rql.SingleTableRuleQueryResultSet
+org.apache.shardingsphere.proxy.backend.text.distsql.rql.resource.DataSourceQueryResultSet
+org.apache.shardingsphere.proxy.backend.text.distsql.rql.rule.SingleTableQueryResultSet
+org.apache.shardingsphere.proxy.backend.text.distsql.rql.rule.SingleTableRulesQueryResultSet
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/DataSourceQueryResultSetConverterTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/DataSourceQueryResultSetConverterTest.java
index 6d59c47..cbe6ae6 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/DataSourceQueryResultSetConverterTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/DataSourceQueryResultSetConverterTest.java
@@ -20,6 +20,7 @@ package 
org.apache.shardingsphere.proxy.backend.text.distsql.rql;
 import com.zaxxer.hikari.HikariDataSource;
 import 
org.apache.shardingsphere.infra.config.datasource.DataSourceConfiguration;
 import org.apache.shardingsphere.infra.config.datasource.DataSourceParameter;
+import 
org.apache.shardingsphere.proxy.backend.text.distsql.rql.resource.DataSourceQueryResultSetConverter;
 import org.junit.Test;
 
 import java.util.HashMap;
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/DataSourceQueryResultSetTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/DataSourceQueryResultSetTest.java
index c8c47c3..ca25486 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/DataSourceQueryResultSetTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/DataSourceQueryResultSetTest.java
@@ -30,6 +30,7 @@ import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
 import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
+import 
org.apache.shardingsphere.proxy.backend.text.distsql.rql.resource.DataSourceQueryResultSet;
 import org.apache.shardingsphere.test.mock.MockedDataSource;
 import org.junit.Before;
 import org.junit.Test;
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/SingleTableRuleQueryResultSetTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/SingleTableQueryResultSetTest.java
similarity index 92%
rename from 
shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/SingleTableRuleQueryResultSetTest.java
rename to 
shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/SingleTableQueryResultSetTest.java
index d3ea3a2..7c00df0 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/SingleTableRuleQueryResultSetTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/SingleTableQueryResultSetTest.java
@@ -17,11 +17,12 @@
 
 package org.apache.shardingsphere.proxy.backend.text.distsql.rql;
 
-import 
org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowSingleTableRulesStatement;
+import 
org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowSingleTableStatement;
 import org.apache.shardingsphere.infra.distsql.query.DistSQLResultSet;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import 
org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
 import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
+import 
org.apache.shardingsphere.proxy.backend.text.distsql.rql.rule.SingleTableQueryResultSet;
 import org.apache.shardingsphere.shadow.api.config.ShadowRuleConfiguration;
 import org.apache.shardingsphere.shadow.rule.ShadowRule;
 import org.apache.shardingsphere.singletable.rule.SingleTableDataNode;
@@ -45,7 +46,7 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 @RunWith(MockitoJUnitRunner.class)
-public final class SingleTableRuleQueryResultSetTest {
+public final class SingleTableQueryResultSetTest {
     
     @Mock
     private ShardingSphereMetaData shardingSphereMetaData;
@@ -64,8 +65,8 @@ public final class SingleTableRuleQueryResultSetTest {
     
     @Test
     public void assertGetRowData() {
-        DistSQLResultSet resultSet = new SingleTableRuleQueryResultSet();
-        resultSet.init(shardingSphereMetaData, 
mock(ShowSingleTableRulesStatement.class));
+        DistSQLResultSet resultSet = new SingleTableQueryResultSet();
+        resultSet.init(shardingSphereMetaData, 
mock(ShowSingleTableStatement.class));
         Collection<Object> actual = resultSet.getRowData();
         assertThat(actual.size(), is(2));
         Iterator<Object> rowData = actual.iterator();
@@ -84,8 +85,8 @@ public final class SingleTableRuleQueryResultSetTest {
         singleTableDataNodeMap.put("t_order_multiple", new 
SingleTableDataNode("t_order_multiple", "ds_1_multiple"));
         singleTableDataNodeMap.put("t_order_item_multiple", new 
SingleTableDataNode("t_order_item_multiple", "ds_2_multiple"));
         addShardingSphereRule(mockSingleTableRule(singleTableDataNodeMap));
-        DistSQLResultSet resultSet = new SingleTableRuleQueryResultSet();
-        resultSet.init(shardingSphereMetaData, 
mock(ShowSingleTableRulesStatement.class));
+        DistSQLResultSet resultSet = new SingleTableQueryResultSet();
+        resultSet.init(shardingSphereMetaData, 
mock(ShowSingleTableStatement.class));
         Collection<Object> actual = resultSet.getRowData();
         assertThat(actual.size(), is(2));
         Iterator<Object> rowData = actual.iterator();
@@ -111,8 +112,8 @@ public final class SingleTableRuleQueryResultSetTest {
     @Test
     public void assertGetRowDataWithOtherRules() {
         addShardingSphereRule(new 
ShadowRule(mock(ShadowRuleConfiguration.class)));
-        DistSQLResultSet resultSet = new SingleTableRuleQueryResultSet();
-        resultSet.init(shardingSphereMetaData, 
mock(ShowSingleTableRulesStatement.class));
+        DistSQLResultSet resultSet = new SingleTableQueryResultSet();
+        resultSet.init(shardingSphereMetaData, 
mock(ShowSingleTableStatement.class));
         Collection<Object> actual = resultSet.getRowData();
         assertThat(actual.size(), is(2));
         Iterator<Object> rowData = actual.iterator();
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/SingleTableRulesQueryResultSetTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/SingleTableRulesQueryResultSetTest.java
new file mode 100644
index 0000000..e152f9a
--- /dev/null
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rql/SingleTableRulesQueryResultSetTest.java
@@ -0,0 +1,64 @@
+/*
+ * 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.proxy.backend.text.distsql.rql;
+
+import 
org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowSingleTableStatement;
+import org.apache.shardingsphere.infra.distsql.query.DistSQLResultSet;
+import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
+import 
org.apache.shardingsphere.proxy.backend.text.distsql.rql.rule.SingleTableRulesQueryResultSet;
+import 
org.apache.shardingsphere.singletable.config.SingleTableRuleConfiguration;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Answers;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnitRunner;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Iterator;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+@RunWith(MockitoJUnitRunner.class)
+public final class SingleTableRulesQueryResultSetTest {
+    
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+    private ShardingSphereMetaData shardingSphereMetaData;
+    
+    @Before
+    public void before() {
+        SingleTableRuleConfiguration configuration = new 
SingleTableRuleConfiguration();
+        configuration.setDefaultDataSource("ds_0");
+        
when(shardingSphereMetaData.getRuleMetaData().getConfigurations()).thenReturn(Collections.singletonList(configuration));
+    }
+    
+    @Test
+    public void assertGetRowData() {
+        DistSQLResultSet resultSet = new SingleTableRulesQueryResultSet();
+        resultSet.init(shardingSphereMetaData, 
mock(ShowSingleTableStatement.class));
+        Collection<Object> actual = resultSet.getRowData();
+        assertThat(actual.size(), is(2));
+        Iterator<Object> rowData = actual.iterator();
+        assertThat(rowData.next(), is("default"));
+        assertThat(rowData.next(), is("ds_0"));
+    }
+}
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 b45b1e4..84ace43 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
@@ -22,6 +22,7 @@ import lombok.NoArgsConstructor;
 import 
org.apache.shardingsphere.dbdiscovery.distsql.parser.statement.ShowDatabaseDiscoveryRulesStatement;
 import 
org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowRulesStatement;
 import 
org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowSingleTableRulesStatement;
+import 
org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowSingleTableStatement;
 import 
org.apache.shardingsphere.encrypt.distsql.parser.statement.ShowEncryptRulesStatement;
 import 
org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.ShowReadwriteSplittingRulesStatement;
 import 
org.apache.shardingsphere.shadow.distsql.parser.statement.ShowShadowAlgorithmsStatement;
@@ -41,6 +42,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.ShowShardingBroadcastTableRulesStatementAssert;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.rql.impl.rule.ShowShardingTableRulesStatementAssert;
 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.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.ShowEncryptRulesStatementTestCase;
@@ -52,6 +54,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.ShowShardingBroadcastTableRulesStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rql.ShowShardingTableRulesStatementTestCase;
 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;
 
 /**
  * Show rule statement assert.
@@ -85,6 +88,8 @@ public final class ShowRulesStatementAssert {
             ShowShadowRulesStatementAssert.assertIs(assertContext, 
(ShowShadowRulesStatement) actual, (ShowShadowRulesStatementTestCase) expected);
         } else if (actual instanceof ShowShadowAlgorithmsStatement) {
             ShowShadowAlgorithmsStatementAssert.assertIs(assertContext, 
(ShowShadowAlgorithmsStatement) actual, (ShowShadowAlgorithmsStatementTestCase) 
expected);
+        } else if (actual instanceof ShowSingleTableStatement) {
+            ShowSingleTableStatementAssert.assertIs(assertContext, 
(ShowSingleTableStatement) actual, (ShowSingleTableStatementTestCase) expected);
         } else if (actual instanceof ShowSingleTableRulesStatement) {
             ShowSingleTableRulesStatementAssert.assertIs(assertContext, 
(ShowSingleTableRulesStatement) actual, (ShowSingleTableRulesStatementTestCase) 
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/ShowSingleTableStatementAssert.java
 
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowSingleTableStatementAssert.java
new file mode 100644
index 0000000..01be9dd
--- /dev/null
+++ 
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/rql/impl/rule/ShowSingleTableStatementAssert.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.distsql.parser.statement.rql.show.ShowSingleTableStatement;
+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.ShowSingleTableStatementTestCase;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+/**
+ * Show single table statement assert.
+ */
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
+public final class ShowSingleTableStatementAssert {
+    
+    /**
+     * Assert show single table statement is correct with expected parser 
result.
+     *
+     * @param assertContext assert context
+     * @param actual actual show single table statement
+     * @param expected expected show single table statement test case
+     */
+    public static void assertIs(final SQLCaseAssertContext assertContext, 
final ShowSingleTableStatement actual, final ShowSingleTableStatementTestCase 
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 58163af..d7b5a65 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
@@ -186,6 +186,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.ShowShardingBroadcastTableRulesStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rql.ShowShardingTableRulesStatementTestCase;
 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.dml.CallStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.dml.DeleteStatementTestCase;
 import 
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.dml.InsertStatementTestCase;
@@ -700,6 +701,9 @@ public final class SQLParserTestCases {
     @XmlElement(name = "uninstall-plugin")
     private final List<UninstallPluginStatementTestCase> 
uninstallPluginStatementTestCases = new LinkedList<>();
     
+    @XmlElement(name = "show-single-table")
+    private final List<ShowSingleTableStatementTestCase> 
showSingleTableStatementTestCases = new LinkedList<>();
+    
     @XmlElement(name = "show-single-table-rules")
     private final List<ShowSingleTableRulesStatementTestCase> 
showSingleTableRulesStatementTestCases = new LinkedList<>();
     
@@ -926,6 +930,7 @@ public final class SQLParserTestCases {
         putAll(createResourceGroupStatementTestCases, result);
         putAll(binlogStatementTestCases, result);
         putAll(uninstallPluginStatementTestCases, result);
+        putAll(showSingleTableStatementTestCases, result);
         putAll(showSingleTableRulesStatementTestCases, result);
         putAll(setResourceGroupStatementTestCases, result);
         putAll(optimizeTableStatementTestCases, result);
diff --git 
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rql/ShowSingleTableRulesStatementTestCase.java
 
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rql/ShowSingleTableRulesStatementTestCase.java
index 0445d98..3db6fd4 100644
--- 
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rql/ShowSingleTableRulesStatementTestCase.java
+++ 
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rql/ShowSingleTableRulesStatementTestCase.java
@@ -22,7 +22,6 @@ 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;
 
-import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlElement;
 
 /**
@@ -32,9 +31,6 @@ import javax.xml.bind.annotation.XmlElement;
 @Setter
 public final class ShowSingleTableRulesStatementTestCase extends 
SQLParserTestCase {
     
-    @XmlAttribute
-    private String name;
-    
     @XmlElement
     private ExpectedSchema schema;
 }
diff --git 
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rql/ShowSingleTableRulesStatementTestCase.java
 
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rql/ShowSingleTableStatementTestCase.java
similarity index 91%
copy from 
shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rql/ShowSingleTableRulesStatementTestCase.java
copy to 
shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rql/ShowSingleTableStatementTestCase.java
index 0445d98..b219903 100644
--- 
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rql/ShowSingleTableRulesStatementTestCase.java
+++ 
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/rql/ShowSingleTableStatementTestCase.java
@@ -26,11 +26,11 @@ import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlElement;
 
 /**
- * Show single table rules statement test case.
+ * Show single table statement test case.
  */
 @Getter
 @Setter
-public final class ShowSingleTableRulesStatementTestCase extends 
SQLParserTestCase {
+public final class ShowSingleTableStatementTestCase extends SQLParserTestCase {
     
     @XmlAttribute
     private String name;
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 271b0d2..592d754 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
@@ -70,8 +70,12 @@
         <schema name="shadow_db" start-index="28" stop-index="36"/>
     </show-shadow-algorithms>
 
+    <show-single-table sql-case-id="show-single-table">
+        <name name="t_order" start-index="19" stop-index="25"/>
+        <schema name="single_table_db" start-index="31" stop-index="45"/>
+    </show-single-table>
+    
     <show-single-table-rules sql-case-id="show-single-table-rules">
-        <name name="t_order" start-index="23" stop-index="29"/>
-        <schema name="single_table_db" start-index="36" stop-index="50"/>
+        <schema name="single_table_db" start-index="29" stop-index="43"/>
     </show-single-table-rules>
 </sql-parser-test-cases>
diff --git 
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/rdl/drop.xml
 
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/rdl/drop.xml
index aa57516..34cfbe9 100644
--- 
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/rdl/drop.xml
+++ 
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/rdl/drop.xml
@@ -29,5 +29,5 @@
     <distsql-case id="drop-encrypt-rule" value="DROP ENCRYPT RULE 
t_encrypt,t_encrypt_order" />
     <distsql-case id="drop-shadow-rule" value="DROP SHADOW RULE 
shadow_rule_1,shadow_rule_2" />
     <distsql-case id="drop-shadow-algorithm" value="DROP SHADOW algorithm 
shadow_algorithm_1,shadow_algorithm_2" />
-    <distsql-case id="drop-default-single-table" value="DROP DEFAULT SINGLE 
TABLE RULE RESOURCE" />
+    <distsql-case id="drop-default-single-table" value="DROP DEFAULT SINGLE 
TABLE RULE" />
 </sql-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 38a9263..7c4fc8f 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
@@ -30,5 +30,6 @@
     <distsql-case id="show-shadow-rules" value="SHOW SHADOW RULE shadow_rule 
FROM shadow_db" />
     <distsql-case id="show-shadow-table-rules" value="SHOW SHADOW TABLE RULES 
FROM shadow_db" />
     <distsql-case id="show-shadow-algorithms" value="SHOW SHADOW ALGORITHMS 
FROM shadow_db" />
-    <distsql-case id="show-single-table-rules" value="SHOW SINGLE TABLE RULE 
t_order FROM single_table_db" />
+    <distsql-case id="show-single-table" value="SHOW SINGLE TABLE t_order FROM 
single_table_db" />
+    <distsql-case id="show-single-table-rules" value="SHOW SINGLE TABLE RULES 
FROM single_table_db" />
 </sql-cases>

Reply via email to