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 753071c9612 Add DROP MIGRATION PROCESS CONFIGURATION DistSQL and api
impl (#20497)
753071c9612 is described below
commit 753071c9612c69654c782757945cd17ba4086c5e
Author: Hongsheng Zhong <[email protected]>
AuthorDate: Wed Aug 24 21:40:07 2022 +0800
Add DROP MIGRATION PROCESS CONFIGURATION DistSQL and api impl (#20497)
---
.../src/main/antlr4/imports/RALStatement.g4 | 8 ++++
.../parser/autogen/KernelDistSQLStatement.g4 | 1 +
.../core/kernel/KernelDistSQLStatementVisitor.java | 7 +++
...DropMigrationProcessConfigurationStatement.java | 32 ++++++++++++++
.../pipeline/YamlPipelineProcessConfiguration.java | 35 +++++++++++----
.../pipeline/YamlPipelineReadConfiguration.java | 46 +++++++++++++-------
.../pipeline/YamlPipelineWriteConfiguration.java | 39 +++++++++++------
.../data/pipeline/api/PipelineJobPublicAPI.java | 7 +++
.../core/api/impl/AbstractPipelineJobAPIImpl.java | 21 +++++++--
.../util/PipelineProcessConfigurationUtils.java | 48 +++++++++++++++++++--
.../core/fixture/MigrationJobAPIFixture.java | 4 ++
.../PipelineProcessConfigurationUtilsTest.java | 50 ++++++++++++++++++++++
.../DropMigrationProcessConfigurationUpdater.java | 41 ++++++++++++++++++
....shardingsphere.infra.distsql.update.RALUpdater | 1 +
.../UpdatableScalingRALStatementAssert.java | 6 +++
...grationProcessConfigurationStatementAssert.java | 42 ++++++++++++++++++
.../jaxb/cases/domain/SQLParserTestCases.java | 4 ++
...ationProcessConfigurationStatementTestCase.java | 35 +++++++++++++++
.../src/main/resources/case/ral/migration.xml | 8 ++++
.../main/resources/sql/supported/ral/migration.xml | 2 +
20 files changed, 391 insertions(+), 46 deletions(-)
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 534da574fdf..6c03e0037c6 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,6 +119,10 @@ alterMigrationProcessConfiguration
: ALTER MIGRATION PROCESS CONFIGURATION migrationProcessConfiguration?
;
+dropMigrationProcessConfiguration
+ : DROP MIGRATION PROCESS CONFIGURATION confPath
+ ;
+
migrationProcessConfiguration
: LP readDefinition? (COMMA? writeDefinition)? (COMMA? streamChannel)? RP
;
@@ -151,6 +155,10 @@ streamChannel
: STREAM_CHANNEL LP algorithmDefinition RP
;
+confPath
+ : STRING
+ ;
+
filePath
: STRING
;
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 8e2f7d44953..46843eb5283 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,6 @@ execute
| showMigrationProcessConfiguration
| createMigrationProcessConfiguration
| alterMigrationProcessConfiguration
+ | dropMigrationProcessConfiguration
) 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 1fc00d46e7f..19eb4b9aade 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
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.distsql.parser.core.kernel;
import org.antlr.v4.runtime.tree.ParseTree;
import
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementBaseVisitor;
+import
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser;
import
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.AddResourceContext;
import
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.AlgorithmDefinitionContext;
import
org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.AlterDefaultSingleTableRuleContext;
@@ -108,6 +109,7 @@ import
org.apache.shardingsphere.distsql.parser.statement.ral.updatable.AlterTra
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.DiscardDistSQLStatement;
+import
org.apache.shardingsphere.distsql.parser.statement.ral.updatable.DropMigrationProcessConfigurationStatement;
import
org.apache.shardingsphere.distsql.parser.statement.ral.updatable.ImportDatabaseConfigurationStatement;
import
org.apache.shardingsphere.distsql.parser.statement.ral.updatable.LabelInstanceStatement;
import
org.apache.shardingsphere.distsql.parser.statement.ral.updatable.PrepareDistSQLStatement;
@@ -435,6 +437,11 @@ public final class KernelDistSQLStatementVisitor extends
KernelDistSQLStatementB
return new AlterMigrationProcessConfigurationStatement(segment);
}
+ @Override
+ public ASTNode visitDropMigrationProcessConfiguration(final
KernelDistSQLStatementParser.DropMigrationProcessConfigurationContext ctx) {
+ return new
DropMigrationProcessConfigurationStatement(getIdentifierValue(ctx.confPath()));
+ }
+
@Override
public ASTNode visitMigrationProcessConfiguration(final
MigrationProcessConfigurationContext ctx) {
MigrationProcessConfigurationSegment result = new
MigrationProcessConfigurationSegment();
diff --git
a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/ral/updatable/DropMigrationProcessConfigurationStatement.java
b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/ral/updatable/DropMigrationProcessConfigurationStatement.java
new file mode 100644
index 00000000000..a9954b52d82
--- /dev/null
+++
b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/ral/updatable/DropMigrationProcessConfigurationStatement.java
@@ -0,0 +1,32 @@
+/*
+ * 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.distsql.parser.statement.ral.updatable;
+
+import lombok.Getter;
+import lombok.RequiredArgsConstructor;
+import
org.apache.shardingsphere.distsql.parser.statement.ral.scaling.UpdatableScalingRALStatement;
+
+/**
+ * Drop migration process configuration statement.
+ */
+@RequiredArgsConstructor
+@Getter
+public final class DropMigrationProcessConfigurationStatement extends
UpdatableScalingRALStatement {
+
+ private final String confPath;
+}
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/config/pojo/data/pipeline/YamlPipelineProcessConfiguration.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/config/pojo/data/pipeline/YamlPipelineProcessConfiguration.java
index e3aed9371f0..e2bbc8d2778 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/config/pojo/data/pipeline/YamlPipelineProcessConfiguration.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/config/pojo/data/pipeline/YamlPipelineProcessConfiguration.java
@@ -47,9 +47,6 @@ public final class YamlPipelineProcessConfiguration
implements YamlConfiguration
if (null == another) {
return;
}
- if (isAllFieldsNull(another)) {
- setAllFieldsNull(this);
- }
if (null == read) {
read = another.read;
} else {
@@ -65,13 +62,33 @@ public final class YamlPipelineProcessConfiguration
implements YamlConfiguration
}
}
- private boolean isAllFieldsNull(final YamlPipelineProcessConfiguration
config) {
- return null == config.read && null == config.write && null ==
config.streamChannel;
+ /**
+ * Set all fields null.
+ */
+ public void setAllFieldsNull() {
+ read = null;
+ write = null;
+ streamChannel = null;
}
- private void setAllFieldsNull(final YamlPipelineProcessConfiguration
config) {
- config.read = null;
- config.write = null;
- config.streamChannel = null;
+ /**
+ * Set field to null.
+ *
+ * @param nodeName node name
+ */
+ public void setFieldNull(final String nodeName) {
+ switch (nodeName.toUpperCase()) {
+ case "READ":
+ read = null;
+ break;
+ case "WRITE":
+ write = null;
+ break;
+ case "STREAM_CHANNEL":
+ streamChannel = null;
+ break;
+ default:
+ break;
+ }
}
}
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/config/pojo/data/pipeline/YamlPipelineReadConfiguration.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/config/pojo/data/pipeline/YamlPipelineReadConfiguration.java
index 38a29f9f8f3..155928c1094 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/config/pojo/data/pipeline/YamlPipelineReadConfiguration.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/config/pojo/data/pipeline/YamlPipelineReadConfiguration.java
@@ -33,11 +33,11 @@ public final class YamlPipelineReadConfiguration implements
YamlConfiguration {
private static final Integer DEFAULT_SHARDING_SIZE = 1000_0000;
- private Integer workerThread = DEFAULT_WORKER_THREAD;
+ private Integer workerThread;
- private Integer batchSize = DEFAULT_BATCH_SIZE;
+ private Integer batchSize;
- private Integer shardingSize = DEFAULT_SHARDING_SIZE;
+ private Integer shardingSize;
private YamlAlgorithmConfiguration rateLimiter;
@@ -47,7 +47,11 @@ public final class YamlPipelineReadConfiguration implements
YamlConfiguration {
* @return read configuration
*/
public static YamlPipelineReadConfiguration buildWithDefaultValue() {
- return new YamlPipelineReadConfiguration();
+ YamlPipelineReadConfiguration result = new
YamlPipelineReadConfiguration();
+ result.workerThread = DEFAULT_WORKER_THREAD;
+ result.batchSize = DEFAULT_BATCH_SIZE;
+ result.shardingSize = DEFAULT_SHARDING_SIZE;
+ return result;
}
/**
@@ -74,9 +78,6 @@ public final class YamlPipelineReadConfiguration implements
YamlConfiguration {
if (null == another) {
return;
}
- if (isAllFieldsNull(another)) {
- setAllFieldsNull(this);
- }
if (null != another.workerThread) {
workerThread = another.workerThread;
}
@@ -91,14 +92,27 @@ public final class YamlPipelineReadConfiguration implements
YamlConfiguration {
}
}
- private boolean isAllFieldsNull(final YamlPipelineReadConfiguration
config) {
- return null == config.workerThread && null == config.batchSize && null
== config.shardingSize && null == config.rateLimiter;
- }
-
- private void setAllFieldsNull(final YamlPipelineReadConfiguration config) {
- config.workerThread = null;
- config.batchSize = null;
- config.shardingSize = null;
- config.rateLimiter = null;
+ /**
+ * Set field to null.
+ *
+ * @param nodeName node name
+ */
+ public void setFieldNull(final String nodeName) {
+ switch (nodeName.toUpperCase()) {
+ case "WORKER_THREAD":
+ workerThread = null;
+ break;
+ case "BATCH_SIZE":
+ batchSize = null;
+ break;
+ case "SHARDING_SIZE":
+ shardingSize = null;
+ break;
+ case "RATE_LIMITER":
+ rateLimiter = null;
+ break;
+ default:
+ break;
+ }
}
}
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/config/pojo/data/pipeline/YamlPipelineWriteConfiguration.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/config/pojo/data/pipeline/YamlPipelineWriteConfiguration.java
index b01eab1c6e8..29f31d227f5 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/config/pojo/data/pipeline/YamlPipelineWriteConfiguration.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/config/pojo/data/pipeline/YamlPipelineWriteConfiguration.java
@@ -31,9 +31,9 @@ public final class YamlPipelineWriteConfiguration implements
YamlConfiguration {
private static final Integer DEFAULT_BATCH_SIZE = 1000;
- private Integer workerThread = DEFAULT_WORKER_THREAD;
+ private Integer workerThread;
- private Integer batchSize = DEFAULT_BATCH_SIZE;
+ private Integer batchSize;
private YamlAlgorithmConfiguration rateLimiter;
@@ -43,7 +43,10 @@ public final class YamlPipelineWriteConfiguration implements
YamlConfiguration {
* @return write configuration
*/
public static YamlPipelineWriteConfiguration buildWithDefaultValue() {
- return new YamlPipelineWriteConfiguration();
+ YamlPipelineWriteConfiguration result = new
YamlPipelineWriteConfiguration();
+ result.workerThread = DEFAULT_WORKER_THREAD;
+ result.batchSize = DEFAULT_BATCH_SIZE;
+ return result;
}
/**
@@ -67,9 +70,6 @@ public final class YamlPipelineWriteConfiguration implements
YamlConfiguration {
if (null == another) {
return;
}
- if (isAllFieldsNull(another)) {
- setAllFieldsNull(this);
- }
if (null != another.workerThread) {
workerThread = another.workerThread;
}
@@ -81,13 +81,24 @@ public final class YamlPipelineWriteConfiguration
implements YamlConfiguration {
}
}
- private boolean isAllFieldsNull(final YamlPipelineWriteConfiguration
config) {
- return null == config.workerThread && null == config.batchSize && null
== config.rateLimiter;
- }
-
- private void setAllFieldsNull(final YamlPipelineWriteConfiguration config)
{
- config.workerThread = null;
- config.batchSize = null;
- config.rateLimiter = null;
+ /**
+ * Set field to null.
+ *
+ * @param nodeName node name
+ */
+ public void setFieldNull(final String nodeName) {
+ switch (nodeName.toUpperCase()) {
+ case "WORKER_THREAD":
+ workerThread = null;
+ break;
+ case "BATCH_SIZE":
+ batchSize = null;
+ break;
+ case "RATE_LIMITER":
+ rateLimiter = null;
+ break;
+ default:
+ break;
+ }
}
}
diff --git
a/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-api/src/main/java/org/apache/shardingsphere/data/pipeline/api/PipelineJobPublicAPI.java
b/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-api/src/main/java/org/apache/shardingsphere/data/pipeline/api/PipelineJobPublicAPI.java
index fd8815797ed..e3ec709d603 100644
---
a/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-api/src/main/java/org/apache/shardingsphere/data/pipeline/api/PipelineJobPublicAPI.java
+++
b/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-api/src/main/java/org/apache/shardingsphere/data/pipeline/api/PipelineJobPublicAPI.java
@@ -42,6 +42,13 @@ public interface PipelineJobPublicAPI extends TypedSPI {
*/
void alterProcessConfiguration(PipelineProcessConfiguration processConfig);
+ /**
+ * Drop process configuration.
+ *
+ * @param confPath configuration path. e.g. <code>/</code>,
<code>/READ</code>, <code>/READ/RATE_LIMITER</code>
+ */
+ void dropProcessConfiguration(String confPath);
+
/**
* Show process configuration.
*
diff --git
a/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/data/pipeline/core/api/impl/AbstractPipelineJobAPIImpl.java
b/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/data/pipeline/core/api/impl/AbstractPipelineJobAPIImpl.java
index 58d5a3baf87..bc713522c34 100644
---
a/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/data/pipeline/core/api/impl/AbstractPipelineJobAPIImpl.java
+++
b/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/data/pipeline/core/api/impl/AbstractPipelineJobAPIImpl.java
@@ -80,13 +80,26 @@ public abstract class AbstractPipelineJobAPIImpl implements
PipelineJobAPI {
@Override
public void alterProcessConfiguration(final PipelineProcessConfiguration
processConfig) {
+ // TODO check rateLimiter type match or not
+ YamlPipelineProcessConfiguration targetYamlProcessConfig =
getTargetYamlProcessConfiguration();
+
targetYamlProcessConfig.copyNonNullFields(PROCESS_CONFIG_SWAPPER.swapToYamlConfiguration(processConfig));
+ processConfigPersistService.persist(getJobType(),
PROCESS_CONFIG_SWAPPER.swapToObject(targetYamlProcessConfig));
+ }
+
+ private YamlPipelineProcessConfiguration
getTargetYamlProcessConfiguration() {
PipelineProcessConfiguration existingProcessConfig =
processConfigPersistService.load(getJobType());
if (null == existingProcessConfig) {
- throw new PipelineMetaDataException("Process configuration does
not exists");
+ throw new PipelineMetaDataException("Process configuration does
not exist");
}
- // TODO check rateLimiter type match or not
- YamlPipelineProcessConfiguration targetYamlProcessConfig =
PROCESS_CONFIG_SWAPPER.swapToYamlConfiguration(existingProcessConfig);
-
targetYamlProcessConfig.copyNonNullFields(PROCESS_CONFIG_SWAPPER.swapToYamlConfiguration(processConfig));
+ return
PROCESS_CONFIG_SWAPPER.swapToYamlConfiguration(existingProcessConfig);
+ }
+
+ @Override
+ public void dropProcessConfiguration(final String confPath) {
+ String finalConfPath = confPath.trim();
+ PipelineProcessConfigurationUtils.verifyConfPath(confPath);
+ YamlPipelineProcessConfiguration targetYamlProcessConfig =
getTargetYamlProcessConfiguration();
+
PipelineProcessConfigurationUtils.setFieldsNullByConfPath(targetYamlProcessConfig,
finalConfPath);
processConfigPersistService.persist(getJobType(),
PROCESS_CONFIG_SWAPPER.swapToObject(targetYamlProcessConfig));
}
diff --git
a/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/data/pipeline/core/util/PipelineProcessConfigurationUtils.java
b/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/data/pipeline/core/util/PipelineProcessConfigurationUtils.java
index 373260d923c..8273884ed91 100644
---
a/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/data/pipeline/core/util/PipelineProcessConfigurationUtils.java
+++
b/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/main/java/org/apache/shardingsphere/data/pipeline/core/util/PipelineProcessConfigurationUtils.java
@@ -17,6 +17,7 @@
package org.apache.shardingsphere.data.pipeline.core.util;
+import com.google.common.base.Splitter;
import
org.apache.shardingsphere.data.pipeline.core.ingest.channel.memory.MemoryPipelineChannelCreator;
import
org.apache.shardingsphere.infra.config.rule.data.pipeline.PipelineProcessConfiguration;
import
org.apache.shardingsphere.infra.yaml.config.pojo.algorithm.YamlAlgorithmConfiguration;
@@ -25,7 +26,9 @@ import
org.apache.shardingsphere.infra.yaml.config.pojo.data.pipeline.YamlPipeli
import
org.apache.shardingsphere.infra.yaml.config.pojo.data.pipeline.YamlPipelineWriteConfiguration;
import
org.apache.shardingsphere.infra.yaml.config.swapper.rule.data.pipeline.YamlPipelineProcessConfigurationSwapper;
+import java.util.List;
import java.util.Properties;
+import java.util.regex.Pattern;
/**
* Pipeline process configuration utils.
@@ -34,6 +37,10 @@ public final class PipelineProcessConfigurationUtils {
private static final YamlPipelineProcessConfigurationSwapper SWAPPER = new
YamlPipelineProcessConfigurationSwapper();
+ private static final String CONF_PATH_REGEX = "^/|(/[a-zA-Z_]+)+$";
+
+ private static final Pattern CONF_PATH_PATTERN =
Pattern.compile(CONF_PATH_REGEX);
+
/**
* Convert with default value.
*
@@ -41,9 +48,6 @@ public final class PipelineProcessConfigurationUtils {
* @return process configuration
*/
public static PipelineProcessConfiguration convertWithDefaultValue(final
PipelineProcessConfiguration originalConfig) {
- if (null != originalConfig && null != originalConfig.getRead() && null
!= originalConfig.getWrite() && null != originalConfig.getStreamChannel()) {
- return originalConfig;
- }
YamlPipelineProcessConfiguration yamlConfig = null != originalConfig ?
SWAPPER.swapToYamlConfiguration(originalConfig) : new
YamlPipelineProcessConfiguration();
fillInDefaultValue(yamlConfig);
return SWAPPER.swapToObject(yamlConfig);
@@ -71,4 +75,42 @@ public final class PipelineProcessConfigurationUtils {
yamlConfig.setStreamChannel(new
YamlAlgorithmConfiguration(MemoryPipelineChannelCreator.TYPE, props));
}
}
+
+ /**
+ * Verify configuration path valid or not.
+ *
+ * @param confPath configuration path
+ * @throws IllegalArgumentException if path doesn't match pattern
+ */
+ public static void verifyConfPath(final String confPath) {
+ if (!CONF_PATH_PATTERN.matcher(confPath).matches()) {
+ throw new IllegalArgumentException("Invalid confPath, it doesn't
match pattern: " + CONF_PATH_REGEX);
+ }
+ }
+
+ /**
+ * Set fields to null by configuration path.
+ *
+ * @param targetYamlProcessConfig target YAML process configuration
+ * @param confPath configuration path, e.g. <code>/</code>,
<code>/READ</code>, <code>/READ/RATE_LIMITER</code>
+ */
+ public static void setFieldsNullByConfPath(final
YamlPipelineProcessConfiguration targetYamlProcessConfig, final String
confPath) {
+ List<String> confPathNodes = Splitter.on('/').splitToList(confPath);
+ if (2 == confPathNodes.size()) {
+ String levelOne = confPathNodes.get(1).toUpperCase();
+ if (levelOne.isEmpty()) {
+ targetYamlProcessConfig.setAllFieldsNull();
+ } else {
+ targetYamlProcessConfig.setFieldNull(levelOne);
+ }
+ } else if (3 == confPathNodes.size()) {
+ String levelOne = confPathNodes.get(1).toUpperCase();
+ String levelTwo = confPathNodes.get(2).toUpperCase();
+ if ("READ".equals(levelOne) && null !=
targetYamlProcessConfig.getRead()) {
+ targetYamlProcessConfig.getRead().setFieldNull(levelTwo);
+ } else if ("WRITE".equals(levelOne) && null !=
targetYamlProcessConfig.getWrite()) {
+ targetYamlProcessConfig.getWrite().setFieldNull(levelTwo);
+ }
+ }
+ }
}
diff --git
a/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/test/java/org/apache/shardingsphere/data/pipeline/core/fixture/MigrationJobAPIFixture.java
b/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/test/java/org/apache/shardingsphere/data/pipeline/core/fixture/MigrationJobAPIFixture.java
index 11d5b9f69bf..438bb2f6cc1 100644
---
a/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/test/java/org/apache/shardingsphere/data/pipeline/core/fixture/MigrationJobAPIFixture.java
+++
b/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/test/java/org/apache/shardingsphere/data/pipeline/core/fixture/MigrationJobAPIFixture.java
@@ -59,6 +59,10 @@ public final class MigrationJobAPIFixture implements
MigrationJobAPI {
public void alterProcessConfiguration(final PipelineProcessConfiguration
processConfig) {
}
+ @Override
+ public void dropProcessConfiguration(final String confPath) {
+ }
+
@Override
public PipelineProcessConfiguration showProcessConfiguration() {
return null;
diff --git
a/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/test/java/org/apache/shardingsphere/data/pipeline/core/util/PipelineProcessConfigurationUtilsTest.java
b/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/test/java/org/apache/shardingsphere/data/pipeline/core/util/PipelineProcessConfigurationUtilsTest.java
new file mode 100644
index 00000000000..e4396cd7cbe
--- /dev/null
+++
b/shardingsphere-kernel/shardingsphere-data-pipeline/shardingsphere-data-pipeline-core/src/test/java/org/apache/shardingsphere/data/pipeline/core/util/PipelineProcessConfigurationUtilsTest.java
@@ -0,0 +1,50 @@
+/*
+ * 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.data.pipeline.core.util;
+
+import org.junit.Test;
+
+import java.util.Arrays;
+import java.util.Collection;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+
+public final class PipelineProcessConfigurationUtilsTest {
+
+ @Test
+ public void assertVerifyConfPathSuccess() {
+ for (String each : Arrays.asList("/", "/READ", "/READ/RATE_LIMITER")) {
+ PipelineProcessConfigurationUtils.verifyConfPath(each);
+ }
+ }
+
+ @Test
+ public void assertVerifyConfPathFailed() {
+ Collection<String> confPaths = Arrays.asList("", "//", "READ",
"/READ/");
+ int failCount = 0;
+ for (String each : confPaths) {
+ try {
+ PipelineProcessConfigurationUtils.verifyConfPath(each);
+ } catch (final IllegalArgumentException ex) {
+ ++failCount;
+ }
+ }
+ assertThat(failCount, is(confPaths.size()));
+ }
+}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/DropMigrationProcessConfigurationUpdater.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/DropMigrationProcessConfigurationUpdater.java
new file mode 100644
index 00000000000..f8f2c9052cf
--- /dev/null
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/DropMigrationProcessConfigurationUpdater.java
@@ -0,0 +1,41 @@
+/*
+ * 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.updatable;
+
+import org.apache.shardingsphere.data.pipeline.api.MigrationJobPublicAPI;
+import org.apache.shardingsphere.data.pipeline.api.PipelineJobPublicAPIFactory;
+import
org.apache.shardingsphere.distsql.parser.statement.ral.updatable.DropMigrationProcessConfigurationStatement;
+import org.apache.shardingsphere.infra.distsql.update.RALUpdater;
+
+/**
+ * Drop migration process configuration updater.
+ */
+public final class DropMigrationProcessConfigurationUpdater implements
RALUpdater<DropMigrationProcessConfigurationStatement> {
+
+ private static final MigrationJobPublicAPI JOB_API =
PipelineJobPublicAPIFactory.getMigrationJobPublicAPI();
+
+ @Override
+ public void executeUpdate(final String databaseName, final
DropMigrationProcessConfigurationStatement sqlStatement) {
+ JOB_API.dropProcessConfiguration(sqlStatement.getConfPath());
+ }
+
+ @Override
+ public String getType() {
+ return DropMigrationProcessConfigurationStatement.class.getName();
+ }
+}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.distsql.update.RALUpdater
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.distsql.update.RALUpdater
index cd9c763c7a0..7afc152634a 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.distsql.update.RALUpdater
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.distsql.update.RALUpdater
@@ -17,3 +17,4 @@
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.CreateMigrationProcessConfigurationUpdater
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.AlterMigrationProcessConfigurationUpdater
+org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.DropMigrationProcessConfigurationUpdater
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/ral/impl/migration/UpdatableScalingRALStatementAssert.java
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/ral/impl/migration/UpdatableScalingRALStatementAssert.java
index 4e43ff54e74..9bd44abc048 100644
---
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/ral/impl/migration/UpdatableScalingRALStatementAssert.java
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/ral/impl/migration/UpdatableScalingRALStatementAssert.java
@@ -20,6 +20,7 @@ package
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statemen
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import
org.apache.shardingsphere.distsql.parser.statement.ral.scaling.UpdatableScalingRALStatement;
+import
org.apache.shardingsphere.distsql.parser.statement.ral.updatable.DropMigrationProcessConfigurationStatement;
import
org.apache.shardingsphere.migration.distsql.statement.AddMigrationSourceResourceStatement;
import
org.apache.shardingsphere.migration.distsql.statement.CleanMigrationStatement;
import
org.apache.shardingsphere.migration.distsql.statement.DropMigrationSourceResourceStatement;
@@ -30,6 +31,7 @@ import
org.apache.shardingsphere.migration.distsql.statement.StopMigrationStatem
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.SQLCaseAssertContext;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.ral.impl.migration.update.AddMigrationSourceResourceStatementAssert;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.ral.impl.migration.update.CleanMigrationStatementAssert;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.ral.impl.migration.update.DropMigrationProcessConfigurationStatementAssert;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.ral.impl.migration.update.DropMigrationSourceResourceStatementAssert;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.ral.impl.migration.update.MigrateTableStatementAssert;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.ral.impl.migration.update.ResetMigrationStatementAssert;
@@ -38,6 +40,7 @@ import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.SQLParserTestCase;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.migration.AddMigrationSourceResourceStatementTestCase;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.migration.CleanMigrationStatementTestCase;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.migration.DropMigrationProcessConfigurationStatementTestCase;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.migration.DropMigrationSourceResourceStatementTestCase;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.migration.MigrateTableStatementTestCase;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.migration.ResetMigrationStatementTestCase;
@@ -61,6 +64,9 @@ public final class UpdatableScalingRALStatementAssert {
// TODO add more test case
if (actual instanceof MigrateTableStatement) {
MigrateTableStatementAssert.assertIs(assertContext,
(MigrateTableStatement) actual, (MigrateTableStatementTestCase) expected);
+ } else if (actual instanceof
DropMigrationProcessConfigurationStatement) {
+
DropMigrationProcessConfigurationStatementAssert.assertIs(assertContext,
(DropMigrationProcessConfigurationStatement) actual,
+ (DropMigrationProcessConfigurationStatementTestCase)
expected);
} else if (actual instanceof StopMigrationStatement) {
StopMigrationStatementAssert.assertIs(assertContext,
(StopMigrationStatement) actual, (StopMigrationStatementTestCase) expected);
} else if (actual instanceof ResetMigrationStatement) {
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/ral/impl/migration/update/DropMigrationProcessConfigurationStatementAssert.java
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/ral/impl/migration/update/DropMigrationProcessConfigurationStatementAssert.java
new file mode 100644
index 00000000000..ed5438fff9f
--- /dev/null
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/distsql/ral/impl/migration/update/DropMigrationProcessConfigurationStatementAssert.java
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.distsql.ral.impl.migration.update;
+
+import
org.apache.shardingsphere.distsql.parser.statement.ral.updatable.DropMigrationProcessConfigurationStatement;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.SQLCaseAssertContext;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.migration.DropMigrationProcessConfigurationStatementTestCase;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+
+/**
+ * Drop migration process configuration statement assert.
+ */
+public final class DropMigrationProcessConfigurationStatementAssert {
+
+ /**
+ * Assert drop migration process configuration statement is correct with
expected parser result.
+ *
+ * @param assertContext assert context
+ * @param actual actual statement
+ * @param expected expected statement test case
+ */
+ public static void assertIs(final SQLCaseAssertContext assertContext,
final DropMigrationProcessConfigurationStatement actual, final
DropMigrationProcessConfigurationStatementTestCase expected) {
+ assertThat(assertContext.getText("conf path does not match"),
actual.getConfPath(), is(expected.getConfPath()));
+ }
+}
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 ae20ccb259f..2fb8481c36e 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
@@ -309,6 +309,7 @@ import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.migration.AddMigrationSourceResourceStatementTestCase;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.migration.CheckMigrationStatementTestCase;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.migration.CleanMigrationStatementTestCase;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.migration.DropMigrationProcessConfigurationStatementTestCase;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.migration.DropMigrationSourceResourceStatementTestCase;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.migration.MigrateTableStatementTestCase;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.migration.ResetMigrationStatementTestCase;
@@ -1019,6 +1020,9 @@ public final class SQLParserTestCases {
@XmlElement(name = "start-migration")
private final List<StartMigrationStatementTestCase>
startMigrationTestCases = new LinkedList<>();
+ @XmlElement(name = "drop-migration-process-configuration")
+ private final List<DropMigrationProcessConfigurationStatementTestCase>
dropMigrationProcessConfigurationStatementTestCases = new LinkedList<>();
+
@XmlElement(name = "migrate-table")
private final List<MigrateTableStatementTestCase> migrateTableTestCases =
new LinkedList<>();
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/ral/migration/DropMigrationProcessConfigurationStatementTestCase.java
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/ral/migration/DropMigrationProcessConfigurationStatementTestCase.java
new file mode 100644
index 00000000000..399512f43af
--- /dev/null
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/distsql/ral/migration/DropMigrationProcessConfigurationStatementTestCase.java
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.distsql.ral.migration;
+
+import lombok.Getter;
+import lombok.Setter;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.SQLParserTestCase;
+
+import javax.xml.bind.annotation.XmlElement;
+
+/**
+ * Drop migration process configuration test case.
+ */
+@Getter
+@Setter
+public final class DropMigrationProcessConfigurationStatementTestCase extends
SQLParserTestCase {
+
+ @XmlElement(name = "conf-path")
+ private String confPath;
+}
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ral/migration.xml
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ral/migration.xml
index e367b286b17..39be29c918e 100644
---
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ral/migration.xml
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ral/migration.xml
@@ -38,6 +38,14 @@
<job-id>123</job-id>
</show-migration-status>
+ <drop-migration-process-configuration
sql-case-id="drop-migration-process-configuration-read">
+ <conf-path>/READ</conf-path>
+ </drop-migration-process-configuration>
+
+ <drop-migration-process-configuration
sql-case-id="drop-migration-process-configuration-read-rate-limiter">
+ <conf-path>/READ/RATE_LIMITER</conf-path>
+ </drop-migration-process-configuration>
+
<migrate-table sql-case-id="migrate-table-without-schema-target-db">
<source-resource-name>ds_0</source-resource-name>
<source-table-name>t_order</source-table-name>
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ral/migration.xml
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ral/migration.xml
index d830b78ef82..7a2aacddc07 100644
---
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ral/migration.xml
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/ral/migration.xml
@@ -24,6 +24,8 @@
<distsql-case id="show-migration-status" value="SHOW MIGRATION STATUS
123;" />
<distsql-case id="check-migration-with-type" value="CHECK MIGRATION 123 by
TYPE(name='DEFAULT', PROPERTIES('test-property'='4'));" />
+ <distsql-case id="drop-migration-process-configuration-read" value="DROP
MIGRATION PROCESS CONFIGURATION '/READ';" />
+ <distsql-case id="drop-migration-process-configuration-read-rate-limiter"
value="DROP MIGRATION PROCESS CONFIGURATION '/READ/RATE_LIMITER';" />
<distsql-case id="migrate-table-without-schema-target-db" value="MIGRATE
TABLE ds_0.t_order INTO t_order;" />
<distsql-case id="migrate-table-with-schema" value="MIGRATE TABLE
ds_0.public.t_order INTO t_order;" />
<distsql-case id="migrate-table-with-target-db" value="MIGRATE TABLE
ds_0.t_order INTO sharding_db.t_order;" />