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

zhonghongsheng 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 545988a2c0b Add new DistSQL syntax: CREATE/ALTER/SHOW MIGRATION 
PROCESS CONFIGURATION (#20315)
545988a2c0b is described below

commit 545988a2c0b6058801aae1e607cfbc0ef718d2c0
Author: Raigor <[email protected]>
AuthorDate: Sat Aug 20 10:44:29 2022 +0800

    Add new DistSQL syntax: CREATE/ALTER/SHOW MIGRATION PROCESS CONFIGURATION 
(#20315)
    
    * Add g4 definition for migration process configuration
    
    * Add statement and handler for migration process configuration
    
    * Fix parameter type.
---
 .../src/main/antlr4/imports/BaseRule.g4            |  8 ++
 .../src/main/antlr4/imports/Keyword.g4             | 36 ++++++++
 .../src/main/antlr4/imports/RALStatement.g4        | 60 ++++++++++---
 .../parser/autogen/KernelDistSQLStatement.g4       |  3 +
 .../core/kernel/KernelDistSQLStatementVisitor.java | 98 +++++++++++++++++++++-
 .../MigrationProcessConfigurationSegment.java}     | 46 ++++------
 .../parser/segment/ReadOrWriteSegment.java}        | 55 ++++++------
 ...howMigrationProcessConfigurationStatement.java} | 36 ++------
 ...terMigrationProcessConfigurationStatement.java} | 43 ++++------
 ...ateMigrationProcessConfigurationStatement.java} | 43 ++++------
 .../distsql/ral/RALBackendHandlerFactory.java      |  9 ++
 .../ShowMigrationProcessConfigurationHandler.java  | 44 ++++++++++
 .../AlterMigrationProcessConfigurationHandler.java | 44 ++++------
 ...CreateMigrationProcessConfigurationHandler.java | 44 ++++------
 .../main/resources/sql/supported/ral/updatable.xml |  8 +-
 15 files changed, 359 insertions(+), 218 deletions(-)

diff --git 
a/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/imports/BaseRule.g4
 
b/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/imports/BaseRule.g4
index ee2cbe9dea3..e186c42ed72 100644
--- 
a/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/imports/BaseRule.g4
+++ 
b/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/imports/BaseRule.g4
@@ -19,6 +19,14 @@ grammar BaseRule;
 
 import Symbol, Keyword, Literals;
 
+algorithmDefinition
+    : TYPE LP NAME EQ algorithmTypeName (COMMA propertiesDefinition)? RP
+    ;
+
+algorithmTypeName
+    : STRING
+    ;
+
 propertiesDefinition
     : PROPERTIES LP properties? RP
     ;
diff --git 
a/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/imports/Keyword.g4
 
b/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/imports/Keyword.g4
index f54bff29435..8029cb86dfc 100644
--- 
a/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/imports/Keyword.g4
+++ 
b/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/imports/Keyword.g4
@@ -334,3 +334,39 @@ SQL_TRANSLATOR
 INFO
     : I N F O
     ;
+
+MIGRATION
+    : M I G R A T I O N
+    ;
+
+PROCESS
+    : P R O C E S S
+    ;
+
+READ
+    : R E A D
+    ;
+
+WRITE
+    : W R I T E
+    ;
+
+WORKER_THREAD
+    : W O R K E R UL_ T H R E A D
+    ;
+
+BATCH_SIZE
+    : B A T C H UL_ S I Z E
+    ;
+
+SHARDING_SIZE
+    : S H A R D I N G UL_ S I Z E
+    ;
+
+RATE_LIMITER
+    : R A T E UL_ L I M I T E R
+    ;
+
+STREAM_CHANNEL
+    : S T R E A M UL_ C H A N N E L
+    ;
diff --git 
a/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/imports/RALStatement.g4
 
b/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/imports/RALStatement.g4
index 8b4395f4fab..9d99f3320f8 100644
--- 
a/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/imports/RALStatement.g4
+++ 
b/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/imports/RALStatement.g4
@@ -119,14 +119,6 @@ loadBalancerDefinition
     : LOAD_BALANCER LP algorithmDefinition RP
     ;
 
-algorithmDefinition
-    : TYPE LP NAME EQ typeName (COMMA propertiesDefinition)? RP
-    ;
-
-typeName
-    : IDENTIFIER
-    ;
-
 exportDatabaseConfiguration
     : EXPORT DATABASE (CONFIGURATION | CONFIG) (FROM databaseName)? (COMMA? 
FILE EQ filePath)?
     ;
@@ -143,6 +135,50 @@ showSQLTranslatorRule
     : SHOW SQL_TRANSLATOR RULE
     ;
 
