You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by ji...@apache.org on 2022/08/11 12:53:03 UTC

[shardingsphere] branch master updated: Refactor parameter type definitions of Scaling DistSQL. (#20082)

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

jianglongtao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 450c2d2ea2e Refactor parameter type definitions of Scaling DistSQL. (#20082)
450c2d2ea2e is described below

commit 450c2d2ea2e9859da544b18e713b2bb4210aa891
Author: yx9o <ya...@163.com>
AuthorDate: Thu Aug 11 20:52:51 2022 +0800

    Refactor parameter type definitions of Scaling DistSQL. (#20082)
    
    * Refactor parameter type definitions of Scaling DistSQL.
    
    * Fix scaling-it-test.
    
    * Fix scaling-it-test.
---
 .../src/main/antlr4/imports/scaling/BaseRule.g4    |  4 +-
 .../src/main/antlr4/imports/scaling/Literals.g4    | 21 +----
 .../main/antlr4/imports/scaling/RALStatement.g4    |  2 +-
 ...lingStatement.g4 => ScalingDistSQLStatement.g4} |  2 +-
 ...{ScalingLexer.java => ScalingDistSQLLexer.java} |  8 +-
 ...calingParser.java => ScalingDistSQLParser.java} |  8 +-
 ...or.java => ScalingDistSQLStatementVisitor.java} | 94 ++++++++++------------
 .../ScalingDistSQLStatementParserFacade.java       | 12 +--
 .../data/pipeline/cases/base/BaseITCase.java       | 16 ++--
 .../main/resources/sql/supported/ral/scaling.xml   |  2 +-
 .../main/resources/sql/supported/rdl/create.xml    |  6 +-
 11 files changed, 74 insertions(+), 101 deletions(-)

diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/antlr4/imports/scaling/BaseRule.g4 b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/antlr4/imports/scaling/BaseRule.g4
index 3efe5b6195c..837682305d6 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/antlr4/imports/scaling/BaseRule.g4
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/antlr4/imports/scaling/BaseRule.g4
@@ -24,7 +24,7 @@ algorithmDefinition
     ;
 
 algorithmName
-    : IDENTIFIER
+    : STRING
     ;
 
 algorithmProperties
@@ -32,5 +32,5 @@ algorithmProperties
     ;
 
 algorithmProperty
-    : key=(IDENTIFIER | STRING) EQ value=(INT | IDENTIFIER | STRING)
+    : key=STRING EQ value=STRING
     ;
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/antlr4/imports/scaling/Literals.g4 b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/antlr4/imports/scaling/Literals.g4
index e5f807b1104..07557015093 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/antlr4/imports/scaling/Literals.g4
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/antlr4/imports/scaling/Literals.g4
@@ -22,30 +22,13 @@ import Alphabet, Symbol;
 IDENTIFIER
     : [A-Za-z_$0-9]*?[A-Za-z_$]+?[A-Za-z_$0-9]*
     | BQ ~'`'+ BQ
-    | (DQ ( '\\'. | '""' | ~('"'| '\\') )* DQ)
     ;
     
 STRING
-    : (DQ ('""' | ~('"'| '\\') )* DQ)
-    | (SQ ('\'\'' | ~('\'' | '\\'))* SQ)
+    : (DQ ('\\'. | '""' | ~('"' | '\\'))* DQ)
+    | (SQ ('\\'. | '\'\'' | ~('\'' | '\\'))* SQ)
     ;
 
 INT
     : [0-9]+
     ;
-
-HEX
-    : [0-9a-fA-F]
-    ;
-
-NUMBER
-    : INT? DOT? INT (E (PLUS | MINUS)? INT)?
-    ;
-
-HEXDIGIT
-    : '0x' HEX+ | 'X' SQ HEX+ SQ
-    ;
-    
-BITNUM
-    : '0b' ('0' | '1')+ | B SQ ('0' | '1')+ SQ
-    ;
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/antlr4/imports/scaling/RALStatement.g4 b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/antlr4/imports/scaling/RALStatement.g4
index 59c405f576f..908ec98e6dd 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/antlr4/imports/scaling/RALStatement.g4
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/antlr4/imports/scaling/RALStatement.g4
@@ -64,5 +64,5 @@ applyScaling
     ;
 
 jobId
