You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by pa...@apache.org on 2021/08/17 07:15:46 UTC

[shardingsphere] branch master updated: Refactor 'hint' in SCTL (#11838)

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

panjuan 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 6cac22a  Refactor 'hint' in SCTL (#11838)
6cac22a is described below

commit 6cac22a79765ddd96170120c3b82e9584a735716
Author: lanchengx <52...@users.noreply.github.com>
AuthorDate: Tue Aug 17 02:15:20 2021 -0500

    Refactor 'hint' in SCTL (#11838)
    
    * Refactor : Implement 'readwrite-splitting hint'
    
    * Refactor : Implement 'readwrite-splitting/sharding hint'
    
    * Add unit test & modify class name
    
    * Add unit test
    
    * modify comments & format
    
    * rename classes
    
    * modify comment & revert a change of ClearReadwriteSplittingHintExecutor
    
    * Use 'emptyStatement' to replace 'null'
    modify the g4 file
    
    * Add final keyword.
    
    * delete extra space.
---
 .../ReadwriteSplittingDistSQLStatementVisitor.java |  18 +++-
 ...a => ClearReadwriteSplittingHintStatement.java} |   6 +-
 ...ava => SetReadwriteSplittingHintStatement.java} |   4 +-
 ...ShowReadwriteSplittingHintStatusStatement.java} |   6 +-
 .../main/antlr4/imports/sharding/RALStatement.g4   |   2 +-
 .../core/ShardingDistSQLStatementVisitor.java      |  35 +++++++
 .../AddShardingHintDatabaseValueStatement.java}    |  10 +-
 .../hint/AddShardingHintTableValueStatement.java}  |  10 +-
 .../hint/ClearShardingHintStatement.java}          |   8 +-
 .../SetShardingHintDatabaseValueStatement.java}    |   8 +-
 .../hint/ShowShardingHintStatusStatement.java}     |   8 +-
 .../shardingsphere/infra/hint/HintManager.java     |   9 ++
 .../shardingsphere/infra/hint/HintManagerTest.java |  11 +++
 .../common/hint/HintStatementExecutorFactory.java  |  45 ++++++++-
 ...a => AddShardingHintDatabaseValueExecutor.java} |  14 +--
 ...java => AddShardingHintTableValueExecutor.java} |  14 +--
 .../common/hint/executor/ClearHintExecutor.java    |   5 +-
 ...va => ClearReadwriteSplittingHintExecutor.java} |  14 ++-
 ...xecutor.java => ClearShardingHintExecutor.java} |  14 ++-
 ...java => SetReadwriteSplittingHintExecutor.java} |  11 ++-
 ...a => SetShardingHintDatabaseValueExecutor.java} |  14 +--
 .../ShowReadwriteSplittingHintStatusExecutor.java  |  58 +++++++++++
 .../executor/ShowShardingHintStatusExecutor.java   | 108 ++++++++++++++++++++
 .../hint/HintStatementExecutorFactoryTest.java     | 110 +++++++++++++++++++++
 .../jaxb/cases/domain/SQLParserTestCases.java      |  45 +++++++++
 ...ShardingHintDatabaseValueStatementTestCase.java |  14 ++-
 ...AddShardingHintTableValueStatementTestCase.java |  14 ++-
 .../distsql/ral/ClearHintStatementTestCase.java    |  14 ++-
 ...earReadwriteSplittingHintStatementTestCase.java |  14 ++-
 .../ral/ClearShardingHintStatementTestCase.java    |  14 ++-
 ...SetReadwriteSplittingHintStatementTestCase.java |  15 ++-
 ...ShardingHintDatabaseValueStatementTestCase.java |  14 ++-
 ...dwriteSplittingHintStatusStatementTestCase.java |  15 ++-
 .../ShowShardingHintStatusStatementTestCase.java   |  14 ++-
 .../main/resources/case/ral/{show.xml => add.xml}  |   3 +-
 .../resources/case/ral/{show.xml => clear.xml}     |   4 +-
 .../src/main/resources/case/ral/set.xml            |   2 +
 .../src/main/resources/case/ral/show.xml           |   2 +
 .../sql/supported/ral/{show.xml => add.xml}        |   3 +-
 .../sql/supported/ral/{show.xml => clear.xml}      |   4 +-
 .../src/main/resources/sql/supported/ral/set.xml   |   2 +
 .../src/main/resources/sql/supported/ral/show.xml  |   2 +
 42 files changed, 576 insertions(+), 161 deletions(-)

diff --git a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-parser/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/core/ReadwriteSplittingDistSQLStatementVisitor.java b/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-parser/src/main/java/org/apache/shardingsphere/readwrit [...]
index 395d2a5..b4f9416 100644
--- a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-parser/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/core/ReadwriteSplittingDistSQLStatementVisitor.java
+++ b/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-parser/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/core/ReadwriteSplittingDistSQLStatementVisitor.java
@@ -22,12 +22,14 @@ import org.apache.shardingsphere.distsql.parser.autogen.ReadwriteSplittingDistSQ
 import org.apache.shardingsphere.distsql.parser.autogen.ReadwriteSplittingDistSQLStatementParser.AlgorithmDefinitionContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ReadwriteSplittingDistSQLStatementParser.AlgorithmPropertyContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ReadwriteSplittingDistSQLStatementParser.AlterReadwriteSplittingRuleContext;
+import org.apache.shardingsphere.distsql.parser.autogen.ReadwriteSplittingDistSQLStatementParser.ClearReadwriteSplittingHintContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ReadwriteSplittingDistSQLStatementParser.CreateReadwriteSplittingRuleContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ReadwriteSplittingDistSQLStatementParser.DropReadwriteSplittingRuleContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ReadwriteSplittingDistSQLStatementParser.ReadwriteSplittingRuleDefinitionContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ReadwriteSplittingDistSQLStatementParser.RuleNameContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ReadwriteSplittingDistSQLStatementParser.SchemaNameContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ReadwriteSplittingDistSQLStatementParser.SetReadwriteSplittingHintSourceContext;
+import org.apache.shardingsphere.distsql.parser.autogen.ReadwriteSplittingDistSQLStatementParser.ShowReadwriteSplittingHintStatusContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ReadwriteSplittingDistSQLStatementParser.ShowReadwriteSplittingRulesContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ReadwriteSplittingDistSQLStatementParser.StaticReadwriteSplittingRuleDefinitionContext;
 import org.apache.shardingsphere.distsql.parser.segment.AlgorithmSegment;
@@ -36,7 +38,9 @@ import org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.Alt
 import org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.CreateReadwriteSplittingRuleStatement;
 import org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.DropReadwriteSplittingRuleStatement;
 import org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.ShowReadwriteSplittingRulesStatement;
-import org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.hint.SetReadwriteSplittingHintSourceStatement;
+import org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.hint.ClearReadwriteSplittingHintStatement;
+import org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.hint.SetReadwriteSplittingHintStatement;
+import org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.hint.ShowReadwriteSplittingHintStatusStatement;
 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;