+showMigrationProcessConfiguration
+    : SHOW MIGRATION PROCESS CONFIGURATION
+    ;
+
+createMigrationProcessConfiguration
+    : CREATE MIGRATION PROCESS CONFIGURATION migrationProcessConfiguration?
+    ;
+
+alterMigrationProcessConfiguration
+    : ALTER MIGRATION PROCESS CONFIGURATION migrationProcessConfiguration?
+    ;
+
+migrationProcessConfiguration
+    : LP readDefinition? (COMMA? writeDefinition)? (COMMA? streamChannel)? RP
+    ;
+
+readDefinition
+    : READ LP workerThread? (COMMA? batchSize)? (COMMA? shardingSize)? (COMMA? 
rateLimiter)? RP
+    ;
+
+writeDefinition
+    : WRITE LP workerThread? (COMMA? batchSize)? (COMMA? rateLimiter)? RP
+    ;
+
+workerThread
+    : WORKER_THREAD EQ intValue
+    ;
+
+batchSize
+    : BATCH_SIZE EQ intValue
+    ;
+
+shardingSize
+    : SHARDING_SIZE EQ intValue
+    ;
+
+rateLimiter
+    : RATE_LIMITER LP algorithmDefinition RP
+    ;
+
+streamChannel
+    : STREAM_CHANNEL LP algorithmDefinition RP
+    ;
+
 filePath
     : STRING
     ;
@@ -156,11 +192,11 @@ providerDefinition
     ;
 
 defaultType
-    : IDENTIFIER
+    : STRING
     ;
 
 providerName
-    : IDENTIFIER
+    : STRING
     ;
 
 sqlParserRuleDefinition
@@ -227,6 +263,10 @@ label
     : IDENTIFIER
     ;
 
+intValue
+    : INT
+    ;
+
 ifExists
     : IF EXISTS
     ;
diff --git 
a/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/org/apache/shardingsphere/distsql/parser/autogen/KernelDistSQLStatement.g4
 
b/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/org/apache/shardingsphere/distsql/parser/autogen/KernelDistSQLStatement.g4
index 02dcbca117d..9315d7b7f9b 100644
--- 
a/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/org/apache/shardingsphere/distsql/parser/autogen/KernelDistSQLStatement.g4
+++ 
b/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/org/apache/shardingsphere/distsql/parser/autogen/KernelDistSQLStatement.g4
@@ -61,5 +61,8 @@ execute
     | importDatabaseConfiguration
     | convertYamlConfiguration
     | showSQLTranslatorRule
+    | showMigrationProcessConfiguration
+    | createMigrationProcessConfiguration
+    | alterMigrationProcessConfiguration
     ) SEMI?
     ;
diff --git 
a/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/java/org/apache/shardingsphere/distsql/parser/core/kernel/KernelDistSQLStatementVisitor.java
 
b/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/java/org/apache/shardingsphere/distsql/parser/core/kernel/KernelDistSQLStatementVisitor.java
index 3e7d5820f0b..1e945d02085 100644
--- 
a/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/java/org/apache/shardingsphere/distsql/parser/core/kernel/KernelDistSQLStatementVisitor.java
+++ 
b/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/java/org/apache/shardingsphere/distsql/parser/core/kernel/KernelDistSQLStatementVisitor.java
@@ -23,17 +23,20 @@ import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementPa
 import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.AlgorithmDefinitionContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.AlterDefaultSingleTableRuleContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.AlterInstanceContext;
+import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.AlterMigrationProcessConfigurationContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.AlterResourceContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.AlterSQLParserRuleContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.AlterTrafficRuleContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.AlterTransactionRuleContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ApplyDistSQLContext;
+import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.BatchSizeContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.CacheOptionContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ClearHintContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ConvertYamlConfigurationContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.CountDatabaseRulesContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.CountSingleTableRuleContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.CreateDefaultSingleTableRuleContext;
+import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.CreateMigrationProcessConfigurationContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.CreateTrafficRuleContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.DatabaseNameContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.DisableInstanceContext;
@@ -49,17 +52,22 @@ import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementPa
 import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.LabelDefinitionContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.LabelInstanceContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.LoadBalancerDefinitionContext;
+import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.MigrationProcessConfigurationContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.PasswordContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.PrepareDistSQLContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.PropertiesDefinitionContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.PropertyContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ProviderDefinitionContext;
+import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.RateLimiterContext;
+import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ReadDefinitionContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.RefreshTableMetadataContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ResourceDefinitionContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.SetVariableContext;
+import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ShardingSizeContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ShowAllVariablesContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ShowInstanceInfoContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ShowInstanceListContext;
+import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ShowMigrationProcessConfigurationContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ShowModeInfoContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ShowResourcesContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ShowRulesUsedResourceContext;
@@ -72,13 +80,18 @@ import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementPa
 import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ShowUnusedResourcesContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ShowVariableContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.SqlParserRuleDefinitionContext;