-    : INT | IDENTIFIER
+    : INT | STRING
     ;
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/antlr4/scaling/org/apache/shardingsphere/distsql/parser/autogen/ScalingStatement.g4 b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/antlr4/scaling/org/apache/shardingsphere/distsql/parser/autogen/ScalingDistSQLStatement.g4
similarity index 97%
rename from shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/antlr4/scaling/org/apache/shardingsphere/distsql/parser/autogen/ScalingStatement.g4
rename to shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/antlr4/scaling/org/apache/shardingsphere/distsql/parser/autogen/ScalingDistSQLStatement.g4
index ff74c2bed61..c87ec85e005 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/antlr4/scaling/org/apache/shardingsphere/distsql/parser/autogen/ScalingStatement.g4
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/antlr4/scaling/org/apache/shardingsphere/distsql/parser/autogen/ScalingDistSQLStatement.g4
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-grammar ScalingStatement;
+grammar ScalingDistSQLStatement;
 
 import Symbol, RALStatement, RDLStatement, RQLStatement;
 
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/java/org/apache/shardingsphere/scaling/distsql/parser/core/ScalingLexer.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/java/org/apache/shardingsphere/scaling/distsql/parser/core/ScalingDistSQLLexer.java
similarity index 78%
rename from shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/java/org/apache/shardingsphere/scaling/distsql/parser/core/ScalingLexer.java
rename to shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/java/org/apache/shardingsphere/scaling/distsql/parser/core/ScalingDistSQLLexer.java
index 07078be0fb7..20b53e0b73b 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/java/org/apache/shardingsphere/scaling/distsql/parser/core/ScalingLexer.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/java/org/apache/shardingsphere/scaling/distsql/parser/core/ScalingDistSQLLexer.java
@@ -18,15 +18,15 @@
 package org.apache.shardingsphere.scaling.distsql.parser.core;
 
 import org.antlr.v4.runtime.CharStream;
-import org.apache.shardingsphere.distsql.parser.autogen.ScalingStatementLexer;
+import org.apache.shardingsphere.distsql.parser.autogen.ScalingDistSQLStatementLexer;
 import org.apache.shardingsphere.sql.parser.api.parser.SQLLexer;
 
 /**
- * SQL lexer for scaling.
+ * SQL lexer for scaling dist SQL.
  */