@@ -99,7 +103,17 @@ public final class ReadwriteSplittingDistSQLStatementVisitor extends ReadwriteSp
     
     @Override
     public ASTNode visitSetReadwriteSplittingHintSource(final SetReadwriteSplittingHintSourceContext ctx) {
-        return new SetReadwriteSplittingHintSourceStatement(ctx.sourceValue().getText());
+        return new SetReadwriteSplittingHintStatement(ctx.sourceValue().getText());
+    }
+    
+    @Override
+    public ASTNode visitShowReadwriteSplittingHintStatus(final ShowReadwriteSplittingHintStatusContext ctx) {
+        return new ShowReadwriteSplittingHintStatusStatement();
+    }
+    
+    @Override
+    public ASTNode visitClearReadwriteSplittingHint(final ClearReadwriteSplittingHintContext ctx) {
+        return new ClearReadwriteSplittingHintStatement();
     }
     
     private Properties getAlgorithmProperties(final AlgorithmDefinitionContext ctx) {
diff --git a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java b/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/sharding [...]
similarity index 85%
copy from shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java
copy to shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/ClearReadwriteSplittingHintStatement.java
index 76b7a4f..9a8a893 100644
--- a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java
+++ b/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/ClearReadwriteSplittingHintStatement.java
@@ -22,11 +22,9 @@ import lombok.RequiredArgsConstructor;
 import org.apache.shardingsphere.distsql.parser.statement.ral.common.HintDistSQLStatement;
 
 /**
- * Set readwrite-splitting hint source statement.
+ * Clear readwrite-splitting hint statement.
  */
 @RequiredArgsConstructor
 @Getter
-public final class SetReadwriteSplittingHintSourceStatement extends HintDistSQLStatement {
-    
-    private final String source;
+public final class ClearReadwriteSplittingHintStatement extends HintDistSQLStatement {
 }
diff --git a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java b/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/sharding [...]
similarity index 88%
copy from shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java
copy to shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintStatement.java
index 76b7a4f..181d32f 100644
--- a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java
+++ b/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintStatement.java
@@ -22,11 +22,11 @@ import lombok.RequiredArgsConstructor;
 import org.apache.shardingsphere.distsql.parser.statement.ral.common.HintDistSQLStatement;
 
 /**
- * Set readwrite-splitting hint source statement.
+ * Set readwrite-splitting hint statement.
  */
 @RequiredArgsConstructor
 @Getter
-public final class SetReadwriteSplittingHintSourceStatement extends HintDistSQLStatement {
+public final class SetReadwriteSplittingHintStatement extends HintDistSQLStatement {
     
     private final String source;
 }
diff --git a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java b/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/sharding [...]
similarity index 85%
copy from shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java
copy to shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/ShowReadwriteSplittingHintStatusStatement.java
index 76b7a4f..d535454 100644
--- a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java
+++ b/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/ShowReadwriteSplittingHintStatusStatement.java
@@ -22,11 +22,9 @@ import lombok.RequiredArgsConstructor;
 import org.apache.shardingsphere.distsql.parser.statement.ral.common.HintDistSQLStatement;
 
 /**
- * Set readwrite-splitting hint source statement.
+ * Show readwrite-splitting hint status statement.
  */
 @RequiredArgsConstructor
 @Getter
-public final class SetReadwriteSplittingHintSourceStatement extends HintDistSQLStatement {
-    
-    private final String source;
+public final class ShowReadwriteSplittingHintStatusStatement extends HintDistSQLStatement {
 }
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/antlr4/imports/sharding/RALStatement.g4 b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/antlr4/imports/sharding/RALStatement.g4
index 27a3590..2f5f51b 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/antlr4/imports/sharding/RALStatement.g4
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/antlr4/imports/sharding/RALStatement.g4
@@ -44,5 +44,5 @@ tableName
     ;
 
 shardingValue
-    : IDENTIFIER
+    : INT | IDENTIFIER | STRING
     ;
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/core/ShardingDistSQLStatementVisitor.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/core/ShardingDistSQLStatementVisitor.java
index 97ceb16..75cc48d 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/core/ShardingDistSQLStatementVisitor.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/core/ShardingDistSQLStatementVisitor.java
@@ -21,6 +21,10 @@ import com.google.common.base.Joiner;
 import org.antlr.v4.runtime.tree.ParseTree;
 import org.antlr.v4.runtime.tree.TerminalNode;
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementBaseVisitor;
+import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.AddShardingHintDatabaseValueContext;
+import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.AddShardingHintTableValueContext;
+import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.ClearShardingHintContext;
+import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.SetShardingHintDatabaseValueContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.ShowShardingAlgorithmsContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.AlgorithmDefinitionContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.AlgorithmPropertyContext;
@@ -39,6 +43,7 @@ import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatement
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.ShardingTableRuleDefinitionContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.ShowShardingBindingTableRulesContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.ShowShardingBroadcastTableRulesContext;
+import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.ShowShardingHintStatusContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.ShowShardingTableRulesContext;
 import org.apache.shardingsphere.distsql.parser.autogen.ShardingDistSQLStatementParser.TableNameContext;
 import org.apache.shardingsphere.distsql.parser.segment.AlgorithmSegment;
@@ -58,6 +63,11 @@ import org.apache.shardingsphere.sharding.distsql.parser.statement.ShowShardingA
 import org.apache.shardingsphere.sharding.distsql.parser.statement.ShowShardingBindingTableRulesStatement;
 import org.apache.shardingsphere.sharding.distsql.parser.statement.ShowShardingBroadcastTableRulesStatement;
 import org.apache.shardingsphere.sharding.distsql.parser.statement.ShowShardingTableRulesStatement;
+import org.apache.shardingsphere.sharding.distsql.parser.statement.hint.AddShardingHintDatabaseValueStatement;
+import org.apache.shardingsphere.sharding.distsql.parser.statement.hint.AddShardingHintTableValueStatement;
+import org.apache.shardingsphere.sharding.distsql.parser.statement.hint.ClearShardingHintStatement;
+import org.apache.shardingsphere.sharding.distsql.parser.statement.hint.SetShardingHintDatabaseValueStatement;
+import org.apache.shardingsphere.sharding.distsql.parser.statement.hint.ShowShardingHintStatusStatement;
 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;
@@ -129,6 +139,31 @@ public final class ShardingDistSQLStatementVisitor extends ShardingDistSQLStatem
     }
     
     @Override
+    public ASTNode visitSetShardingHintDatabaseValue(final SetShardingHintDatabaseValueContext ctx) {
+        return new SetShardingHintDatabaseValueStatement(new IdentifierValue(ctx.shardingValue().getText()).getValue());
+    }
+    
+    @Override
+    public ASTNode visitAddShardingHintDatabaseValue(final AddShardingHintDatabaseValueContext ctx) {
+        return new AddShardingHintDatabaseValueStatement(ctx.tableName().getText(), new IdentifierValue(ctx.shardingValue().getText()).getValue());
+    }
+    
+    @Override
+    public ASTNode visitAddShardingHintTableValue(final AddShardingHintTableValueContext ctx) {
+        return new AddShardingHintTableValueStatement(ctx.tableName().getText(), new IdentifierValue(ctx.shardingValue().getText()).getValue());
+    }
+    
+    @Override
+    public ASTNode visitShowShardingHintStatus(final ShowShardingHintStatusContext ctx) {
+        return new ShowShardingHintStatusStatement();
+    }
+    
+    @Override
+    public ASTNode visitClearShardingHint(final ClearShardingHintContext ctx) {
+        return new ClearShardingHintStatement();
+    }
+    
+    @Override
     public ASTNode visitDropShardingBroadcastTableRules(final DropShardingBroadcastTableRulesContext ctx) {
         return new DropShardingBroadcastTableRulesStatement();
     }
diff --git a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/st [...]
similarity index 77%
copy from shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java
copy to shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/hint/AddShardingHintDatabaseValueStatement.java
index 76b7a4f..c9efae2 100644
--- a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/hint/AddShardingHintDatabaseValueStatement.java
@@ -15,18 +15,20 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.hint;
+package org.apache.shardingsphere.sharding.distsql.parser.statement.hint;
 
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import org.apache.shardingsphere.distsql.parser.statement.ral.common.HintDistSQLStatement;
 
 /**
- * Set readwrite-splitting hint source statement.
+ * Add sharding hint database value statement.
  */
 @RequiredArgsConstructor
 @Getter
-public final class SetReadwriteSplittingHintSourceStatement extends HintDistSQLStatement {
+public final class AddShardingHintDatabaseValueStatement extends HintDistSQLStatement {
     
-    private final String source;
+    private final String logicTableName;
+    
+    private final String shardingValue;
 }
diff --git a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/st [...]
similarity index 77%
copy from shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java
copy to shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/hint/AddShardingHintTableValueStatement.java
index 76b7a4f..60ba442 100644
--- a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/hint/AddShardingHintTableValueStatement.java
@@ -15,18 +15,20 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.hint;
+package org.apache.shardingsphere.sharding.distsql.parser.statement.hint;
 
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import org.apache.shardingsphere.distsql.parser.statement.ral.common.HintDistSQLStatement;
 
 /**
- * Set readwrite-splitting hint source statement.
+ * Add sharding hint table value statement.
  */
 @RequiredArgsConstructor
 @Getter
-public final class SetReadwriteSplittingHintSourceStatement extends HintDistSQLStatement {
+public final class AddShardingHintTableValueStatement extends HintDistSQLStatement {
     
-    private final String source;
+    private final String logicTableName;
+    
+    private final String shardingValue;
 }
diff --git a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/st [...]
similarity index 79%
copy from shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java
copy to shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/hint/ClearShardingHintStatement.java
index 76b7a4f..d471109 100644
--- a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/hint/ClearShardingHintStatement.java
@@ -15,18 +15,16 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.hint;
+package org.apache.shardingsphere.sharding.distsql.parser.statement.hint;
 
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import org.apache.shardingsphere.distsql.parser.statement.ral.common.HintDistSQLStatement;
 
 /**
- * Set readwrite-splitting hint source statement.
+ * Clear sharding hint statement.
  */
 @RequiredArgsConstructor
 @Getter
-public final class SetReadwriteSplittingHintSourceStatement extends HintDistSQLStatement {
-    
-    private final String source;
+public final class ClearShardingHintStatement extends HintDistSQLStatement {
 }
diff --git a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/st [...]
similarity index 79%
copy from shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java
copy to shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/hint/SetShardingHintDatabaseValueStatement.java
index 76b7a4f..1c74ea6 100644
--- a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/hint/SetShardingHintDatabaseValueStatement.java
@@ -15,18 +15,18 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.hint;
+package org.apache.shardingsphere.sharding.distsql.parser.statement.hint;
 
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import org.apache.shardingsphere.distsql.parser.statement.ral.common.HintDistSQLStatement;
 
 /**
- * Set readwrite-splitting hint source statement.
+ * Set sharding hint database value statement.
  */
 @RequiredArgsConstructor
 @Getter
-public final class SetReadwriteSplittingHintSourceStatement extends HintDistSQLStatement {
+public final class SetShardingHintDatabaseValueStatement extends HintDistSQLStatement {
     
-    private final String source;
+    private final String shardingValue;
 }
diff --git a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/st [...]
similarity index 79%
copy from shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java
copy to shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/hint/ShowShardingHintStatusStatement.java
index 76b7a4f..2fa87f8 100644
--- a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/hint/ShowShardingHintStatusStatement.java
@@ -15,18 +15,16 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.hint;
+package org.apache.shardingsphere.sharding.distsql.parser.statement.hint;
 
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import org.apache.shardingsphere.distsql.parser.statement.ral.common.HintDistSQLStatement;
 
 /**
- * Set readwrite-splitting hint source statement.
+ * Show sharding hint status statement.
  */
 @RequiredArgsConstructor
 @Getter
-public final class SetReadwriteSplittingHintSourceStatement extends HintDistSQLStatement {
-    
-    private final String source;
+public final class ShowShardingHintStatusStatement extends HintDistSQLStatement {
 }
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/hint/HintManager.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/hint/HintManager.java
index 6dc37bd..fb9f7f6 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/hint/HintManager.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/hint/HintManager.java
@@ -168,6 +168,15 @@ public final class HintManager implements AutoCloseable {
         HINT_MANAGER_HOLDER.remove();
     }
     
+    /**
+     * Clear sharding values.
+     */
+    public void clearShardingValues() {
+        databaseShardingValues.clear();
+        tableShardingValues.clear();
+        databaseShardingOnly = false;
+    }
+    
     @Override
     public void close() {
         clear();
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/hint/HintManagerTest.java b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/hint/HintManagerTest.java
index 76126e2..3baa07c 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/hint/HintManagerTest.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/hint/HintManagerTest.java
@@ -178,6 +178,17 @@ public final class HintManagerTest {
     }
     
     @Test
+    public void assertClearShardingValues() {
+        try (HintManager hintManager = HintManager.getInstance()) {
+            hintManager.addDatabaseShardingValue("t_order", 1);
+            hintManager.addTableShardingValue("t_order", 1);
+            hintManager.clearShardingValues();
+            assertTrue(HintManager.getDatabaseShardingValues().isEmpty());
+            assertTrue(HintManager.getTableShardingValues("t_order").isEmpty());
+        }
+    }
+    
+    @Test
     public void assertClose() {
         HintManager hintManager = HintManager.getInstance();
         hintManager.addDatabaseShardingValue("logic_table", 1);
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/HintStatementExecutorFactory.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/HintStatementExecutorFactory.java
index 9d920d4..d593071 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/HintStatementExecutorFactory.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/HintStatementExecutorFactory.java
@@ -23,9 +23,23 @@ import lombok.NoArgsConstructor;
 import org.apache.shardingsphere.distsql.parser.statement.ral.common.HintDistSQLStatement;
 import org.apache.shardingsphere.distsql.parser.statement.ral.common.hint.ClearHintStatement;
 import org.apache.shardingsphere.proxy.backend.communication.jdbc.connection.BackendConnection;
+import org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.hint.executor.AddShardingHintDatabaseValueExecutor;
+import org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.hint.executor.AddShardingHintTableValueExecutor;
 import org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.hint.executor.ClearHintExecutor;
-import org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.hint.executor.SetReadwriteSplittingHintSourceExecutor;
-import org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.hint.SetReadwriteSplittingHintSourceStatement;
+import org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.hint.executor.ClearReadwriteSplittingHintExecutor;
+import org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.hint.executor.ClearShardingHintExecutor;
+import org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.hint.executor.SetReadwriteSplittingHintExecutor;
+import org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.hint.executor.SetShardingHintDatabaseValueExecutor;
+import org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.hint.executor.ShowReadwriteSplittingHintStatusExecutor;
+import org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.hint.executor.ShowShardingHintStatusExecutor;
+import org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.hint.ClearReadwriteSplittingHintStatement;
+import org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.hint.SetReadwriteSplittingHintStatement;
+import org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.hint.ShowReadwriteSplittingHintStatusStatement;
+import org.apache.shardingsphere.sharding.distsql.parser.statement.hint.AddShardingHintDatabaseValueStatement;
+import org.apache.shardingsphere.sharding.distsql.parser.statement.hint.AddShardingHintTableValueStatement;
+import org.apache.shardingsphere.sharding.distsql.parser.statement.hint.ClearShardingHintStatement;
+import org.apache.shardingsphere.sharding.distsql.parser.statement.hint.SetShardingHintDatabaseValueStatement;
+import org.apache.shardingsphere.sharding.distsql.parser.statement.hint.ShowShardingHintStatusStatement;
 
 import java.sql.SQLException;
 
@@ -44,11 +58,32 @@ public final class HintStatementExecutorFactory {
      * @throws SQLException SQL exception
      */
     public static HintStatementExecutor newInstance(final HintDistSQLStatement sqlStatement, final BackendConnection backendConnection) throws SQLException {
-        if (sqlStatement instanceof SetReadwriteSplittingHintSourceStatement) {
-            return new SetReadwriteSplittingHintSourceExecutor((SetReadwriteSplittingHintSourceStatement) sqlStatement);
+        if (sqlStatement instanceof SetReadwriteSplittingHintStatement) {
+            return new SetReadwriteSplittingHintExecutor((SetReadwriteSplittingHintStatement) sqlStatement);
+        }
+        if (sqlStatement instanceof ShowReadwriteSplittingHintStatusStatement) {
+            return new ShowReadwriteSplittingHintStatusExecutor();
+        }
+        if (sqlStatement instanceof ClearReadwriteSplittingHintStatement) {
+            return new ClearReadwriteSplittingHintExecutor();
         }
         if (sqlStatement instanceof ClearHintStatement) {
-            return new ClearHintExecutor((ClearHintStatement) sqlStatement);
+            return new ClearHintExecutor();
+        }
+        if (sqlStatement instanceof SetShardingHintDatabaseValueStatement) {
+            return new SetShardingHintDatabaseValueExecutor((SetShardingHintDatabaseValueStatement) sqlStatement);
+        }
+        if (sqlStatement instanceof AddShardingHintDatabaseValueStatement) {
+            return new AddShardingHintDatabaseValueExecutor((AddShardingHintDatabaseValueStatement) sqlStatement);
+        }
+        if (sqlStatement instanceof AddShardingHintTableValueStatement) {
+            return new AddShardingHintTableValueExecutor((AddShardingHintTableValueStatement) sqlStatement);
+        }
+        if (sqlStatement instanceof ShowShardingHintStatusStatement) {
+            return new ShowShardingHintStatusExecutor(backendConnection);
+        }
+        if (sqlStatement instanceof ClearShardingHintStatement) {
+            return new ClearShardingHintExecutor();
         }
         throw new UnsupportedTypeException(sqlStatement.getClass().getCanonicalName());
     }
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ClearHintExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/AddShardingHintDatabaseValueExecutor.java
similarity index 67%
copy from shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ClearHintExecutor.java
copy to shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/AddShardingHintDatabaseValueExecutor.java
index 7d16843..390d249 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ClearHintExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/AddShardingHintDatabaseValueExecutor.java
@@ -18,23 +18,23 @@
 package org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.hint.executor;
 
 import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.distsql.parser.statement.ral.common.hint.ClearHintStatement;
 import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
 import org.apache.shardingsphere.proxy.backend.response.header.update.UpdateResponseHeader;
 import org.apache.shardingsphere.proxy.backend.text.sctl.hint.internal.HintManagerHolder;
+import org.apache.shardingsphere.sharding.distsql.parser.statement.hint.AddShardingHintDatabaseValueStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.dml.EmptyStatement;
 
 /**
- * Clear hint statement executor.
+ * Add sharding hint database value executor.
  */
 @RequiredArgsConstructor
-public final class ClearHintExecutor extends AbstractHintUpdateExecutor<ClearHintStatement> {
+public final class AddShardingHintDatabaseValueExecutor extends AbstractHintUpdateExecutor<AddShardingHintDatabaseValueStatement> {
     
-    private final ClearHintStatement sqlStatement;
+    private final AddShardingHintDatabaseValueStatement sqlStatement;
     
     @Override
     public ResponseHeader execute() {
-        HintManagerHolder.get().close();
-        HintManagerHolder.remove();
-        return new UpdateResponseHeader(null);
+        HintManagerHolder.get().addDatabaseShardingValue(sqlStatement.getLogicTableName(), sqlStatement.getShardingValue());
+        return new UpdateResponseHeader(new EmptyStatement());
     }
 }
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ClearHintExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/AddShardingHintTableValueExecutor.java
similarity index 67%
copy from shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ClearHintExecutor.java
copy to shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/AddShardingHintTableValueExecutor.java
index 7d16843..90b0ec9 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ClearHintExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/AddShardingHintTableValueExecutor.java
@@ -18,23 +18,23 @@
 package org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.hint.executor;
 
 import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.distsql.parser.statement.ral.common.hint.ClearHintStatement;
 import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
 import org.apache.shardingsphere.proxy.backend.response.header.update.UpdateResponseHeader;
 import org.apache.shardingsphere.proxy.backend.text.sctl.hint.internal.HintManagerHolder;
+import org.apache.shardingsphere.sharding.distsql.parser.statement.hint.AddShardingHintTableValueStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.dml.EmptyStatement;
 
 /**
- * Clear hint statement executor.
+ * Add sharding hint table value executor.
  */
 @RequiredArgsConstructor
-public final class ClearHintExecutor extends AbstractHintUpdateExecutor<ClearHintStatement> {
+public final class AddShardingHintTableValueExecutor extends AbstractHintUpdateExecutor<AddShardingHintTableValueStatement> {
     
-    private final ClearHintStatement sqlStatement;
+    private final AddShardingHintTableValueStatement sqlStatement;
     
     @Override
     public ResponseHeader execute() {
-        HintManagerHolder.get().close();
-        HintManagerHolder.remove();
-        return new UpdateResponseHeader(null);
+        HintManagerHolder.get().addTableShardingValue(sqlStatement.getLogicTableName(), sqlStatement.getShardingValue());
+        return new UpdateResponseHeader(new EmptyStatement());
     }
 }
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ClearHintExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ClearHintExecutor.java
index 7d16843..53bfa70 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ClearHintExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ClearHintExecutor.java
@@ -22,6 +22,7 @@ import org.apache.shardingsphere.distsql.parser.statement.ral.common.hint.ClearH
 import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
 import org.apache.shardingsphere.proxy.backend.response.header.update.UpdateResponseHeader;
 import org.apache.shardingsphere.proxy.backend.text.sctl.hint.internal.HintManagerHolder;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.dml.EmptyStatement;
 
 /**
  * Clear hint statement executor.
@@ -29,12 +30,10 @@ import org.apache.shardingsphere.proxy.backend.text.sctl.hint.internal.HintManag
 @RequiredArgsConstructor
 public final class ClearHintExecutor extends AbstractHintUpdateExecutor<ClearHintStatement> {
     
-    private final ClearHintStatement sqlStatement;
-    
     @Override
     public ResponseHeader execute() {
         HintManagerHolder.get().close();
         HintManagerHolder.remove();
-        return new UpdateResponseHeader(null);
+        return new UpdateResponseHeader(new EmptyStatement());
     }
 }
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ClearHintExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ClearReadwriteSplittingHintExecutor.java
similarity index 71%
copy from shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ClearHintExecutor.java
copy to shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ClearReadwriteSplittingHintExecutor.java
index 7d16843..ad4a056 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ClearHintExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ClearReadwriteSplittingHintExecutor.java
@@ -18,23 +18,21 @@
 package org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.hint.executor;
 
 import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.distsql.parser.statement.ral.common.hint.ClearHintStatement;
 import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
 import org.apache.shardingsphere.proxy.backend.response.header.update.UpdateResponseHeader;
 import org.apache.shardingsphere.proxy.backend.text.sctl.hint.internal.HintManagerHolder;
+import org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.hint.ClearReadwriteSplittingHintStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.dml.EmptyStatement;
 
 /**
- * Clear hint statement executor.
+ * Clear readwrite-splitting hint executor.
  */
 @RequiredArgsConstructor
-public final class ClearHintExecutor extends AbstractHintUpdateExecutor<ClearHintStatement> {
-    
-    private final ClearHintStatement sqlStatement;
+public final class ClearReadwriteSplittingHintExecutor extends AbstractHintUpdateExecutor<ClearReadwriteSplittingHintStatement> {
     
     @Override
     public ResponseHeader execute() {
-        HintManagerHolder.get().close();
-        HintManagerHolder.remove();
-        return new UpdateResponseHeader(null);
+        HintManagerHolder.get().setReadwriteSplittingAuto();
+        return new UpdateResponseHeader(new EmptyStatement());
     }
 }
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ClearHintExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ClearShardingHintExecutor.java
similarity index 74%
copy from shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ClearHintExecutor.java
copy to shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ClearShardingHintExecutor.java
index 7d16843..c4a3f68 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ClearHintExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ClearShardingHintExecutor.java
@@ -18,23 +18,21 @@
 package org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.hint.executor;
 
 import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.distsql.parser.statement.ral.common.hint.ClearHintStatement;
 import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
 import org.apache.shardingsphere.proxy.backend.response.header.update.UpdateResponseHeader;
 import org.apache.shardingsphere.proxy.backend.text.sctl.hint.internal.HintManagerHolder;
+import org.apache.shardingsphere.sharding.distsql.parser.statement.hint.ClearShardingHintStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.dml.EmptyStatement;
 
 /**
- * Clear hint statement executor.
+ * Clear sharding hint executor.
  */
 @RequiredArgsConstructor
-public final class ClearHintExecutor extends AbstractHintUpdateExecutor<ClearHintStatement> {
-    
-    private final ClearHintStatement sqlStatement;
+public final class ClearShardingHintExecutor extends AbstractHintUpdateExecutor<ClearShardingHintStatement> {
     
     @Override
     public ResponseHeader execute() {
-        HintManagerHolder.get().close();
-        HintManagerHolder.remove();
-        return new UpdateResponseHeader(null);
+        HintManagerHolder.get().clearShardingValues();
+        return new UpdateResponseHeader(new EmptyStatement());
     }
 }
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/SetReadwriteSplittingHintSourceExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/SetReadwriteSplittingHintExecutor.java
similarity index 80%
rename from shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/SetReadwriteSplittingHintSourceExecutor.java
rename to shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/SetReadwriteSplittingHintExecutor.java
index 4572fec..2a1c54a 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/SetReadwriteSplittingHintSourceExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/SetReadwriteSplittingHintExecutor.java
@@ -22,15 +22,16 @@ import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
 import org.apache.shardingsphere.proxy.backend.response.header.update.UpdateResponseHeader;
 import org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.hint.HintSourceType;
 import org.apache.shardingsphere.proxy.backend.text.sctl.hint.internal.HintManagerHolder;
-import org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.hint.SetReadwriteSplittingHintSourceStatement;
+import org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.hint.SetReadwriteSplittingHintStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.dml.EmptyStatement;
 
 /**
- * Set readwrite-splitting hint source statement executor.
+ * Set readwrite-splitting hint statement executor.
  */
 @RequiredArgsConstructor
-public final class SetReadwriteSplittingHintSourceExecutor extends AbstractHintUpdateExecutor<SetReadwriteSplittingHintSourceStatement> {
+public final class SetReadwriteSplittingHintExecutor extends AbstractHintUpdateExecutor<SetReadwriteSplittingHintStatement> {
     
-    private final SetReadwriteSplittingHintSourceStatement sqlStatement;
+    private final SetReadwriteSplittingHintStatement sqlStatement;
     
     @Override
     public ResponseHeader execute() {
@@ -45,6 +46,6 @@ public final class SetReadwriteSplittingHintSourceExecutor extends AbstractHintU
             default:
                 break;
         }
-        return new UpdateResponseHeader(null);
+        return new UpdateResponseHeader(new EmptyStatement());
     }
 }
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ClearHintExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/SetShardingHintDatabaseValueExecutor.java
similarity index 68%
copy from shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ClearHintExecutor.java
copy to shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/SetShardingHintDatabaseValueExecutor.java
index 7d16843..e9e42d8 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ClearHintExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/SetShardingHintDatabaseValueExecutor.java
@@ -18,23 +18,23 @@
 package org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.hint.executor;
 
 import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.distsql.parser.statement.ral.common.hint.ClearHintStatement;
 import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
 import org.apache.shardingsphere.proxy.backend.response.header.update.UpdateResponseHeader;
 import org.apache.shardingsphere.proxy.backend.text.sctl.hint.internal.HintManagerHolder;
+import org.apache.shardingsphere.sharding.distsql.parser.statement.hint.SetShardingHintDatabaseValueStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.dml.EmptyStatement;
 
 /**
- * Clear hint statement executor.
+ * Set sharding hint database value executor.
  */
 @RequiredArgsConstructor
-public final class ClearHintExecutor extends AbstractHintUpdateExecutor<ClearHintStatement> {
+public final class SetShardingHintDatabaseValueExecutor extends AbstractHintUpdateExecutor<SetShardingHintDatabaseValueStatement> {
     
-    private final ClearHintStatement sqlStatement;
+    private final SetShardingHintDatabaseValueStatement sqlStatement;
     
     @Override
     public ResponseHeader execute() {
-        HintManagerHolder.get().close();
-        HintManagerHolder.remove();
-        return new UpdateResponseHeader(null);
+        HintManagerHolder.get().setDatabaseShardingValue(sqlStatement.getShardingValue());
+        return new UpdateResponseHeader(new EmptyStatement());
     }
 }
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ShowReadwriteSplittingHintStatusExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ShowReadwriteSplittingHintStatusExecutor.java
new file mode 100644
index 0000000..23ffa2f
--- /dev/null
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ShowReadwriteSplittingHintStatusExecutor.java
@@ -0,0 +1,58 @@
+/*
+ * 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.ral.common.hint.executor;
+
+import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.infra.hint.HintManager;
+import org.apache.shardingsphere.infra.merge.result.MergedResult;
+import org.apache.shardingsphere.proxy.backend.response.header.query.impl.QueryHeader;
+import org.apache.shardingsphere.proxy.backend.text.sctl.hint.internal.HintShardingType;
+import org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.hint.ShowReadwriteSplittingHintStatusStatement;
+import org.apache.shardingsphere.sharding.merge.dal.common.MultipleLocalDataMergedResult;
+
+import java.sql.Types;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * Show readwrite-splitting hint status executor.
+ */
+@RequiredArgsConstructor
+public final class ShowReadwriteSplittingHintStatusExecutor extends AbstractHintQueryExecutor<ShowReadwriteSplittingHintStatusStatement> {
+    
+    @Override
+    protected List<QueryHeader> createQueryHeaders() {
+        List<QueryHeader> result = new ArrayList<>(2);
+        result.add(new QueryHeader("", "", "write_only", "", Types.CHAR, "CHAR", 5, 0, false, false, false, false));
+        return result;
+    }
+    
+    @Override
+    protected MergedResult createMergedResult() {
+        HintShardingType shardingType = HintManager.isDatabaseShardingOnly() ? HintShardingType.DATABASES_ONLY : HintShardingType.DATABASES_TABLES;
+        List<Object> row = createRow(HintManager.isWriteRouteOnly(), shardingType);
+        return new MultipleLocalDataMergedResult(Collections.singletonList(row));
+    }
+    
+    private List<Object> createRow(final boolean primaryOnly, final HintShardingType shardingType) {
+        List<Object> result = new ArrayList<>(2);
+        result.add(String.valueOf(primaryOnly).toLowerCase());
+        return result;
+    }
+}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ShowShardingHintStatusExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ShowShardingHintStatusExecutor.java
new file mode 100644
index 0000000..3e1120a
--- /dev/null
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/executor/ShowShardingHintStatusExecutor.java
@@ -0,0 +1,108 @@
+/*
+ * 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.ral.common.hint.executor;
+
+import com.google.common.base.Joiner;
+import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.infra.hint.HintManager;
+import org.apache.shardingsphere.infra.merge.result.MergedResult;
+import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
+import org.apache.shardingsphere.proxy.backend.communication.jdbc.connection.BackendConnection;
+import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
+import org.apache.shardingsphere.proxy.backend.exception.RuleNotExistedException;
+import org.apache.shardingsphere.proxy.backend.response.header.query.impl.QueryHeader;
+import org.apache.shardingsphere.proxy.backend.text.sctl.hint.internal.HintShardingType;
+import org.apache.shardingsphere.proxy.backend.text.sctl.hint.internal.result.HintShowTableStatusResult;
+import org.apache.shardingsphere.sharding.distsql.parser.statement.hint.ShowShardingHintStatusStatement;
+import org.apache.shardingsphere.sharding.merge.dal.common.MultipleLocalDataMergedResult;
+
+import java.sql.Types;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Show sharding hint status executor.
+ */
+@RequiredArgsConstructor
+public final class ShowShardingHintStatusExecutor extends AbstractHintQueryExecutor<ShowShardingHintStatusStatement> {
+    
+    private final BackendConnection backendConnection;
+    
+    @Override
+    protected List<QueryHeader> createQueryHeaders() {
+        List<QueryHeader> result = new ArrayList<>(3);
+        result.add(new QueryHeader("", "", "table_name", "", Types.CHAR, "CHAR", 255, 0, false, false, false, false));
+        result.add(new QueryHeader("", "", "database_sharding_values", "", Types.CHAR, "CHAR", 255, 0, false, false, false, false));
+        result.add(new QueryHeader("", "", "table_sharding_values", "", Types.CHAR, "CHAR", 255, 0, false, false, false, false));
+        result.add(new QueryHeader("", "", "sharding_type", "", Types.CHAR, "CHAR", 255, 0, false, false, false, false));
+        return result;
+    }
+    
+    @Override
+    protected MergedResult createMergedResult() {
+        Map<String, HintShowTableStatusResult> results = new HashMap<>();
+        ShardingSphereMetaData metaData = ProxyContext.getInstance().getMetaData(backendConnection.getSchemaName());
+        if (!metaData.isComplete()) {
+            throw new RuleNotExistedException();
+        }
+        Collection<String> tableNames = metaData.getSchema().getAllTableNames();
+        for (String each : tableNames) {
+            if (HintManager.isDatabaseShardingOnly()) {
+                fillShardingValues(results, each, HintManager.getDatabaseShardingValues(), Collections.emptyList());
+            } else {
+                fillShardingValues(results, each, HintManager.getDatabaseShardingValues(each), HintManager.getTableShardingValues(each));
+            }
+        }
+        return convertToMergedResult(results.values());
+    }
+    
+    private void fillShardingValues(final Map<String, HintShowTableStatusResult> results, final String logicTable,
+                                    final Collection<Comparable<?>> databaseShardingValues, final Collection<Comparable<?>> tableShardingValues) {
+        if (!results.containsKey(logicTable)) {
+            results.put(logicTable, new HintShowTableStatusResult(logicTable));
+        }
+        for (Comparable<?> each : databaseShardingValues) {
+            results.get(logicTable).getDatabaseShardingValues().add(each.toString());
+        }
+        for (Comparable<?> each : tableShardingValues) {
+            results.get(logicTable).getTableShardingValues().add(each.toString());
+        }
+    }
+    
+    private MergedResult convertToMergedResult(final Collection<HintShowTableStatusResult> hintShowTableStatusResults) {
+        Collection<List<Object>> values = new ArrayList<>(hintShowTableStatusResults.size());
+        for (HintShowTableStatusResult each : hintShowTableStatusResults) {
+            values.add(createRow(each));
+        }
+        return new MultipleLocalDataMergedResult(values);
+    }
+    
+    private List<Object> createRow(final HintShowTableStatusResult hintShowTableStatusResult) {
+        String shardingType = String.valueOf(HintManager.isDatabaseShardingOnly() ? HintShardingType.DATABASES_ONLY : HintShardingType.DATABASES_TABLES).toLowerCase();
+        List<Object> result = new ArrayList<>(3);
+        result.add(hintShowTableStatusResult.getLogicTable());
+        result.add(Joiner.on(",").join(hintShowTableStatusResult.getDatabaseShardingValues()));
+        result.add(Joiner.on(",").join(hintShowTableStatusResult.getTableShardingValues()));
+        result.add(shardingType);
+        return result;
+    }
+}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/HintStatementExecutorFactoryTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/HintStatementExecutorFactoryTest.java
new file mode 100644
index 0000000..f57d084
--- /dev/null
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/hint/HintStatementExecutorFactoryTest.java
@@ -0,0 +1,110 @@
+/*
+ * 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.ral.common.hint;
+
+import org.apache.shardingsphere.distsql.parser.statement.ral.common.HintDistSQLStatement;
+import org.apache.shardingsphere.distsql.parser.statement.ral.common.hint.ClearHintStatement;
+import org.apache.shardingsphere.proxy.backend.communication.jdbc.connection.BackendConnection;
+import org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.hint.executor.AddShardingHintDatabaseValueExecutor;
+import org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.hint.executor.AddShardingHintTableValueExecutor;
+import org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.hint.executor.ClearHintExecutor;
+import org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.hint.executor.ClearReadwriteSplittingHintExecutor;
+import org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.hint.executor.ClearShardingHintExecutor;
+import org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.hint.executor.SetReadwriteSplittingHintExecutor;
+import org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.hint.executor.SetShardingHintDatabaseValueExecutor;
+import org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.hint.executor.ShowReadwriteSplittingHintStatusExecutor;
+import org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.hint.executor.ShowShardingHintStatusExecutor;
+import org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.hint.ClearReadwriteSplittingHintStatement;
+import org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.hint.SetReadwriteSplittingHintStatement;
+import org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.hint.ShowReadwriteSplittingHintStatusStatement;
+import org.apache.shardingsphere.sharding.distsql.parser.statement.hint.AddShardingHintDatabaseValueStatement;
+import org.apache.shardingsphere.sharding.distsql.parser.statement.hint.AddShardingHintTableValueStatement;
+import org.apache.shardingsphere.sharding.distsql.parser.statement.hint.ClearShardingHintStatement;
+import org.apache.shardingsphere.sharding.distsql.parser.statement.hint.SetShardingHintDatabaseValueStatement;
+import org.apache.shardingsphere.sharding.distsql.parser.statement.hint.ShowShardingHintStatusStatement;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnitRunner;
+
+import java.sql.SQLException;
+
+import static org.hamcrest.CoreMatchers.instanceOf;
+import static org.junit.Assert.assertThat;
+import static org.mockito.Mockito.mock;
+
+@RunWith(MockitoJUnitRunner.class)
+public final class HintStatementExecutorFactoryTest {
+    
+    @Mock
+    private BackendConnection backendConnection;
+    
+    @Test
+    public void assertSetReadwriteSplittingHintSourceExecutor() throws SQLException {
+        HintDistSQLStatement sqlStatement = mock(SetReadwriteSplittingHintStatement.class);
+        assertThat(HintStatementExecutorFactory.newInstance(sqlStatement, backendConnection), instanceOf(SetReadwriteSplittingHintExecutor.class));
+    }
+    
+    @Test
+    public void assertShowReadwriteSplittingHintSourceExecutor() throws SQLException {
+        HintDistSQLStatement sqlStatement = mock(ShowReadwriteSplittingHintStatusStatement.class);
+        assertThat(HintStatementExecutorFactory.newInstance(sqlStatement, backendConnection), instanceOf(ShowReadwriteSplittingHintStatusExecutor.class));
+    }
+    
+    @Test
+    public void assertClearReadwriteSplittingHintSourceExecutor() throws SQLException {
+        HintDistSQLStatement sqlStatement = mock(ClearReadwriteSplittingHintStatement.class);
+        assertThat(HintStatementExecutorFactory.newInstance(sqlStatement, backendConnection), instanceOf(ClearReadwriteSplittingHintExecutor.class));
+    }
+    
+    @Test
+    public void assertClearHintExecutor() throws SQLException {
+        HintDistSQLStatement sqlStatement = mock(ClearHintStatement.class);
+        assertThat(HintStatementExecutorFactory.newInstance(sqlStatement, backendConnection), instanceOf(ClearHintExecutor.class));
+    }
+    
+    @Test
+    public void assertSetShardingHintDatabaseValueExecutor() throws SQLException {
+        HintDistSQLStatement sqlStatement = mock(SetShardingHintDatabaseValueStatement.class);
+        assertThat(HintStatementExecutorFactory.newInstance(sqlStatement, backendConnection), instanceOf(SetShardingHintDatabaseValueExecutor.class));
+    }
+    
+    @Test
+    public void assertAddShardingHintDatabaseValueExecutor() throws SQLException {
+        HintDistSQLStatement sqlStatement = mock(AddShardingHintDatabaseValueStatement.class);
+        assertThat(HintStatementExecutorFactory.newInstance(sqlStatement, backendConnection), instanceOf(AddShardingHintDatabaseValueExecutor.class));
+    }
+    
+    @Test
+    public void assertAddShardingHintTableValueExecutor() throws SQLException {
+        HintDistSQLStatement sqlStatement = mock(AddShardingHintTableValueStatement.class);
+        assertThat(HintStatementExecutorFactory.newInstance(sqlStatement, backendConnection), instanceOf(AddShardingHintTableValueExecutor.class));
+    }
+    
+    @Test
+    public void assertShowShardingHintStatusExecutor() throws SQLException {
+        HintDistSQLStatement sqlStatement = mock(ShowShardingHintStatusStatement.class);
+        assertThat(HintStatementExecutorFactory.newInstance(sqlStatement, backendConnection), instanceOf(ShowShardingHintStatusExecutor.class));
+    }
+    
+    @Test
+    public void assertClearShardingValueHintExecutor() throws SQLException {
+        HintDistSQLStatement sqlStatement = mock(ClearShardingHintStatement.class);
+        assertThat(HintStatementExecutorFactory.newInstance(sqlStatement, backendConnection), instanceOf(ClearShardingHintExecutor.class));
+    }
+}
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 86a01ba..8d0bf53 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
@@ -87,8 +87,17 @@ import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.ddl.TruncateStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.SetVariableStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.PreviewStatementTestCase;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.AddShardingHintDatabaseValueStatementTestCase;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.AddShardingHintTableValueStatementTestCase;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.ClearHintStatementTestCase;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.ClearReadwriteSplittingHintStatementTestCase;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.ClearShardingHintStatementTestCase;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.SetReadwriteSplittingHintStatementTestCase;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.SetShardingHintDatabaseValueStatementTestCase;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.ShowReadwriteSplittingHintStatusStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.ShowScalingJobListStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.ShowVariableStatementTestCase;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.ShowShardingHintStatusStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterDataBaseDiscoveryRuleStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterEncryptRuleStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.rdl.alter.AlterReadWriteSplittingRuleStatementTestCase;
@@ -480,6 +489,33 @@ public final class SQLParserTestCases {
     @XmlElement(name = "set-variable")
     private final List<SetVariableStatementTestCase> setVariableStatementTestCase = new LinkedList<>();
     
+    @XmlElement(name = "set-readwrite-splitting-hint-source")
+    private final List<SetReadwriteSplittingHintStatementTestCase> setReadwriteSplittingHintStatementTestCase = new LinkedList<>();
+    
+    @XmlElement(name = "set-sharding-hint-database-value")
+    private final List<SetShardingHintDatabaseValueStatementTestCase> setShardingHintDatabaseValueStatementTestCase = new LinkedList<>();
+    
+    @XmlElement(name = "add-sharding-hint-database-value")
+    private final List<AddShardingHintDatabaseValueStatementTestCase> addShardingHintDatabaseValueStatementTestCase = new LinkedList<>();
+    
+    @XmlElement(name = "add-sharding-hint-table-value")
+    private final List<AddShardingHintTableValueStatementTestCase> addShardingHintTableValueStatementTestCase = new LinkedList<>();
+    
+    @XmlElement(name = "show-readwrite-splitting-hint-source")
+    private final List<ShowReadwriteSplittingHintStatusStatementTestCase> showReadwriteSplittingHintStatusStatementTestCase = new LinkedList<>();
+    
+    @XmlElement(name = "show-sharding-hint-status")
+    private final List<ShowShardingHintStatusStatementTestCase> showShardingHintStatusStatementTestCase = new LinkedList<>();
+    
+    @XmlElement(name = "clear-readwrite-splitting-hint-source")
+    private final List<ClearReadwriteSplittingHintStatementTestCase> clearReadwriteSplittingHintStatementTestCase = new LinkedList<>();
+    
+    @XmlElement(name = "clear-sharding-hint")
+    private final List<ClearShardingHintStatementTestCase> clearShardingHintStatementTestCase = new LinkedList<>();
+    
+    @XmlElement(name = "clear-hint")
+    private final List<ClearHintStatementTestCase> clearHintStatementTestCase = new LinkedList<>();
+    
     /**
      * Get all SQL parser test cases.
      *
@@ -598,6 +634,15 @@ public final class SQLParserTestCases {
         putAll(showVariableStatementTestCase, result);
         putAll(setVariableStatementTestCase, result);
         putAll(previewStatementTestCase, result);
+        putAll(setReadwriteSplittingHintStatementTestCase, result);
+        putAll(setShardingHintDatabaseValueStatementTestCase, result);
+        putAll(addShardingHintDatabaseValueStatementTestCase, result);
+        putAll(addShardingHintTableValueStatementTestCase, result);
+        putAll(showReadwriteSplittingHintStatusStatementTestCase, result);
+        putAll(showShardingHintStatusStatementTestCase, result);
+        putAll(clearReadwriteSplittingHintStatementTestCase, result);
+        putAll(clearShardingHintStatementTestCase, result);
+        putAll(clearHintStatementTestCase, result);
         return result;
     }
     
diff --git a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/ral/AddShardingHintDatabaseValueSta [...]
similarity index 66%
copy from shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java
copy to shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/ral/AddShardingHintDatabaseValueStatementTestCase.java
index 76b7a4f..ed2a385 100644
--- a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/ral/AddShardingHintDatabaseValueStatementTestCase.java
@@ -15,18 +15,16 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.hint;
+package org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral;
 
 import lombok.Getter;
-import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.distsql.parser.statement.ral.common.HintDistSQLStatement;
+import lombok.Setter;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.SQLParserTestCase;
 
 /**
- * Set readwrite-splitting hint source statement.
+ * Add sharding hint database value statement test case.
  */
-@RequiredArgsConstructor
 @Getter
-public final class SetReadwriteSplittingHintSourceStatement extends HintDistSQLStatement {
-    
-    private final String source;
+@Setter
+public final class AddShardingHintDatabaseValueStatementTestCase extends SQLParserTestCase {
 }
diff --git a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/ral/AddShardingHintTableValueStatem [...]
similarity index 66%
copy from shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java
copy to shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/ral/AddShardingHintTableValueStatementTestCase.java
index 76b7a4f..725c619 100644
--- a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/ral/AddShardingHintTableValueStatementTestCase.java
@@ -15,18 +15,16 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.hint;
+package org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral;
 
 import lombok.Getter;
-import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.distsql.parser.statement.ral.common.HintDistSQLStatement;
+import lombok.Setter;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.SQLParserTestCase;
 
 /**
- * Set readwrite-splitting hint source statement.
+ * Add sharding hint table value statement test case.
  */
-@RequiredArgsConstructor
 @Getter
-public final class SetReadwriteSplittingHintSourceStatement extends HintDistSQLStatement {
-    
-    private final String source;
+@Setter
+public final class AddShardingHintTableValueStatementTestCase extends SQLParserTestCase {
 }
diff --git a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/ral/ClearHintStatementTestCase.java
similarity index 66%
copy from shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java
copy to shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/ral/ClearHintStatementTestCase.java
index 76b7a4f..8b98351 100644
--- a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/ral/ClearHintStatementTestCase.java
@@ -15,18 +15,16 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.hint;
+package org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral;
 
 import lombok.Getter;
-import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.distsql.parser.statement.ral.common.HintDistSQLStatement;
+import lombok.Setter;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.SQLParserTestCase;
 
 /**
- * Set readwrite-splitting hint source statement.
+ * Clear hint statement test case.
  */
-@RequiredArgsConstructor
 @Getter
-public final class SetReadwriteSplittingHintSourceStatement extends HintDistSQLStatement {
-    
-    private final String source;
+@Setter
+public final class ClearHintStatementTestCase extends SQLParserTestCase {
 }
diff --git a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/ral/ClearReadwriteSplittingHintStat [...]
similarity index 66%
copy from shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java
copy to shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/ral/ClearReadwriteSplittingHintStatementTestCase.java
index 76b7a4f..e9989b1 100644
--- a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/ral/ClearReadwriteSplittingHintStatementTestCase.java
@@ -15,18 +15,16 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.hint;
+package org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral;
 
 import lombok.Getter;
-import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.distsql.parser.statement.ral.common.HintDistSQLStatement;
+import lombok.Setter;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.SQLParserTestCase;
 
 /**
- * Set readwrite-splitting hint source statement.
+ * Clear readwrite-splitting hint statement test case.
  */
-@RequiredArgsConstructor
 @Getter
-public final class SetReadwriteSplittingHintSourceStatement extends HintDistSQLStatement {
-    
-    private final String source;
+@Setter
+public final class ClearReadwriteSplittingHintStatementTestCase extends SQLParserTestCase {
 }
diff --git a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/ral/ClearShardingHintStatementTestC [...]
similarity index 66%
copy from shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java
copy to shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/ral/ClearShardingHintStatementTestCase.java
index 76b7a4f..74ac2e8 100644
--- a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/ral/ClearShardingHintStatementTestCase.java
@@ -15,18 +15,16 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.hint;
+package org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral;
 
 import lombok.Getter;
-import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.distsql.parser.statement.ral.common.HintDistSQLStatement;
+import lombok.Setter;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.SQLParserTestCase;
 
 /**
- * Set readwrite-splitting hint source statement.
+ * Clear sharding hint statement test case.
  */
-@RequiredArgsConstructor
 @Getter
-public final class SetReadwriteSplittingHintSourceStatement extends HintDistSQLStatement {
-    
-    private final String source;
+@Setter
+public final class ClearShardingHintStatementTestCase extends SQLParserTestCase {
 }
diff --git a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/ral/SetReadwriteSplittingHintStatem [...]
similarity index 66%
copy from shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java
copy to shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/ral/SetReadwriteSplittingHintStatementTestCase.java
index 76b7a4f..bc20b65 100644
--- a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/ral/SetReadwriteSplittingHintStatementTestCase.java
@@ -15,18 +15,17 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.hint;
+package org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral;
 
 import lombok.Getter;
-import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.distsql.parser.statement.ral.common.HintDistSQLStatement;
+import lombok.Setter;
+
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.SQLParserTestCase;
 
 /**
- * Set readwrite-splitting hint source statement.
+ * Set readwrite-splitting hint statement test case.
  */
-@RequiredArgsConstructor
 @Getter
-public final class SetReadwriteSplittingHintSourceStatement extends HintDistSQLStatement {
-    
-    private final String source;
+@Setter
+public final class SetReadwriteSplittingHintStatementTestCase extends SQLParserTestCase {
 }
diff --git a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/ral/SetShardingHintDatabaseValueSta [...]
similarity index 66%
copy from shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java
copy to shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/ral/SetShardingHintDatabaseValueStatementTestCase.java
index 76b7a4f..be06184 100644
--- a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/ral/SetShardingHintDatabaseValueStatementTestCase.java
@@ -15,18 +15,16 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.hint;
+package org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral;
 
 import lombok.Getter;
-import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.distsql.parser.statement.ral.common.HintDistSQLStatement;
+import lombok.Setter;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.SQLParserTestCase;
 
 /**
- * Set readwrite-splitting hint source statement.
+ * Set sharding hint database value test case.
  */
-@RequiredArgsConstructor
 @Getter
-public final class SetReadwriteSplittingHintSourceStatement extends HintDistSQLStatement {
-    
-    private final String source;
+@Setter
+public final class SetShardingHintDatabaseValueStatementTestCase extends SQLParserTestCase {
 }
diff --git a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/ral/ShowReadwriteSplittingHintStatu [...]
similarity index 66%
copy from shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java
copy to shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/ral/ShowReadwriteSplittingHintStatusStatementTestCase.java
index 76b7a4f..36bf883 100644
--- a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/ral/ShowReadwriteSplittingHintStatusStatementTestCase.java
@@ -15,18 +15,17 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.hint;
+package org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral;
 
 import lombok.Getter;
-import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.distsql.parser.statement.ral.common.HintDistSQLStatement;
+import lombok.Setter;
+
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.SQLParserTestCase;
 
 /**
- * Set readwrite-splitting hint source statement.
+ * Show readwrite-splitting hint statement test case.
  */
-@RequiredArgsConstructor
 @Getter
-public final class SetReadwriteSplittingHintSourceStatement extends HintDistSQLStatement {
-    
-    private final String source;
+@Setter
+public final class ShowReadwriteSplittingHintStatusStatementTestCase extends SQLParserTestCase {
 }
diff --git a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/ral/ShowShardingHintStatusStatement [...]
similarity index 66%
rename from shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java
rename to shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/ral/ShowShardingHintStatusStatementTestCase.java
index 76b7a4f..9b1669f 100644
--- a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintSourceStatement.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/ral/ShowShardingHintStatusStatementTestCase.java
@@ -15,18 +15,16 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.hint;
+package org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral;
 
 import lombok.Getter;
-import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.distsql.parser.statement.ral.common.HintDistSQLStatement;
+import lombok.Setter;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.SQLParserTestCase;
 
 /**
- * Set readwrite-splitting hint source statement.
+ * Show sharding hint status statement test case.
  */
-@RequiredArgsConstructor
 @Getter
-public final class SetReadwriteSplittingHintSourceStatement extends HintDistSQLStatement {
-    
-    private final String source;
+@Setter
+public final class ShowShardingHintStatusStatementTestCase extends SQLParserTestCase {
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ral/show.xml b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ral/add.xml
similarity index 84%
copy from shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ral/show.xml
copy to shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ral/add.xml
index 188f871..8d983e4 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ral/show.xml
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ral/add.xml
@@ -17,5 +17,6 @@
   -->
 
 <sql-parser-test-cases>
-    <show-variable sql-case-id="show-variable" />
+    <add-sharding-hint-database-value sql-case-id="add-sharding-hint-database-value" />
+    <add-sharding-hint-table-value sql-case-id="add-sharding-hint-table-value" />
 </sql-parser-test-cases>
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ral/show.xml b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ral/clear.xml
similarity index 81%
copy from shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ral/show.xml
copy to shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ral/clear.xml
index 188f871..483e8a8 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ral/show.xml
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ral/clear.xml
@@ -17,5 +17,7 @@
   -->
 
 <sql-parser-test-cases>
-    <show-variable sql-case-id="show-variable" />
+    <clear-readwrite-splitting-hint-source sql-case-id="clear-readwrite-splitting-hint-source" />
+    <clear-sharding-hint sql-case-id="clear-sharding-hint" />
+    <clear-hint sql-case-id="clear-hint" />
 </sql-parser-test-cases>
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ral/set.xml b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ral/set.xml
index ba8fb8b..5685922 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ral/set.xml
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ral/set.xml
@@ -18,4 +18,6 @@
 
 <sql-parser-test-cases>
     <set-variable sql-case-id="set-variable" />
+    <set-readwrite-splitting-hint-source sql-case-id="set-readwrite-splitting-hint-source" />
+    <set-sharding-hint-database-value sql-case-id="set-sharding-hint-database-value" />
 </sql-parser-test-cases>
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ral/show.xml b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ral/show.xml
index 188f871..73aade1 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ral/show.xml
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ral/show.xml
@@ -18,4 +18,6 @@
 
 <sql-parser-test-cases>
     <show-variable sql-case-id="show-variable" />
+    <show-readwrite-splitting-hint-source sql-case-id="show-readwrite-splitting-hint-source" />
+    <show-sharding-hint-status sql-case-id="show-sharding-hint-status" />
 </sql-parser-test-cases>
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ral/show.xml b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ral/add.xml
similarity index 80%
copy from shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ral/show.xml
copy to shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ral/add.xml
index ddece22..99a3f95 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ral/show.xml
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ral/add.xml
@@ -17,5 +17,6 @@
   -->
 
 <sql-cases>
-    <distsql-case id="show-variable" value="SHOW VARIABLE CACHED_CONNECTIONS" />
+    <distsql-case id="add-sharding-hint-database-value" value="ADD SHARDING HINT DATABASE_VALUE T_ORDER=1" />
+    <distsql-case id="add-sharding-hint-table-value" value="ADD SHARDING HINT TABLE_VALUE T_ORDER=1" />
 </sql-cases>
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ral/show.xml b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ral/clear.xml
similarity index 79%
copy from shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ral/show.xml
copy to shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ral/clear.xml
index ddece22..65a9182 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ral/show.xml
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ral/clear.xml
@@ -17,5 +17,7 @@
   -->
 
 <sql-cases>
-    <distsql-case id="show-variable" value="SHOW VARIABLE CACHED_CONNECTIONS" />
+    <distsql-case id="clear-readwrite-splitting-hint-source" value="CLEAR READWRITE_SPLITTING HINT" />
+    <distsql-case id="clear-sharding-hint" value="CLEAR SHARDING HINT" />
+    <distsql-case id="clear-hint" value="CLEAR HINT" />
 </sql-cases>
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ral/set.xml b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ral/set.xml
index d7a8f53..5deae20 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ral/set.xml
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ral/set.xml
@@ -18,4 +18,6 @@
 
 <sql-cases>
     <distsql-case id="set-variable" value="SET VARIABLE TRANSACTION_TYPE=LOCAL" />
+    <distsql-case id="set-readwrite-splitting-hint-source" value="SET READWRITE_SPLITTING HINT SOURCE=WRITE" />
+    <distsql-case id="set-sharding-hint-database-value" value="SET SHARDING HINT DATABASE_VALUE=1" />
 </sql-cases>
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ral/show.xml b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ral/show.xml
index ddece22..9ea8b0f 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ral/show.xml
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ral/show.xml
@@ -18,4 +18,6 @@
 
 <sql-cases>
     <distsql-case id="show-variable" value="SHOW VARIABLE CACHED_CONNECTIONS" />
+    <distsql-case id="show-readwrite-splitting-hint-source" value="SHOW READWRITE_SPLITTING HINT STATUS" />
+    <distsql-case id="show-sharding-hint-status" value="SHOW SHARDING HINT STATUS" />
 </sql-cases>