+import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.StreamChannelContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.TrafficRuleDefinitionContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.TransactionRuleDefinitionContext;
 import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.UnlabelInstanceContext;
+import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.WorkerThreadContext;
+import 
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.WriteDefinitionContext;
 import org.apache.shardingsphere.distsql.parser.segment.AlgorithmSegment;
 import org.apache.shardingsphere.distsql.parser.segment.CacheOptionSegment;
 import org.apache.shardingsphere.distsql.parser.segment.DataSourceSegment;
 import 
org.apache.shardingsphere.distsql.parser.segment.HostnameAndPortBasedDataSourceSegment;
+import 
org.apache.shardingsphere.distsql.parser.segment.MigrationProcessConfigurationSegment;
+import org.apache.shardingsphere.distsql.parser.segment.ReadOrWriteSegment;
 import org.apache.shardingsphere.distsql.parser.segment.TrafficRuleSegment;
 import 
org.apache.shardingsphere.distsql.parser.segment.TransactionProviderSegment;
 import 
org.apache.shardingsphere.distsql.parser.segment.URLBasedDataSourceSegment;
@@ -88,6 +101,7 @@ import 
org.apache.shardingsphere.distsql.parser.statement.ral.queryable.ExportDa
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.queryable.ShowAllVariableStatement;
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.queryable.ShowInstanceInfoStatement;
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.queryable.ShowInstanceListStatement;
+import 
org.apache.shardingsphere.distsql.parser.statement.ral.queryable.ShowMigrationProcessConfigurationStatement;
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.queryable.ShowModeInfoStatement;
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.queryable.ShowSQLParserRuleStatement;
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.queryable.ShowSQLTranslatorRuleStatement;
@@ -95,10 +109,12 @@ import 
org.apache.shardingsphere.distsql.parser.statement.ral.queryable.ShowTabl
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.queryable.ShowTransactionRuleStatement;
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.queryable.ShowVariableStatement;
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.updatable.AlterInstanceStatement;
+import 
org.apache.shardingsphere.distsql.parser.statement.ral.updatable.AlterMigrationProcessConfigurationStatement;
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.updatable.AlterSQLParserRuleStatement;
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.updatable.AlterTrafficRuleStatement;
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.updatable.AlterTransactionRuleStatement;
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.updatable.ApplyDistSQLStatement;
+import 
org.apache.shardingsphere.distsql.parser.statement.ral.updatable.CreateMigrationProcessConfigurationStatement;
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.updatable.CreateTrafficRuleStatement;
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.updatable.DiscardDistSQLStatement;
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.updatable.DropTrafficRuleStatement;
@@ -409,7 +425,7 @@ public final class KernelDistSQLStatementVisitor extends 
KernelDistSQLStatementB
     
     @Override
     public ASTNode visitAlgorithmDefinition(final AlgorithmDefinitionContext 
ctx) {
-        return new AlgorithmSegment(getIdentifierValue(ctx.typeName()), 
buildProperties(ctx.propertiesDefinition()));
+        return new 
AlgorithmSegment(getIdentifierValue(ctx.algorithmTypeName()), 
buildProperties(ctx.propertiesDefinition()));
     }
     
     private Properties buildProperties(final PropertiesDefinitionContext ctx) {
@@ -470,6 +486,86 @@ public final class KernelDistSQLStatementVisitor extends 
KernelDistSQLStatementB
         return new ShowSQLTranslatorRuleStatement();
     }
     