-public final class ScalingLexer extends ScalingStatementLexer implements SQLLexer {
+public final class ScalingDistSQLLexer extends ScalingDistSQLStatementLexer implements SQLLexer {
     
-    public ScalingLexer(final CharStream input) {
+    public ScalingDistSQLLexer(final CharStream input) {
         super(input);
     }
 }
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/java/org/apache/shardingsphere/scaling/distsql/parser/core/ScalingParser.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/java/org/apache/shardingsphere/scaling/distsql/parser/core/ScalingDistSQLParser.java
similarity index 82%
rename from shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/java/org/apache/shardingsphere/scaling/distsql/parser/core/ScalingParser.java
rename to shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/java/org/apache/shardingsphere/scaling/distsql/parser/core/ScalingDistSQLParser.java
index 14961c51b9f..2cf86ec8b37 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/java/org/apache/shardingsphere/scaling/distsql/parser/core/ScalingParser.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/java/org/apache/shardingsphere/scaling/distsql/parser/core/ScalingDistSQLParser.java
@@ -19,17 +19,17 @@ package org.apache.shardingsphere.scaling.distsql.parser.core;
 
 import org.antlr.v4.runtime.CommonTokenStream;
 import org.antlr.v4.runtime.TokenStream;
-import org.apache.shardingsphere.distsql.parser.autogen.ScalingStatementParser;
+import org.apache.shardingsphere.distsql.parser.autogen.ScalingDistSQLStatementParser;
 import org.apache.shardingsphere.sql.parser.api.parser.SQLParser;
 import org.apache.shardingsphere.sql.parser.api.visitor.ASTNode;
 import org.apache.shardingsphere.sql.parser.core.ParseASTNode;
 
 /**
- * SQL parser for scaling.
+ * SQL parser for scaling dist SQL.
  */
-public final class ScalingParser extends ScalingStatementParser implements SQLParser {
+public final class ScalingDistSQLParser extends ScalingDistSQLStatementParser implements SQLParser {
     
-    public ScalingParser(final TokenStream input) {
+    public ScalingDistSQLParser(final TokenStream input) {
         super(input);
     }
     
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/java/org/apache/shardingsphere/scaling/distsql/parser/core/ScalingSQLStatementVisitor.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/java/org/apache/shardingsphere/scaling/distsql/parser/core/ScalingDistSQLStatementVisitor.java
similarity index 68%
rename from shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/java/org/apache/shardingsphere/scaling/distsql/parser/core/ScalingSQLStatementVisitor.java
rename to shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/java/org/apache/shardingsphere/scaling/distsql/parser/core/ScalingDistSQLStatementVisitor.java
index a8f3d68a17b..f469702d4ee 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/java/org/apache/shardingsphere/scaling/distsql/parser/core/ScalingSQLStatementVisitor.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/java/org/apache/shardingsphere/scaling/distsql/parser/core/ScalingDistSQLStatementVisitor.java
@@ -18,36 +18,36 @@
 package org.apache.shardingsphere.scaling.distsql.parser.core;
 
 import org.antlr.v4.runtime.tree.ParseTree;
-import org.apache.shardingsphere.distsql.parser.autogen.ScalingStatementBaseVisitor;
-import org.apache.shardingsphere.distsql.parser.autogen.ScalingStatementParser;
-import org.apache.shardingsphere.distsql.parser.autogen.ScalingStatementParser.AlgorithmDefinitionContext;
-import org.apache.shardingsphere.distsql.parser.autogen.ScalingStatementParser.ApplyScalingContext;
-import org.apache.shardingsphere.distsql.parser.autogen.ScalingStatementParser.BatchSizeContext;
-import org.apache.shardingsphere.distsql.parser.autogen.ScalingStatementParser.CheckScalingContext;
-import org.apache.shardingsphere.distsql.parser.autogen.ScalingStatementParser.CompletionDetectorContext;
-import org.apache.shardingsphere.distsql.parser.autogen.ScalingStatementParser.CreateShardingScalingRuleContext;
-import org.apache.shardingsphere.distsql.parser.autogen.ScalingStatementParser.DataConsistencyCheckerContext;
-import org.apache.shardingsphere.distsql.parser.autogen.ScalingStatementParser.DisableShardingScalingRuleContext;
-import org.apache.shardingsphere.distsql.parser.autogen.ScalingStatementParser.DropScalingContext;
-import org.apache.shardingsphere.distsql.parser.autogen.ScalingStatementParser.DropShardingScalingRuleContext;
-import org.apache.shardingsphere.distsql.parser.autogen.ScalingStatementParser.EnableShardingScalingRuleContext;
-import org.apache.shardingsphere.distsql.parser.autogen.ScalingStatementParser.InputDefinitionContext;
-import org.apache.shardingsphere.distsql.parser.autogen.ScalingStatementParser.OutputDefinitionContext;
-import org.apache.shardingsphere.distsql.parser.autogen.ScalingStatementParser.RateLimiterContext;
-import org.apache.shardingsphere.distsql.parser.autogen.ScalingStatementParser.ResetScalingContext;
-import org.apache.shardingsphere.distsql.parser.autogen.ScalingStatementParser.RestoreScalingSourceWritingContext;
-import org.apache.shardingsphere.distsql.parser.autogen.ScalingStatementParser.ScalingRuleDefinitionContext;
-import org.apache.shardingsphere.distsql.parser.autogen.ScalingStatementParser.SchemaNameContext;
-import org.apache.shardingsphere.distsql.parser.autogen.ScalingStatementParser.ShardingSizeContext;
-import org.apache.shardingsphere.distsql.parser.autogen.ScalingStatementParser.ShowScalingCheckAlgorithmsContext;
-import org.apache.shardingsphere.distsql.parser.autogen.ScalingStatementParser.ShowScalingListContext;
-import org.apache.shardingsphere.distsql.parser.autogen.ScalingStatementParser.ShowScalingStatusContext;
-import org.apache.shardingsphere.distsql.parser.autogen.ScalingStatementParser.ShowShardingScalingRulesContext;
-import org.apache.shardingsphere.distsql.parser.autogen.ScalingStatementParser.StartScalingContext;
-import org.apache.shardingsphere.distsql.parser.autogen.ScalingStatementParser.StopScalingContext;
-import org.apache.shardingsphere.distsql.parser.autogen.ScalingStatementParser.StopScalingSourceWritingContext;
-import org.apache.shardingsphere.distsql.parser.autogen.ScalingStatementParser.StreamChannelContext;
-import org.apache.shardingsphere.distsql.parser.autogen.ScalingStatementParser.WorkerThreadContext;
+import org.apache.shardingsphere.distsql.parser.autogen.ScalingDistSQLStatementBaseVisitor;
+import org.apache.shardingsphere.distsql.parser.autogen.ScalingDistSQLStatementParser;
+import org.apache.shardingsphere.distsql.parser.autogen.ScalingDistSQLStatementParser.AlgorithmDefinitionContext;
+import org.apache.shardingsphere.distsql.parser.autogen.ScalingDistSQLStatementParser.ApplyScalingContext;
+import org.apache.shardingsphere.distsql.parser.autogen.ScalingDistSQLStatementParser.BatchSizeContext;
+import org.apache.shardingsphere.distsql.parser.autogen.ScalingDistSQLStatementParser.CheckScalingContext;
+import org.apache.shardingsphere.distsql.parser.autogen.ScalingDistSQLStatementParser.CompletionDetectorContext;
+import org.apache.shardingsphere.distsql.parser.autogen.ScalingDistSQLStatementParser.CreateShardingScalingRuleContext;
+import org.apache.shardingsphere.distsql.parser.autogen.ScalingDistSQLStatementParser.DataConsistencyCheckerContext;
+import org.apache.shardingsphere.distsql.parser.autogen.ScalingDistSQLStatementParser.DisableShardingScalingRuleContext;
+import org.apache.shardingsphere.distsql.parser.autogen.ScalingDistSQLStatementParser.DropScalingContext;
+import org.apache.shardingsphere.distsql.parser.autogen.ScalingDistSQLStatementParser.DropShardingScalingRuleContext;
+import org.apache.shardingsphere.distsql.parser.autogen.ScalingDistSQLStatementParser.EnableShardingScalingRuleContext;
+import org.apache.shardingsphere.distsql.parser.autogen.ScalingDistSQLStatementParser.InputDefinitionContext;
+import org.apache.shardingsphere.distsql.parser.autogen.ScalingDistSQLStatementParser.OutputDefinitionContext;
+import org.apache.shardingsphere.distsql.parser.autogen.ScalingDistSQLStatementParser.RateLimiterContext;
+import org.apache.shardingsphere.distsql.parser.autogen.ScalingDistSQLStatementParser.ResetScalingContext;
+import org.apache.shardingsphere.distsql.parser.autogen.ScalingDistSQLStatementParser.RestoreScalingSourceWritingContext;
+import org.apache.shardingsphere.distsql.parser.autogen.ScalingDistSQLStatementParser.ScalingRuleDefinitionContext;
+import org.apache.shardingsphere.distsql.parser.autogen.ScalingDistSQLStatementParser.SchemaNameContext;
+import org.apache.shardingsphere.distsql.parser.autogen.ScalingDistSQLStatementParser.ShardingSizeContext;
+import org.apache.shardingsphere.distsql.parser.autogen.ScalingDistSQLStatementParser.ShowScalingCheckAlgorithmsContext;
+import org.apache.shardingsphere.distsql.parser.autogen.ScalingDistSQLStatementParser.ShowScalingListContext;
+import org.apache.shardingsphere.distsql.parser.autogen.ScalingDistSQLStatementParser.ShowScalingStatusContext;
+import org.apache.shardingsphere.distsql.parser.autogen.ScalingDistSQLStatementParser.ShowShardingScalingRulesContext;
+import org.apache.shardingsphere.distsql.parser.autogen.ScalingDistSQLStatementParser.StartScalingContext;
+import org.apache.shardingsphere.distsql.parser.autogen.ScalingDistSQLStatementParser.StopScalingContext;
+import org.apache.shardingsphere.distsql.parser.autogen.ScalingDistSQLStatementParser.StopScalingSourceWritingContext;
+import org.apache.shardingsphere.distsql.parser.autogen.ScalingDistSQLStatementParser.StreamChannelContext;
+import org.apache.shardingsphere.distsql.parser.autogen.ScalingDistSQLStatementParser.WorkerThreadContext;
 import org.apache.shardingsphere.distsql.parser.segment.AlgorithmSegment;
 import org.apache.shardingsphere.scaling.distsql.statement.ApplyScalingStatement;
 import org.apache.shardingsphere.scaling.distsql.statement.CheckScalingStatement;
@@ -75,9 +75,9 @@ import org.apache.shardingsphere.sql.parser.sql.common.value.identifier.Identifi
 import java.util.Properties;
 
 /**
- * SQL statement visitor for scaling.
+ * SQL statement visitor for scaling dist SQL.
  */
-public final class ScalingSQLStatementVisitor extends ScalingStatementBaseVisitor<ASTNode> implements SQLVisitor {
+public final class ScalingDistSQLStatementVisitor extends ScalingDistSQLStatementBaseVisitor<ASTNode> implements SQLVisitor {
     
     @Override
     public ASTNode visitShowScalingList(final ShowScalingListContext ctx) {
@@ -111,11 +111,7 @@ public final class ScalingSQLStatementVisitor extends ScalingStatementBaseVisito
     
     @Override
     public ASTNode visitCheckScaling(final CheckScalingContext ctx) {
-        AlgorithmSegment typeStrategy = null;
-        if (null != ctx.algorithmDefinition()) {
-            typeStrategy = (AlgorithmSegment) visit(ctx.algorithmDefinition());
-        }
-        return new CheckScalingStatement(getIdentifierValue(ctx.jobId()), typeStrategy);
+        return new CheckScalingStatement(getIdentifierValue(ctx.jobId()), null == ctx.algorithmDefinition() ? null : (AlgorithmSegment) visit(ctx.algorithmDefinition()));
     }
     
     @Override
@@ -167,25 +163,19 @@ public final class ScalingSQLStatementVisitor extends ScalingStatementBaseVisito
     
     @Override
     public ASTNode visitInputDefinition(final InputDefinitionContext ctx) {
-        Integer workerThread = getWorkerThread(ctx.workerThread());
-        Integer batchSize = getBatchSize(ctx.batchSize());
-        Integer shardingSize = getShardingSize(ctx.shardingSize());
-        AlgorithmSegment rateLimiter = null;
-        if (null != ctx.rateLimiter()) {
-            rateLimiter = (AlgorithmSegment) visit(ctx.rateLimiter());
-        }
-        return new InputOrOutputSegment(workerThread, batchSize, shardingSize, rateLimiter);
+        return new InputOrOutputSegment(getWorkerThread(ctx.workerThread()), getBatchSize(ctx.batchSize()), getShardingSize(ctx.shardingSize()), getAlgorithmSegment(ctx.rateLimiter()));
     }
     
     @Override
     public ASTNode visitOutputDefinition(final OutputDefinitionContext ctx) {
-        Integer workerThread = getWorkerThread(ctx.workerThread());
-        Integer batchSize = getBatchSize(ctx.batchSize());
-        AlgorithmSegment rateLimiter = null;
-        if (null != ctx.rateLimiter()) {
-            rateLimiter = (AlgorithmSegment) visit(ctx.rateLimiter());
+        return new InputOrOutputSegment(getWorkerThread(ctx.workerThread()), getBatchSize(ctx.batchSize()), getAlgorithmSegment(ctx.rateLimiter()));
+    }
+    
+    private AlgorithmSegment getAlgorithmSegment(final RateLimiterContext ctx) {
+        if (null == ctx) {
+            return null;
         }
-        return new InputOrOutputSegment(workerThread, batchSize, rateLimiter);
+        return (AlgorithmSegment) visit(ctx);
     }
     
     private Integer getWorkerThread(final WorkerThreadContext ctx) {
@@ -259,7 +249,7 @@ public final class ScalingSQLStatementVisitor extends ScalingStatementBaseVisito
         if (null == ctx.algorithmProperties()) {
             return result;
         }
-        for (ScalingStatementParser.AlgorithmPropertyContext each : ctx.algorithmProperties().algorithmProperty()) {
+        for (ScalingDistSQLStatementParser.AlgorithmPropertyContext each : ctx.algorithmProperties().algorithmProperty()) {
             result.setProperty(IdentifierValue.getQuotedContent(each.key.getText()), IdentifierValue.getQuotedContent(each.value.getText()));
         }
         return result;
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/java/org/apache/shardingsphere/scaling/distsql/parser/facade/ScalingDistSQLStatementParserFacade.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/java/org/apache/shardingsphere/scaling/distsql/parser/facade/ScalingDistSQLStatementParserFacade.java
index 546f799e88d..9673611332d 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/java/org/apache/shardingsphere/scaling/distsql/parser/facade/ScalingDistSQLStatementParserFacade.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-parser/src/main/java/org/apache/shardingsphere/scaling/distsql/parser/facade/ScalingDistSQLStatementParserFacade.java
@@ -18,9 +18,9 @@
 package org.apache.shardingsphere.scaling.distsql.parser.facade;
 
 import org.apache.shardingsphere.distsql.parser.engine.spi.FeaturedDistSQLStatementParserFacade;
-import org.apache.shardingsphere.scaling.distsql.parser.core.ScalingLexer;
-import org.apache.shardingsphere.scaling.distsql.parser.core.ScalingParser;
-import org.apache.shardingsphere.scaling.distsql.parser.core.ScalingSQLStatementVisitor;
+import org.apache.shardingsphere.scaling.distsql.parser.core.ScalingDistSQLLexer;
+import org.apache.shardingsphere.scaling.distsql.parser.core.ScalingDistSQLParser;
+import org.apache.shardingsphere.scaling.distsql.parser.core.ScalingDistSQLStatementVisitor;
 import org.apache.shardingsphere.sql.parser.api.parser.SQLLexer;
 import org.apache.shardingsphere.sql.parser.api.parser.SQLParser;
 import org.apache.shardingsphere.sql.parser.api.visitor.SQLVisitor;
@@ -32,17 +32,17 @@ public final class ScalingDistSQLStatementParserFacade implements FeaturedDistSQ
     
     @Override
     public Class<? extends SQLLexer> getLexerClass() {
-        return ScalingLexer.class;
+        return ScalingDistSQLLexer.class;
     }
     
     @Override
     public Class<? extends SQLParser> getParserClass() {
-        return ScalingParser.class;
+        return ScalingDistSQLParser.class;
     }
     
     @Override
     public Class<? extends SQLVisitor> getVisitorClass() {
-        return ScalingSQLStatementVisitor.class;
+        return ScalingDistSQLStatementVisitor.class;
     }
     
     @Override
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/base/BaseITCase.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/base/BaseITCase.java
index 3fddc3ca0c0..7346aa0e655 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/base/BaseITCase.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/base/BaseITCase.java
@@ -257,13 +257,13 @@ public abstract class BaseITCase {
                 List<Map<String, Object>> scalingList = jdbcTemplate.queryForList("SHOW SCALING LIST");
                 for (Map<String, Object> each : scalingList) {
                     String id = each.get("id").toString();
-                    executeWithLog(String.format("DROP SCALING %s", id), 0);
+                    executeWithLog(String.format("DROP SCALING '%s'", id), 0);
                 }
             } catch (final DataAccessException ex) {
                 log.error("Failed to show scaling list. {}", ex.getMessage());
             }
         }
-        executeWithLog("CREATE SHARDING SCALING RULE scaling_manual (INPUT(SHARDING_SIZE=1000), DATA_CONSISTENCY_CHECKER(TYPE(NAME=DATA_MATCH)))");
+        executeWithLog("CREATE SHARDING SCALING RULE scaling_manual (INPUT(SHARDING_SIZE=1000), DATA_CONSISTENCY_CHECKER(TYPE(NAME='DATA_MATCH')))");
     }
     
     protected void createSchema(final String schemaName) {
@@ -321,20 +321,20 @@ public abstract class BaseITCase {
     }
     
     protected void stopScalingSourceWriting(final String jobId) {
-        executeWithLog(String.format("STOP SCALING SOURCE WRITING %s", jobId));
+        executeWithLog(String.format("STOP SCALING SOURCE WRITING '%s'", jobId));
     }
     
     protected void stopScaling(final String jobId) {
-        executeWithLog(String.format("STOP SCALING %s", jobId), 5);
+        executeWithLog(String.format("STOP SCALING '%s'", jobId), 5);
     }
     
     protected void startScaling(final String jobId) {
-        executeWithLog(String.format("START SCALING %s", jobId), 10);
+        executeWithLog(String.format("START SCALING '%s'", jobId), 10);
     }
     
     protected void applyScaling(final String jobId) {
         assertBeforeApplyScalingMetadataCorrectly();
-        executeWithLog(String.format("APPLY SCALING %s", jobId));
+        executeWithLog(String.format("APPLY SCALING '%s'", jobId));
     }
     
     protected void assertBeforeApplyScalingMetadataCorrectly() {
@@ -379,7 +379,7 @@ public abstract class BaseITCase {
     }
     
     protected List<Map<String, Object>> showScalingStatus(final String jobId) {
-        return queryForListWithLog(String.format("SHOW SCALING STATUS %s", jobId));
+        return queryForListWithLog(String.format("SHOW SCALING STATUS '%s'", jobId));
     }
     
     protected void assertCheckScalingSuccess(final String jobId) {
@@ -392,7 +392,7 @@ public abstract class BaseITCase {
         boolean secondCheckJobResult = checkJobIncrementTaskFinished(jobId);
         log.info("second check job result: {}", secondCheckJobResult);
         stopScalingSourceWriting(jobId);
-        List<Map<String, Object>> checkScalingResults = queryForListWithLog(String.format("CHECK SCALING %s BY TYPE (NAME=DATA_MATCH)", jobId));
+        List<Map<String, Object>> checkScalingResults = queryForListWithLog(String.format("CHECK SCALING '%s' BY TYPE (NAME='DATA_MATCH')", jobId));
         log.info("checkScalingResults: {}", checkScalingResults);
         for (Map<String, Object> entry : checkScalingResults) {
             assertTrue(Boolean.parseBoolean(entry.get("records_content_matched").toString()));
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ral/scaling.xml b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ral/scaling.xml
index b5c2f151b35..3b32ecd19d7 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ral/scaling.xml
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ral/scaling.xml
@@ -21,7 +21,7 @@
     <distsql-case id="show-scaling-check-algorithms" value="SHOW SCALING CHECK ALGORITHMS;" />
     <distsql-case id="check-scaling" value="CHECK SCALING 123;" />
     <distsql-case id="show-scaling-status" value="SHOW SCALING STATUS 123;" />
-    <distsql-case id="check-scaling-with-type" value="CHECK SCALING 123 by TYPE(name=DEFAULT, PROPERTIES('test-property'=4));" />
+    <distsql-case id="check-scaling-with-type" value="CHECK SCALING 123 by TYPE(name='DEFAULT', PROPERTIES('test-property'='4'));" />
     
     <distsql-case id="stop-scaling-source-writing" value="STOP SCALING SOURCE WRITING 123;" />
     <distsql-case id="restore-scaling-source-writing" value="RESTORE SCALING SOURCE WRITING 123;" />
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/rdl/create.xml b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/rdl/create.xml
index 8239a03a6f3..e6164e73922 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/rdl/create.xml
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/rdl/create.xml
@@ -63,7 +63,7 @@
     <distsql-case id="create-sharding-key-generator" value="CREATE SHARDING KEY GENERATOR uuid_key_generator(TYPE(NAME=uuid))" />
     <distsql-case id="create-sharding-auditor" value="CREATE SHARDING AUDITOR sharding_key_required_auditor(TYPE(NAME=DML_SHARDING_CONDITIONS))" />
     <distsql-case id="create-sharding-scaling-rule-without-configuration" value="CREATE SHARDING SCALING RULE default_scaling" />
-    <distsql-case id="create-sharding-scaling-rule-with-minimal-auto-configuration" value="CREATE SHARDING SCALING RULE default_scaling (COMPLETION_DETECTOR (TYPE(NAME=IDLE,PROPERTIES('incremental-task-idle-seconds-threshold'=1800))),DATA_CONSISTENCY_CHECKER (TYPE(NAME=DATA_MATCH,PROPERTIES ('chunk-size'=1000))))" />
-    <distsql-case id="create-sharding-scaling-rule-with-complete-auto-configuration" value="CREATE SHARDING SCALING RULE default_scaling (INPUT (WORKER_THREAD=40,BATCH_SIZE=1000,RATE_LIMITER (TYPE(NAME=QPS,PROPERTIES ('qps'=50)))),OUTPUT (WORKER_THREAD=40,BATCH_SIZE=1000,RATE_LIMITER (TYPE(NAME=TPS,PROPERTIES ('tps'=2000)))),STREAM_CHANNEL (TYPE (NAME=MEMORY,PROPERTIES ('block-queue-size'=10000))),COMPLETION_DETECTOR (TYPE (NAME=IDLE,PROPERTIES ('incremental-task-idle-seconds-threshold'= [...]
-    <distsql-case id="create-sharding-scaling-rule-with-manual-configuration" value="CREATE SHARDING SCALING RULE default_scaling (INPUT (WORKER_THREAD=40,BATCH_SIZE=1000,RATE_LIMITER (TYPE(NAME=QPS,PROPERTIES ('qps'=50)))),OUTPUT (WORKER_THREAD=40,BATCH_SIZE=1000,RATE_LIMITER (TYPE (NAME=TPS,PROPERTIES ('tps'=2000)))),STREAM_CHANNEL (TYPE (NAME=MEMORY,PROPERTIES ('block-queue-size'=10000))))" />
+    <distsql-case id="create-sharding-scaling-rule-with-minimal-auto-configuration" value="CREATE SHARDING SCALING RULE default_scaling (COMPLETION_DETECTOR (TYPE(NAME='IDLE',PROPERTIES('incremental-task-idle-seconds-threshold'='1800'))),DATA_CONSISTENCY_CHECKER (TYPE(NAME='DATA_MATCH',PROPERTIES ('chunk-size'='1000'))))" />
+    <distsql-case id="create-sharding-scaling-rule-with-complete-auto-configuration" value="CREATE SHARDING SCALING RULE default_scaling (INPUT (WORKER_THREAD=40,BATCH_SIZE=1000,RATE_LIMITER (TYPE(NAME='QPS',PROPERTIES ('qps'='50')))),OUTPUT (WORKER_THREAD=40,BATCH_SIZE=1000,RATE_LIMITER (TYPE(NAME='TPS',PROPERTIES ('tps'='2000')))),STREAM_CHANNEL (TYPE (NAME='MEMORY',PROPERTIES ('block-queue-size'='10000'))),COMPLETION_DETECTOR (TYPE (NAME='IDLE',PROPERTIES ('incremental-task-idle-secon [...]
+    <distsql-case id="create-sharding-scaling-rule-with-manual-configuration" value="CREATE SHARDING SCALING RULE default_scaling (INPUT (WORKER_THREAD=40,BATCH_SIZE=1000,RATE_LIMITER (TYPE(NAME='QPS',PROPERTIES ('qps'='50')))),OUTPUT (WORKER_THREAD=40,BATCH_SIZE=1000,RATE_LIMITER (TYPE (NAME='TPS',PROPERTIES ('tps'='2000')))),STREAM_CHANNEL (TYPE (NAME='MEMORY',PROPERTIES ('block-queue-size'='10000'))))" />
 </sql-cases>