+    @Override
+    public ASTNode visitShowMigrationProcessConfiguration(final 
ShowMigrationProcessConfigurationContext ctx) {
+        return new ShowMigrationProcessConfigurationStatement();
+    }
+    
+    @Override
+    public ASTNode visitCreateMigrationProcessConfiguration(final 
CreateMigrationProcessConfigurationContext ctx) {
+        MigrationProcessConfigurationSegment segment = null == 
ctx.migrationProcessConfiguration() ? null : 
(MigrationProcessConfigurationSegment) 
visit(ctx.migrationProcessConfiguration());
+        return new CreateMigrationProcessConfigurationStatement(segment);
+    }
+    
+    @Override
+    public ASTNode visitAlterMigrationProcessConfiguration(final 
AlterMigrationProcessConfigurationContext ctx) {
+        MigrationProcessConfigurationSegment segment = null == 
ctx.migrationProcessConfiguration() ? null : 
(MigrationProcessConfigurationSegment) 
visit(ctx.migrationProcessConfiguration());
+        return new AlterMigrationProcessConfigurationStatement(segment);
+    }
+    
+    @Override
+    public ASTNode visitMigrationProcessConfiguration(final 
MigrationProcessConfigurationContext ctx) {
+        MigrationProcessConfigurationSegment result = new 
MigrationProcessConfigurationSegment();
+        if (null != ctx.readDefinition()) {
+            result.setReadSegment((ReadOrWriteSegment) 
visit(ctx.readDefinition()));
+        }
+        if (null != ctx.writeDefinition()) {
+            result.setWriteSegment((ReadOrWriteSegment) 
visit(ctx.writeDefinition()));
+        }
+        if (null != ctx.streamChannel()) {
+            result.setStreamChannel((AlgorithmSegment) 
visit(ctx.streamChannel()));
+        }
+        return result;
+    }
+    
+    @Override
+    public ASTNode visitReadDefinition(final ReadDefinitionContext ctx) {
+        return new ReadOrWriteSegment(getWorkerThread(ctx.workerThread()), 
getBatchSize(ctx.batchSize()), getShardingSize(ctx.shardingSize()), 
getAlgorithmSegment(ctx.rateLimiter()));
+    }
+    
+    @Override
+    public ASTNode visitWriteDefinition(final WriteDefinitionContext ctx) {
+        return new ReadOrWriteSegment(getWorkerThread(ctx.workerThread()), 
getBatchSize(ctx.batchSize()), getAlgorithmSegment(ctx.rateLimiter()));
+    }
+    
+    private AlgorithmSegment getAlgorithmSegment(final RateLimiterContext ctx) 
{
+        if (null == ctx) {
+            return null;
+        }
+        return (AlgorithmSegment) visit(ctx);
+    }
+    
+    private Integer getWorkerThread(final WorkerThreadContext ctx) {
+        if (null == ctx) {
+            return null;
+        }
+        return Integer.parseInt(ctx.intValue().getText());
+    }
+    
+    private Integer getBatchSize(final BatchSizeContext ctx) {
+        if (null == ctx) {
+            return null;
+        }
+        return Integer.parseInt(ctx.intValue().getText());
+    }
+    
+    private Integer getShardingSize(final ShardingSizeContext ctx) {
+        if (null == ctx) {
+            return null;
+        }
+        return Integer.parseInt(ctx.intValue().getText());
+    }
+    
+    @Override
+    public ASTNode visitRateLimiter(final RateLimiterContext ctx) {
+        return visit(ctx.algorithmDefinition());
+    }
+    
+    @Override
+    public ASTNode visitStreamChannel(final StreamChannelContext ctx) {
+        return visit(ctx.algorithmDefinition());
+    }
+    
     private String getIdentifierValue(final ParseTree context) {
         return null == context ? null : new 
IdentifierValue(context.getText()).getValue();
     }
diff --git 
a/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/imports/BaseRule.g4
 
b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/segment/MigrationProcessConfigurationSegment.java
similarity index 63%
copy from 
shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/imports/BaseRule.g4
copy to 
shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/segment/MigrationProcessConfigurationSegment.java
index ee2cbe9dea3..44a0e0e0e12 100644
--- 
a/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/imports/BaseRule.g4
+++ 
b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/segment/MigrationProcessConfigurationSegment.java
@@ -15,34 +15,22 @@
  * limitations under the License.
  */
 
-grammar BaseRule;
+package org.apache.shardingsphere.distsql.parser.segment;
 
-import Symbol, Keyword, Literals;
+import lombok.Getter;
+import lombok.Setter;
+import org.apache.shardingsphere.sql.parser.api.visitor.ASTNode;
 
-propertiesDefinition
-    : PROPERTIES LP properties? RP
-    ;
-
-properties
-    : property (COMMA property)*
-    ;
-
-property
-    : key=STRING EQ value=STRING
-    ;
-
-databaseName
-    : IDENTIFIER
-    ;
-
-schemaName
-    : IDENTIFIER
-    ;
-
-tableName
-    : IDENTIFIER
-    ;
-
-resourceName
-    : IDENTIFIER
-    ;
+/**
+ * Migration process configuration segment.
+ */
+@Getter
+@Setter
+public final class MigrationProcessConfigurationSegment implements ASTNode {
+    
+    private ReadOrWriteSegment readSegment;
+    
+    private ReadOrWriteSegment writeSegment;
+    
+    private AlgorithmSegment streamChannel;
+}
diff --git 
a/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/imports/BaseRule.g4
 
b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/segment/ReadOrWriteSegment.java
similarity index 50%
copy from 
shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/imports/BaseRule.g4
copy to 
shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/segment/ReadOrWriteSegment.java
index ee2cbe9dea3..408c519d4ae 100644
--- 
a/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/imports/BaseRule.g4
+++ 
b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/segment/ReadOrWriteSegment.java
@@ -15,34 +15,31 @@
  * limitations under the License.
  */
 
-grammar BaseRule;
+package org.apache.shardingsphere.distsql.parser.segment;
 
-import Symbol, Keyword, Literals;
+import lombok.Getter;
+import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.sql.parser.api.visitor.ASTNode;
 
-propertiesDefinition
-    : PROPERTIES LP properties? RP
-    ;
-
-properties
-    : property (COMMA property)*
-    ;
-
-property
-    : key=STRING EQ value=STRING
-    ;
-
-databaseName
-    : IDENTIFIER
-    ;
-
-schemaName
-    : IDENTIFIER
-    ;
-
-tableName
-    : IDENTIFIER
-    ;
-
-resourceName
-    : IDENTIFIER
-    ;
+/**
+ * Read or Write configuration segment.
+ */
+@RequiredArgsConstructor
+@Getter
+public final class ReadOrWriteSegment implements ASTNode {
+    
+    private final Integer workerThread;
+    
+    private final Integer batchSize;
+    
+    private final Integer shardingSize;
+    
+    private final AlgorithmSegment rateLimiter;
+    
+    public ReadOrWriteSegment(final Integer workerThread, final Integer 
batchSize, final AlgorithmSegment rateLimiter) {
+        this.workerThread = workerThread;
+        this.batchSize = batchSize;
+        this.shardingSize = 1000_0000;
+        this.rateLimiter = rateLimiter;
+    }
+}
diff --git 
a/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/imports/BaseRule.g4
 
b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/ral/queryable/ShowMigrationProcessConfigurationStatement.java
similarity index 69%
copy from 
shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/imports/BaseRule.g4
copy to 
shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/ral/queryable/ShowMigrationProcessConfigurationStatement.java
index ee2cbe9dea3..6e8eef9f7a8 100644
--- 
a/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/imports/BaseRule.g4
+++ 
b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/ral/queryable/ShowMigrationProcessConfigurationStatement.java
@@ -15,34 +15,12 @@
  * limitations under the License.
  */
 
-grammar BaseRule;
+package org.apache.shardingsphere.distsql.parser.statement.ral.queryable;
 
-import Symbol, Keyword, Literals;
+import 
org.apache.shardingsphere.distsql.parser.statement.ral.QueryableRALStatement;
 
-propertiesDefinition
-    : PROPERTIES LP properties? RP
-    ;
-
-properties
-    : property (COMMA property)*
-    ;
-
-property
-    : key=STRING EQ value=STRING
-    ;
-
-databaseName
-    : IDENTIFIER
-    ;
-
-schemaName
-    : IDENTIFIER
-    ;
-
-tableName
-    : IDENTIFIER
-    ;
-
-resourceName
-    : IDENTIFIER
-    ;
+/**
+ * Show migration process configuration statement.
+ */
+public final class ShowMigrationProcessConfigurationStatement extends 
QueryableRALStatement {
+}
diff --git 
a/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/imports/BaseRule.g4
 
b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/ral/updatable/AlterMigrationProcessConfigurationStatement.java
similarity index 57%
copy from 
shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/imports/BaseRule.g4
copy to 
shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/ral/updatable/AlterMigrationProcessConfigurationStatement.java
index ee2cbe9dea3..7611747d3e1 100644
--- 
a/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/imports/BaseRule.g4
+++ 
b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/ral/updatable/AlterMigrationProcessConfigurationStatement.java
@@ -15,34 +15,19 @@
  * limitations under the License.
  */
 
-grammar BaseRule;
+package org.apache.shardingsphere.distsql.parser.statement.ral.updatable;
 
-import Symbol, Keyword, Literals;
+import lombok.Getter;
+import lombok.RequiredArgsConstructor;
+import 
org.apache.shardingsphere.distsql.parser.segment.MigrationProcessConfigurationSegment;
+import 
org.apache.shardingsphere.distsql.parser.statement.ral.UpdatableRALStatement;
 
-propertiesDefinition
-    : PROPERTIES LP properties? RP
-    ;
-
-properties
-    : property (COMMA property)*
-    ;
-
-property
-    : key=STRING EQ value=STRING
-    ;
-
-databaseName
-    : IDENTIFIER
-    ;
-
-schemaName
-    : IDENTIFIER
-    ;
-
-tableName
-    : IDENTIFIER
-    ;
-
-resourceName
-    : IDENTIFIER
-    ;
+/**
+ * Alter migration process configuration statement.
+ */
+@RequiredArgsConstructor
+@Getter
+public final class AlterMigrationProcessConfigurationStatement extends 
UpdatableRALStatement {
+    
+    private final MigrationProcessConfigurationSegment 
migrationProcessConfigurationSegment;
+}
diff --git 
a/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/imports/BaseRule.g4
 
b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/ral/updatable/CreateMigrationProcessConfigurationStatement.java
similarity index 57%
copy from 
shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/imports/BaseRule.g4
copy to 
shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/ral/updatable/CreateMigrationProcessConfigurationStatement.java
index ee2cbe9dea3..3ddf7ebd124 100644
--- 
a/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/imports/BaseRule.g4
+++ 
b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/ral/updatable/CreateMigrationProcessConfigurationStatement.java
@@ -15,34 +15,19 @@
  * limitations under the License.
  */
 
-grammar BaseRule;
+package org.apache.shardingsphere.distsql.parser.statement.ral.updatable;
 
-import Symbol, Keyword, Literals;
+import lombok.Getter;
+import lombok.RequiredArgsConstructor;
+import 
org.apache.shardingsphere.distsql.parser.segment.MigrationProcessConfigurationSegment;
+import 
org.apache.shardingsphere.distsql.parser.statement.ral.UpdatableRALStatement;
 
-propertiesDefinition
-    : PROPERTIES LP properties? RP
-    ;
-
-properties
-    : property (COMMA property)*
-    ;
-
-property
-    : key=STRING EQ value=STRING
-    ;
-
-databaseName
-    : IDENTIFIER
-    ;
-
-schemaName
-    : IDENTIFIER
-    ;
-
-tableName
-    : IDENTIFIER
-    ;
-
-resourceName
-    : IDENTIFIER
-    ;
+/**
+ * Create migration process configuration statement.
+ */
+@RequiredArgsConstructor
+@Getter
+public final class CreateMigrationProcessConfigurationStatement extends 
UpdatableRALStatement {
+    
+    private final MigrationProcessConfigurationSegment 
migrationProcessConfigurationSegment;
+}
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/RALBackendHandlerFactory.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/RALBackendHandlerFactory.java
index 0dbac6a9967..5f3a5f2348b 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/RALBackendHandlerFactory.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/RALBackendHandlerFactory.java
@@ -27,6 +27,7 @@ import 
org.apache.shardingsphere.distsql.parser.statement.ral.queryable.ExportDa
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.queryable.ShowAllVariableStatement;
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.queryable.ShowInstanceInfoStatement;
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.queryable.ShowInstanceListStatement;
+import 
org.apache.shardingsphere.distsql.parser.statement.ral.queryable.ShowMigrationProcessConfigurationStatement;
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.queryable.ShowModeInfoStatement;
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.queryable.ShowSQLParserRuleStatement;
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.queryable.ShowSQLTranslatorRuleStatement;
@@ -35,10 +36,12 @@ import 
org.apache.shardingsphere.distsql.parser.statement.ral.queryable.ShowTran
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.queryable.ShowVariableStatement;
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.scaling.QueryableScalingRALStatement;
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.scaling.UpdatableScalingRALStatement;
+import 
org.apache.shardingsphere.distsql.parser.statement.ral.updatable.AlterMigrationProcessConfigurationStatement;
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.updatable.AlterSQLParserRuleStatement;
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.updatable.AlterTrafficRuleStatement;
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.updatable.AlterTransactionRuleStatement;
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.updatable.ApplyDistSQLStatement;
+import 
org.apache.shardingsphere.distsql.parser.statement.ral.updatable.CreateMigrationProcessConfigurationStatement;
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.updatable.CreateTrafficRuleStatement;
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.updatable.DiscardDistSQLStatement;
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.updatable.DropTrafficRuleStatement;
@@ -61,6 +64,7 @@ import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.queryable.Exp
 import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.queryable.ShowAllVariableHandler;
 import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.queryable.ShowInstanceInfoHandler;
 import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.queryable.ShowInstanceListHandler;
+import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.queryable.ShowMigrationProcessConfigurationHandler;
 import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.queryable.ShowModeInfoHandler;
 import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.queryable.ShowReadwriteSplittingReadResourcesHandler;
 import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.queryable.ShowSQLParserRuleHandler;
@@ -68,10 +72,12 @@ import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.queryable.Sho
 import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.queryable.ShowTableMetadataHandler;
 import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.queryable.ShowTransactionRuleHandler;
 import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.queryable.ShowVariableHandler;
+import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.AlterMigrationProcessConfigurationHandler;
 import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.AlterSQLParserRuleHandler;
 import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.AlterTrafficRuleHandler;
 import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.AlterTransactionRuleHandler;
 import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.ApplyDistSQLHandler;
+import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.CreateMigrationProcessConfigurationHandler;
 import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.CreateTrafficRuleHandler;
 import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.DiscardDistSQLHandler;
 import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.DropTrafficRuleHandler;
@@ -127,6 +133,9 @@ public final class RALBackendHandlerFactory {
         HANDLERS.put(ShowSQLTranslatorRuleStatement.class, 
ShowSQLTranslatorRuleHandler.class);
         HANDLERS.put(ShowInstanceInfoStatement.class, 
ShowInstanceInfoHandler.class);
         HANDLERS.put(ShowModeInfoStatement.class, ShowModeInfoHandler.class);
+        HANDLERS.put(ShowMigrationProcessConfigurationStatement.class, 
ShowMigrationProcessConfigurationHandler.class);
+        HANDLERS.put(CreateMigrationProcessConfigurationStatement.class, 
CreateMigrationProcessConfigurationHandler.class);
+        HANDLERS.put(AlterMigrationProcessConfigurationStatement.class, 
AlterMigrationProcessConfigurationHandler.class);
     }
     
     /**
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowMigrationProcessConfigurationHandler.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowMigrationProcessConfigurationHandler.java
new file mode 100644
index 00000000000..4d149dbf511
--- /dev/null
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowMigrationProcessConfigurationHandler.java
@@ -0,0 +1,44 @@
+/*
+ * 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.handler.distsql.ral.queryable;
+
+import 
org.apache.shardingsphere.distsql.parser.statement.ral.queryable.ShowMigrationProcessConfigurationStatement;
+import 
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
+import org.apache.shardingsphere.mode.manager.ContextManager;
+import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.QueryableRALBackendHandler;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+
+/**
+ * Show migration process configuration handler.
+ */
+public final class ShowMigrationProcessConfigurationHandler extends 
QueryableRALBackendHandler<ShowMigrationProcessConfigurationStatement> {
+    
+    @Override
+    protected Collection<String> getColumnNames() {
+        return Arrays.asList("read", "write", "stream_channel");
+    }
+    
+    @Override
+    protected Collection<LocalDataQueryResultRow> getRows(final ContextManager 
contextManager) {
+        // TODO
+        return Collections.emptyList();
+    }
+}
diff --git 
a/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/imports/BaseRule.g4
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/AlterMigrationProcessConfigurationHandler.java
similarity index 51%
copy from 
shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/imports/BaseRule.g4
copy to 
shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/AlterMigrationProcessConfigurationHandler.java
index ee2cbe9dea3..86d59d5613a 100644
--- 
a/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/imports/BaseRule.g4
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/AlterMigrationProcessConfigurationHandler.java
@@ -15,34 +15,20 @@
  * limitations under the License.
  */
 
-grammar BaseRule;
+package org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable;
 
-import Symbol, Keyword, Literals;
+import 
org.apache.shardingsphere.distsql.parser.statement.ral.updatable.AlterMigrationProcessConfigurationStatement;
+import org.apache.shardingsphere.infra.distsql.exception.DistSQLException;
+import org.apache.shardingsphere.mode.manager.ContextManager;
+import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.UpdatableRALBackendHandler;
 
-propertiesDefinition
-    : PROPERTIES LP properties? RP
-    ;
-
-properties
-    : property (COMMA property)*
-    ;
-
-property
-    : key=STRING EQ value=STRING
-    ;
-
-databaseName
-    : IDENTIFIER
-    ;
-
-schemaName
-    : IDENTIFIER
-    ;
-
-tableName
-    : IDENTIFIER
-    ;
-
-resourceName
-    : IDENTIFIER
-    ;
+/**
+ * Alter migration process configuration handler.
+ */
+public final class AlterMigrationProcessConfigurationHandler extends 
UpdatableRALBackendHandler<AlterMigrationProcessConfigurationStatement> {
+    
+    @Override
+    protected void update(final ContextManager contextManager) throws 
DistSQLException {
+        // TODO
+    }
+}
diff --git 
a/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/imports/BaseRule.g4
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/CreateMigrationProcessConfigurationHandler.java
similarity index 51%
copy from 
shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/imports/BaseRule.g4
copy to 
shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/CreateMigrationProcessConfigurationHandler.java
index ee2cbe9dea3..4586071279a 100644
--- 
a/shardingsphere-distsql/shardingsphere-distsql-parser/src/main/antlr4/imports/BaseRule.g4
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/CreateMigrationProcessConfigurationHandler.java
@@ -15,34 +15,20 @@
  * limitations under the License.
  */
 
-grammar BaseRule;
+package org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable;
 
-import Symbol, Keyword, Literals;
+import 
org.apache.shardingsphere.distsql.parser.statement.ral.updatable.CreateMigrationProcessConfigurationStatement;
+import org.apache.shardingsphere.infra.distsql.exception.DistSQLException;
+import org.apache.shardingsphere.mode.manager.ContextManager;
+import 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.UpdatableRALBackendHandler;
 
-propertiesDefinition
-    : PROPERTIES LP properties? RP
-    ;
-
-properties
-    : property (COMMA property)*
-    ;
-
-property
-    : key=STRING EQ value=STRING
-    ;
-
-databaseName
-    : IDENTIFIER
-    ;
-
-schemaName
-    : IDENTIFIER
-    ;
-
-tableName
-    : IDENTIFIER
-    ;
-
-resourceName
-    : IDENTIFIER
-    ;
+/**
+ * Create migration process configuration handler.
+ */
+public final class CreateMigrationProcessConfigurationHandler extends 
UpdatableRALBackendHandler<CreateMigrationProcessConfigurationStatement> {
+    
+    @Override
+    protected void update(final ContextManager contextManager) throws 
DistSQLException {
+        // TODO
+    }
+}
diff --git 
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ral/updatable.xml
 
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ral/updatable.xml
index 2f4bd32155f..f5d1b98bea8 100644
--- 
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ral/updatable.xml
+++ 
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ral/updatable.xml
@@ -26,11 +26,11 @@
     <distsql-case id="refresh-table-metadata-table-with-schema" value="REFRESH 
TABLE METADATA t_order FROM RESOURCE ds_0 SCHEMA public" />
     
     <distsql-case id="alter-sql-parser-rule" value="ALTER SQL_PARSER RULE 
SQL_COMMENT_PARSE_ENABLE=false,PARSE_TREE_CACHE(INITIAL_CAPACITY=10, 
MAXIMUM_SIZE=11,CONCURRENCY_LEVEL=1), SQL_STATEMENT_CACHE(INITIAL_CAPACITY=11, 
MAXIMUM_SIZE=11,CONCURRENCY_LEVEL=100)" />
-    <distsql-case id="alter-local-transaction-rule" value="ALTER TRANSACTION 
RULE (DEFAULT=LOCAL)" />
-    <distsql-case id="alter-xa-transaction-rule" value="ALTER TRANSACTION 
RULE(DEFAULT=XA, TYPE(NAME=Atomikos))" />
+    <distsql-case id="alter-local-transaction-rule" value="ALTER TRANSACTION 
RULE (DEFAULT='LOCAL')" />
+    <distsql-case id="alter-xa-transaction-rule" value="ALTER TRANSACTION 
RULE(DEFAULT='XA', TYPE(NAME='Atomikos'))" />
     
-    <distsql-case id="create-traffic-rule" value="CREATE TRAFFIC RULE 
sql_match_traffic 
(LABELS(OLTP),TRAFFIC_ALGORITHM(TYPE(NAME=SQL_MATCH,PROPERTIES('sql' = 'SELECT 
* FROM t_order WHERE order_id = ?; UPDATE t_order SET order_id = ?;'))), 
LOAD_BALANCER(TYPE(NAME=RANDOM, PROPERTIES('key'='value'))) )" />
-    <distsql-case id="alter-traffic-rule" value="ALTER TRAFFIC RULE 
sql_match_traffic 
(LABELS(OLTP),TRAFFIC_ALGORITHM(TYPE(NAME=SQL_MATCH,PROPERTIES('sql' = 'SELECT 
* FROM t_order WHERE order_id = ?; UPDATE t_order SET order_id = ?;'))), 
LOAD_BALANCER(TYPE(NAME=RANDOM, PROPERTIES('key'='value'))) )" />
+    <distsql-case id="create-traffic-rule" value="CREATE TRAFFIC RULE 
sql_match_traffic 
(LABELS(OLTP),TRAFFIC_ALGORITHM(TYPE(NAME='SQL_MATCH',PROPERTIES('sql' = 
'SELECT * FROM t_order WHERE order_id = ?; UPDATE t_order SET order_id = 
?;'))), LOAD_BALANCER(TYPE(NAME='RANDOM', PROPERTIES('key'='value'))) )" />
+    <distsql-case id="alter-traffic-rule" value="ALTER TRAFFIC RULE 
sql_match_traffic 
(LABELS(OLTP),TRAFFIC_ALGORITHM(TYPE(NAME='SQL_MATCH',PROPERTIES('sql' = 
'SELECT * FROM t_order WHERE order_id = ?; UPDATE t_order SET order_id = 
?;'))), LOAD_BALANCER(TYPE(NAME='RANDOM', PROPERTIES('key'='value'))) )" />
     <distsql-case id="drop-traffic-rule" value="DROP TRAFFIC RULE rule_name" />
     
     <distsql-case id="alter-instance-xa-recovery-nodes" value="ALTER INSTANCE 
instance_xa_recovery SET XA_RECOVERY_NODES='instance_1'" />

Reply via email to