You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by du...@apache.org on 2022/11/20 11:08:53 UTC
[shardingsphere] branch master updated: Add rules wrapper of parser test case xml (#22292)
This is an automated email from the ASF dual-hosted git repository.
duanzhengqiang 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 e1931ccef47 Add rules wrapper of parser test case xml (#22292)
e1931ccef47 is described below
commit e1931ccef475ff0ec439f8c0efe69fd51ad33839
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Sun Nov 20 19:08:46 2022 +0800
Add rules wrapper of parser test case xml (#22292)
---
.../drop/impl/DropShadowRuleStatementAssert.java | 2 +-
.../ExpectedCommonTableExpressColumnsClause.java | 38 --
.../ral/AlterTrafficRuleStatementTestCase.java | 2 +
.../ral/CreateTrafficRuleStatementTestCase.java | 2 +
...seDiscoveryDefinitionRuleStatementTestCase.java | 2 +
...seDiscoveryDefinitionRuleStatementTestCase.java | 2 +
...DropDatabaseDiscoveryRuleStatementTestCase.java | 2 +
.../encrypt/AlterEncryptRuleStatementTestCase.java | 2 +
.../CreateEncryptRuleStatementTestCase.java | 2 +
...terReadwriteSplittingRuleStatementTestCase.java | 2 +
...ateReadwriteSplittingRuleStatementTestCase.java | 4 +-
...ropReadwriteSplittingRuleStatementTestCase.java | 2 +
.../shadow/AlterShadowRuleStatementTestCase.java | 2 +
.../shadow/CreateShadowRuleStatementTestCase.java | 2 +
.../DropShadowAlgorithmStatementTestCase.java | 2 +
.../shadow/DropShadowRuleStatementTestCase.java | 4 +-
...lterShardingAutoTableRuleStatementTestCase.java | 2 +
...ardingTableReferenceRulesStatementTestCase.java | 2 +
.../AlterShardingTableRuleStatementTestCase.java | 2 +
...eateShardingAutoTableRuleStatementTestCase.java | 2 +
...hardingTableReferenceRuleStatementTestCase.java | 2 +
.../CreateShardingTableRuleStatementTestCase.java | 2 +
...hardingTableReferenceRuleStatementTestCase.java | 4 +-
.../src/main/resources/case/ral/updatable.xml | 58 +-
test/parser/src/main/resources/case/rdl/alter.xml | 338 ++++++-----
test/parser/src/main/resources/case/rdl/create.xml | 662 +++++++++++----------
test/parser/src/main/resources/case/rdl/drop.xml | 56 +-
27 files changed, 648 insertions(+), 554 deletions(-)
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/statement/rdl/drop/impl/DropShadowRuleStatementAssert.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/statement/rdl/drop/impl/DropShadowRuleStatementAssert.java
index a1e8d2afe24..c448ca6b8b0 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/statement/rdl/drop/impl/DropShadowRuleStatementAssert.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/statement/rdl/drop/impl/DropShadowRuleStatementAssert.java
@@ -46,7 +46,7 @@ public final class DropShadowRuleStatementAssert {
assertNull(assertContext.getText("Actual statement should not exist."), actual);
} else {
assertNotNull(assertContext.getText("Actual statement should exist."), actual);
- assertThat(assertContext.getText("Shadow rule assertion error: "), actual.getRuleNames(), is(expected.getRuleName()));
+ assertThat(assertContext.getText("Shadow rule assertion error: "), actual.getRuleNames(), is(expected.getRules()));
assertThat(assertContext.getText("Shadow rule assertion error: "), actual.isIfExists(), is(expected.isIfExists()));
}
}
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/segment/impl/with/ExpectedCommonTableExpressColumnsClause.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/segment/impl/with/ExpectedCommonTableExpressColumnsClause.java
deleted file mode 100644
index 31f747895c1..00000000000
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/segment/impl/with/ExpectedCommonTableExpressColumnsClause.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * 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.internal.cases.parser.domain.segment.impl.with;
-
-import lombok.Getter;
-import lombok.Setter;
-import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.domain.segment.AbstractExpectedSQLSegment;
-import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.domain.segment.impl.column.ExpectedColumn;
-
-import javax.xml.bind.annotation.XmlElement;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * Expected common table expression columns clause.
- */
-@Getter
-@Setter
-public final class ExpectedCommonTableExpressColumnsClause extends AbstractExpectedSQLSegment {
-
- @XmlElement(name = "column")
- private List<ExpectedColumn> columns = new LinkedList<>();
-}
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/ral/AlterTrafficRuleStatementTestCase.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/ral/AlterTrafficRuleStatementTestCase.java
index 7751a1381ec..6cf41792d0d 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/ral/AlterTrafficRuleStatementTestCase.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/ral/AlterTrafficRuleStatementTestCase.java
@@ -22,6 +22,7 @@ import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.domain.se
import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.domain.statement.SQLParserTestCase;
import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
import java.util.LinkedList;
import java.util.List;
@@ -31,6 +32,7 @@ import java.util.List;
@Getter
public final class AlterTrafficRuleStatementTestCase extends SQLParserTestCase {
+ @XmlElementWrapper
@XmlElement(name = "rule")
private final List<ExpectedTrafficRule> rules = new LinkedList<>();
}
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/ral/CreateTrafficRuleStatementTestCase.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/ral/CreateTrafficRuleStatementTestCase.java
index 5ba0d2cce0c..13b1b283a31 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/ral/CreateTrafficRuleStatementTestCase.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/ral/CreateTrafficRuleStatementTestCase.java
@@ -22,6 +22,7 @@ import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.domain.se
import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.domain.statement.SQLParserTestCase;
import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
import java.util.LinkedList;
import java.util.List;
@@ -31,6 +32,7 @@ import java.util.List;
@Getter
public final class CreateTrafficRuleStatementTestCase extends SQLParserTestCase {
+ @XmlElementWrapper
@XmlElement(name = "rule")
private final List<ExpectedTrafficRule> rules = new LinkedList<>();
}
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/dbdiscovery/AlterDatabaseDiscoveryDefinitionRuleStatementTestCase.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/dbdiscovery/AlterDatabaseDiscoveryDefinitionRuleStatementTestCase.java
index aca64845303..c2315e7da6d 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/dbdiscovery/AlterDatabaseDiscoveryDefinitionRuleStatementTestCase.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/dbdiscovery/AlterDatabaseDiscoveryDefinitionRuleStatementTestCase.java
@@ -22,6 +22,7 @@ import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.domain.se
import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.domain.statement.SQLParserTestCase;
import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
import java.util.LinkedList;
import java.util.List;
@@ -31,6 +32,7 @@ import java.util.List;
@Getter
public final class AlterDatabaseDiscoveryDefinitionRuleStatementTestCase extends SQLParserTestCase {
+ @XmlElementWrapper
@XmlElement(name = "rule")
private final List<ExpectedDatabaseDiscoveryDefinitionRule> rules = new LinkedList<>();
}
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/dbdiscovery/CreateDatabaseDiscoveryDefinitionRuleStatementTestCase.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/dbdiscovery/CreateDatabaseDiscoveryDefinitionRuleStatementTestCase.java
index e1819a912e6..2750aa50c9e 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/dbdiscovery/CreateDatabaseDiscoveryDefinitionRuleStatementTestCase.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/dbdiscovery/CreateDatabaseDiscoveryDefinitionRuleStatementTestCase.java
@@ -22,6 +22,7 @@ import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.domain.se
import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.domain.statement.SQLParserTestCase;
import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
import java.util.LinkedList;
import java.util.List;
@@ -31,6 +32,7 @@ import java.util.List;
@Getter
public final class CreateDatabaseDiscoveryDefinitionRuleStatementTestCase extends SQLParserTestCase {
+ @XmlElementWrapper
@XmlElement(name = "rule")
private final List<ExpectedDatabaseDiscoveryDefinitionRule> rules = new LinkedList<>();
}
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/dbdiscovery/DropDatabaseDiscoveryRuleStatementTestCase.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/dbdiscovery/DropDatabaseDiscoveryRuleStatementTestCase.java
index 10ad139a5c7..f9ae96d4150 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/dbdiscovery/DropDatabaseDiscoveryRuleStatementTestCase.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/dbdiscovery/DropDatabaseDiscoveryRuleStatementTestCase.java
@@ -23,6 +23,7 @@ import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.domain.st
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
import java.util.LinkedList;
import java.util.List;
@@ -33,6 +34,7 @@ import java.util.List;
@Setter
public final class DropDatabaseDiscoveryRuleStatementTestCase extends SQLParserTestCase {
+ @XmlElementWrapper
@XmlElement(name = "rule")
private final List<String> rules = new LinkedList<>();
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/encrypt/AlterEncryptRuleStatementTestCase.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/encrypt/AlterEncryptRuleStatementTestCase.java
index a1d81b502a9..3ca333ee75b 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/encrypt/AlterEncryptRuleStatementTestCase.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/encrypt/AlterEncryptRuleStatementTestCase.java
@@ -22,6 +22,7 @@ import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.domain.se
import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.domain.statement.SQLParserTestCase;
import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
import java.util.LinkedList;
import java.util.List;
@@ -31,6 +32,7 @@ import java.util.List;
@Getter
public final class AlterEncryptRuleStatementTestCase extends SQLParserTestCase {
+ @XmlElementWrapper
@XmlElement(name = "rule")
private final List<ExpectedEncryptRule> rules = new LinkedList<>();
}
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/encrypt/CreateEncryptRuleStatementTestCase.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/encrypt/CreateEncryptRuleStatementTestCase.java
index c54112ccf99..668cdbaf5c7 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/encrypt/CreateEncryptRuleStatementTestCase.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/encrypt/CreateEncryptRuleStatementTestCase.java
@@ -22,6 +22,7 @@ import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.domain.se
import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.domain.statement.SQLParserTestCase;
import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
import java.util.LinkedList;
import java.util.List;
@@ -31,6 +32,7 @@ import java.util.List;
@Getter
public final class CreateEncryptRuleStatementTestCase extends SQLParserTestCase {
+ @XmlElementWrapper
@XmlElement(name = "rule")
private final List<ExpectedEncryptRule> rules = new LinkedList<>();
}
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/readwritesplitting/AlterReadwriteSplittingRuleStatementTestCase.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/readwritesplitting/AlterReadwriteSplittingRuleStatementTestCase.java
index 91c50d6f874..d0bddd142c3 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/readwritesplitting/AlterReadwriteSplittingRuleStatementTestCase.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/readwritesplitting/AlterReadwriteSplittingRuleStatementTestCase.java
@@ -22,6 +22,7 @@ import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.domain.se
import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.domain.statement.SQLParserTestCase;
import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
import java.util.LinkedList;
import java.util.List;
@@ -31,6 +32,7 @@ import java.util.List;
@Getter
public final class AlterReadwriteSplittingRuleStatementTestCase extends SQLParserTestCase {
+ @XmlElementWrapper
@XmlElement(name = "rule")
private final List<ExceptedReadwriteSplittingRule> rules = new LinkedList<>();
}
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/readwritesplitting/CreateReadwriteSplittingRuleStatementTestCase.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/readwritesplitting/CreateReadwriteSplittingRuleStatementTestCase.java
index 01c85b643fa..29ddd1b0f59 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/readwritesplitting/CreateReadwriteSplittingRuleStatementTestCase.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/readwritesplitting/CreateReadwriteSplittingRuleStatementTestCase.java
@@ -22,6 +22,7 @@ import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.domain.se
import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.domain.statement.SQLParserTestCase;
import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
import java.util.LinkedList;
import java.util.List;
@@ -31,6 +32,7 @@ import java.util.List;
@Getter
public final class CreateReadwriteSplittingRuleStatementTestCase extends SQLParserTestCase {
+ @XmlElementWrapper
@XmlElement(name = "rule")
- private List<ExceptedReadwriteSplittingRule> rules = new LinkedList<>();
+ private final List<ExceptedReadwriteSplittingRule> rules = new LinkedList<>();
}
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/readwritesplitting/DropReadwriteSplittingRuleStatementTestCase.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/readwritesplitting/DropReadwriteSplittingRuleStatementTestCase.java
index 209c551249a..f63381f7f4d 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/readwritesplitting/DropReadwriteSplittingRuleStatementTestCase.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/readwritesplitting/DropReadwriteSplittingRuleStatementTestCase.java
@@ -21,6 +21,7 @@ import lombok.Getter;
import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.domain.statement.DropRuleStatementTestCase;
import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
import java.util.LinkedList;
import java.util.List;
@@ -30,6 +31,7 @@ import java.util.List;
@Getter
public final class DropReadwriteSplittingRuleStatementTestCase extends DropRuleStatementTestCase {
+ @XmlElementWrapper
@XmlElement(name = "rule")
private final List<String> rules = new LinkedList<>();
}
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/shadow/AlterShadowRuleStatementTestCase.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/shadow/AlterShadowRuleStatementTestCase.java
index de04c6bd958..be5f96f0576 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/shadow/AlterShadowRuleStatementTestCase.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/shadow/AlterShadowRuleStatementTestCase.java
@@ -22,6 +22,7 @@ import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.domain.se
import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.domain.statement.SQLParserTestCase;
import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
import java.util.LinkedList;
import java.util.List;
@@ -31,6 +32,7 @@ import java.util.List;
@Getter
public final class AlterShadowRuleStatementTestCase extends SQLParserTestCase {
+ @XmlElementWrapper
@XmlElement(name = "rule")
private final List<ExpectedShadowRule> rules = new LinkedList<>();
}
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/shadow/CreateShadowRuleStatementTestCase.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/shadow/CreateShadowRuleStatementTestCase.java
index b6b5d33315e..b15069b730d 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/shadow/CreateShadowRuleStatementTestCase.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/shadow/CreateShadowRuleStatementTestCase.java
@@ -22,6 +22,7 @@ import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.domain.se
import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.domain.statement.SQLParserTestCase;
import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
import java.util.LinkedList;
import java.util.List;
@@ -31,6 +32,7 @@ import java.util.List;
@Getter
public final class CreateShadowRuleStatementTestCase extends SQLParserTestCase {
+ @XmlElementWrapper
@XmlElement(name = "rule")
private final List<ExpectedShadowRule> rules = new LinkedList<>();
}
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/shadow/DropShadowAlgorithmStatementTestCase.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/shadow/DropShadowAlgorithmStatementTestCase.java
index 3a5f9f8be49..94a4ee4eee3 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/shadow/DropShadowAlgorithmStatementTestCase.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/shadow/DropShadowAlgorithmStatementTestCase.java
@@ -23,6 +23,7 @@ import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.domain.st
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
import java.util.LinkedList;
import java.util.List;
@@ -36,6 +37,7 @@ public final class DropShadowAlgorithmStatementTestCase extends SQLParserTestCas
@XmlAttribute(name = "if-exists")
private boolean ifExists;
+ @XmlElementWrapper
@XmlElement(name = "rule")
private final List<String> ruleName = new LinkedList<>();
}
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/shadow/DropShadowRuleStatementTestCase.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/shadow/DropShadowRuleStatementTestCase.java
index be51a1f997f..d1f400f4f55 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/shadow/DropShadowRuleStatementTestCase.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/shadow/DropShadowRuleStatementTestCase.java
@@ -23,6 +23,7 @@ import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.domain.st
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
import java.util.LinkedList;
import java.util.List;
@@ -36,6 +37,7 @@ public final class DropShadowRuleStatementTestCase extends SQLParserTestCase {
@XmlAttribute(name = "if-exists")
private boolean ifExists;
+ @XmlElementWrapper(name = "rules")
@XmlElement(name = "rule")
- private final List<String> ruleName = new LinkedList<>();
+ private final List<String> rules = new LinkedList<>();
}
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/sharding/AlterShardingAutoTableRuleStatementTestCase.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/sharding/AlterShardingAutoTableRuleStatementTestCase.java
index 99f56db0d9c..2dd69b4e4de 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/sharding/AlterShardingAutoTableRuleStatementTestCase.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/sharding/AlterShardingAutoTableRuleStatementTestCase.java
@@ -22,6 +22,7 @@ import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.domain.se
import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.domain.statement.SQLParserTestCase;
import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
import java.util.LinkedList;
import java.util.List;
@@ -31,6 +32,7 @@ import java.util.List;
@Getter
public final class AlterShardingAutoTableRuleStatementTestCase extends SQLParserTestCase {
+ @XmlElementWrapper
@XmlElement(name = "rule")
private final List<ExpectedAutoTableRule> rules = new LinkedList<>();
}
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/sharding/AlterShardingTableReferenceRulesStatementTestCase.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/sharding/AlterShardingTableReferenceRulesStatementTestCase.java
index ba49a94b9f8..b989169c82a 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/sharding/AlterShardingTableReferenceRulesStatementTestCase.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/sharding/AlterShardingTableReferenceRulesStatementTestCase.java
@@ -22,6 +22,7 @@ import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.domain.se
import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.domain.statement.SQLParserTestCase;
import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
import java.util.LinkedList;
import java.util.List;
@@ -31,6 +32,7 @@ import java.util.List;
@Getter
public final class AlterShardingTableReferenceRulesStatementTestCase extends SQLParserTestCase {
+ @XmlElementWrapper
@XmlElement(name = "rule")
private final List<ExpectedShardingTableReferenceRule> rules = new LinkedList<>();
}
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/sharding/AlterShardingTableRuleStatementTestCase.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/sharding/AlterShardingTableRuleStatementTestCase.java
index 19115b2eb6a..c6ac5c0a054 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/sharding/AlterShardingTableRuleStatementTestCase.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/sharding/AlterShardingTableRuleStatementTestCase.java
@@ -22,6 +22,7 @@ import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.domain.se
import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.domain.statement.SQLParserTestCase;
import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
import java.util.LinkedList;
import java.util.List;
@@ -31,6 +32,7 @@ import java.util.List;
@Getter
public final class AlterShardingTableRuleStatementTestCase extends SQLParserTestCase {
+ @XmlElementWrapper
@XmlElement(name = "rule")
private final List<ExpectedTableRule> rules = new LinkedList<>();
}
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/sharding/CreateShardingAutoTableRuleStatementTestCase.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/sharding/CreateShardingAutoTableRuleStatementTestCase.java
index 689f262209a..bc9b206b7d8 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/sharding/CreateShardingAutoTableRuleStatementTestCase.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/sharding/CreateShardingAutoTableRuleStatementTestCase.java
@@ -22,6 +22,7 @@ import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.domain.se
import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.domain.statement.SQLParserTestCase;
import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
import java.util.LinkedList;
import java.util.List;
@@ -31,6 +32,7 @@ import java.util.List;
@Getter
public final class CreateShardingAutoTableRuleStatementTestCase extends SQLParserTestCase {
+ @XmlElementWrapper
@XmlElement(name = "rule")
private final List<ExpectedAutoTableRule> rules = new LinkedList<>();
}
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/sharding/CreateShardingTableReferenceRuleStatementTestCase.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/sharding/CreateShardingTableReferenceRuleStatementTestCase.java
index a59d51e3edd..c182a671015 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/sharding/CreateShardingTableReferenceRuleStatementTestCase.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/sharding/CreateShardingTableReferenceRuleStatementTestCase.java
@@ -22,6 +22,7 @@ import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.domain.se
import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.domain.statement.SQLParserTestCase;
import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
import java.util.LinkedList;
import java.util.List;
@@ -31,6 +32,7 @@ import java.util.List;
@Getter
public final class CreateShardingTableReferenceRuleStatementTestCase extends SQLParserTestCase {
+ @XmlElementWrapper
@XmlElement(name = "rule")
private final List<ExpectedShardingTableReferenceRule> rules = new LinkedList<>();
}
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/sharding/CreateShardingTableRuleStatementTestCase.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/sharding/CreateShardingTableRuleStatementTestCase.java
index 5e7e282e2fd..3b9043c7e8b 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/sharding/CreateShardingTableRuleStatementTestCase.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/sharding/CreateShardingTableRuleStatementTestCase.java
@@ -22,6 +22,7 @@ import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.domain.se
import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.domain.statement.SQLParserTestCase;
import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
import java.util.LinkedList;
import java.util.List;
@@ -31,6 +32,7 @@ import java.util.List;
@Getter
public final class CreateShardingTableRuleStatementTestCase extends SQLParserTestCase {
+ @XmlElementWrapper
@XmlElement(name = "rule")
private final List<ExpectedTableRule> rules = new LinkedList<>();
}
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/sharding/DropShardingTableReferenceRuleStatementTestCase.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/sharding/DropShardingTableReferenceRuleStatementTestCase.java
index 847a3daadc2..040cbb49c0a 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/sharding/DropShardingTableReferenceRuleStatementTestCase.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/parser/domain/statement/rdl/rule/sharding/DropShardingTableReferenceRuleStatementTestCase.java
@@ -18,20 +18,20 @@
package org.apache.shardingsphere.test.sql.parser.internal.cases.parser.domain.statement.rdl.rule.sharding;
import lombok.Getter;
-import lombok.Setter;
import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.domain.statement.DropRuleStatementTestCase;
import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
import java.util.LinkedList;
import java.util.List;
/**
* Drop sharding table reference rule statement test case.
*/
-@Setter
@Getter
public final class DropShardingTableReferenceRuleStatementTestCase extends DropRuleStatementTestCase {
+ @XmlElementWrapper
@XmlElement(name = "rule")
private final List<String> rules = new LinkedList<>();
}
diff --git a/test/parser/src/main/resources/case/ral/updatable.xml b/test/parser/src/main/resources/case/ral/updatable.xml
index e6fd8667663..ae4618567f4 100644
--- a/test/parser/src/main/resources/case/ral/updatable.xml
+++ b/test/parser/src/main/resources/case/ral/updatable.xml
@@ -35,35 +35,41 @@
<alter-xa-transaction-rule sql-case-id="alter-xa-transaction-rule" />
<create-traffic-rule sql-case-id="create-traffic-rule">
- <rule name="sql_match_traffic">
- <label>OLTP</label>
- <traffic-algorithm algorithm-name="SQL_MATCH">
- <properties>
- <property key="sql" value="SELECT * FROM t_order WHERE order_id = ?; UPDATE t_order SET order_id = ?;" />
- </properties>
- </traffic-algorithm>
- <load-balancer algorithm-name="RANDOM">
- <properties>
- <property key="key" value="value" />
- </properties>
- </load-balancer>
- </rule>
+ <rules>
+ <rule name="sql_match_traffic">
+ <label>OLTP</label>
+ <traffic-algorithm algorithm-name="SQL_MATCH">
+ <properties>
+ <property key="sql" value="SELECT * FROM t_order WHERE order_id = ?; UPDATE t_order SET order_id = ?;" />
+ </properties>
+ </traffic-algorithm>
+ <load-balancer algorithm-name="RANDOM">
+ <properties>
+ <property key="key" value="value" />
+ </properties>
+ </load-balancer>
+ </rule>
+ </rules>
</create-traffic-rule>
+
<alter-traffic-rule sql-case-id="alter-traffic-rule">
- <rule name="sql_match_traffic">
- <label>OLTP</label>
- <traffic-algorithm algorithm-name="SQL_MATCH">
- <properties>
- <property key="sql" value="SELECT * FROM t_order WHERE order_id = ?; UPDATE t_order SET order_id = ?;" />
- </properties>
- </traffic-algorithm>
- <load-balancer algorithm-name="RANDOM">
- <properties>
- <property key="key" value="value" />
- </properties>
- </load-balancer>
- </rule>
+ <rules>
+ <rule name="sql_match_traffic">
+ <label>OLTP</label>
+ <traffic-algorithm algorithm-name="SQL_MATCH">
+ <properties>
+ <property key="sql" value="SELECT * FROM t_order WHERE order_id = ?; UPDATE t_order SET order_id = ?;" />
+ </properties>
+ </traffic-algorithm>
+ <load-balancer algorithm-name="RANDOM">
+ <properties>
+ <property key="key" value="value" />
+ </properties>
+ </load-balancer>
+ </rule>
+ </rules>
</alter-traffic-rule>
+
<drop-traffic-rule sql-case-id="drop-traffic-rule">
<rule-name>rule_name</rule-name>
</drop-traffic-rule>
diff --git a/test/parser/src/main/resources/case/rdl/alter.xml b/test/parser/src/main/resources/case/rdl/alter.xml
index fcf999f4873..9c63af83f9b 100644
--- a/test/parser/src/main/resources/case/rdl/alter.xml
+++ b/test/parser/src/main/resources/case/rdl/alter.xml
@@ -64,200 +64,224 @@
</alter-storage-unit>
<alter-sharding-auto-table-rule sql-case-id="alter-sharding-auto-table-rule">
- <rule name="t_order" table-strategy-column="order_id" key-generate-strategy-column="another_id">
- <data-source>ms_group_0</data-source>
- <data-source>ms_group_1</data-source>
- <table-strategy algorithm-name="hash_mod">
- <properties>
- <property key="sharding-count" value="4" />
- </properties>
- </table-strategy>
- <key-generate-strategy algorithm-name="snowflake" />
- </rule>
+ <rules>
+ <rule name="t_order" table-strategy-column="order_id" key-generate-strategy-column="another_id">
+ <data-source>ms_group_0</data-source>
+ <data-source>ms_group_1</data-source>
+ <table-strategy algorithm-name="hash_mod">
+ <properties>
+ <property key="sharding-count" value="4" />
+ </properties>
+ </table-strategy>
+ <key-generate-strategy algorithm-name="snowflake" />
+ </rule>
+ </rules>
</alter-sharding-auto-table-rule>
<alter-sharding-auto-table-rule sql-case-id="alter-sharding-auto-table-rule-with-inline-expression">
- <rule name="t_order" table-strategy-column="order_id" key-generate-strategy-column="another_id">
- <data-source>ms_group_${0..1}</data-source>
- <table-strategy algorithm-name="hash_mod">
- <properties>
- <property key="sharding-count" value="4" />
- </properties>
- </table-strategy>
- <key-generate-strategy algorithm-name="snowflake" />
- </rule>
+ <rules>
+ <rule name="t_order" table-strategy-column="order_id" key-generate-strategy-column="another_id">
+ <data-source>ms_group_${0..1}</data-source>
+ <table-strategy algorithm-name="hash_mod">
+ <properties>
+ <property key="sharding-count" value="4" />
+ </properties>
+ </table-strategy>
+ <key-generate-strategy algorithm-name="snowflake" />
+ </rule>
+ </rules>
</alter-sharding-auto-table-rule>
<alter-sharding-table-rule sql-case-id="alter-sharding-table-rule">
- <rule name="t_order" key-generate-strategy-column="another_id">
- <data-node>ms_group_${0..1}.t_order_${0..1}</data-node>
- <table-strategy type="standard" sharding-column="user_id">
- <algorithm-segment algorithm-name="INLINE">
- <properties>
- <property key="algorithm-expression" value="t_order_${user_id % 2}" />
- </properties>
- </algorithm-segment>
- </table-strategy>
- <database-strategy type="standard" sharding-column="order_id">
- <algorithm-segment algorithm-name="INLINE">
- <properties>
- <property key="algorithm-expression" value="ms_group_${order_id % 2}" />
- </properties>
- </algorithm-segment>
- </database-strategy>
- <key-generate-strategy algorithm-name="snowflake" />
- </rule>
+ <rules>
+ <rule name="t_order" key-generate-strategy-column="another_id">
+ <data-node>ms_group_${0..1}.t_order_${0..1}</data-node>
+ <table-strategy type="standard" sharding-column="user_id">
+ <algorithm-segment algorithm-name="INLINE">
+ <properties>
+ <property key="algorithm-expression" value="t_order_${user_id % 2}" />
+ </properties>
+ </algorithm-segment>
+ </table-strategy>
+ <database-strategy type="standard" sharding-column="order_id">
+ <algorithm-segment algorithm-name="INLINE">
+ <properties>
+ <property key="algorithm-expression" value="ms_group_${order_id % 2}" />
+ </properties>
+ </algorithm-segment>
+ </database-strategy>
+ <key-generate-strategy algorithm-name="snowflake" />
+ </rule>
+ </rules>
</alter-sharding-table-rule>
<alter-sharding-table-rule sql-case-id="alter-sharding-table-rule-complex">
- <rule name="t_order" key-generate-strategy-column="another_id">
- <data-node>ms_group_${0..1}_${0..1}.t_order_${0..1}</data-node>
- <table-strategy type="standard" sharding-column="user_id">
- <algorithm-segment algorithm-name="INLINE">
- <properties>
- <property key="algorithm-expression" value="t_order_${user_id % 2}" />
- </properties>
- </algorithm-segment>
- </table-strategy>
- <database-strategy type="complex" sharding-column="order_id,user_id">
- <algorithm-segment algorithm-name="INLINE">
- <properties>
- <property key="algorithm-expression" value="ms_group_${order_id % 2}_${user_id % 2}" />
- </properties>
- </algorithm-segment>
- </database-strategy>
- <key-generate-strategy algorithm-name="snowflake" />
- </rule>
+ <rules>
+ <rule name="t_order" key-generate-strategy-column="another_id">
+ <data-node>ms_group_${0..1}_${0..1}.t_order_${0..1}</data-node>
+ <table-strategy type="standard" sharding-column="user_id">
+ <algorithm-segment algorithm-name="INLINE">
+ <properties>
+ <property key="algorithm-expression" value="t_order_${user_id % 2}" />
+ </properties>
+ </algorithm-segment>
+ </table-strategy>
+ <database-strategy type="complex" sharding-column="order_id,user_id">
+ <algorithm-segment algorithm-name="INLINE">
+ <properties>
+ <property key="algorithm-expression" value="ms_group_${order_id % 2}_${user_id % 2}" />
+ </properties>
+ </algorithm-segment>
+ </database-strategy>
+ <key-generate-strategy algorithm-name="snowflake" />
+ </rule>
+ </rules>
</alter-sharding-table-rule>
<alter-sharding-table-reference-rule sql-case-id="alter-sharding-table-reference-rule">
- <rule table-groups="t_order,t_order_item" />
- <rule table-groups="t_1,t_2" />
+ <rules>
+ <rule table-groups="t_order,t_order_item" />
+ <rule table-groups="t_1,t_2" />
+ </rules>
</alter-sharding-table-reference-rule>
<alter-readwrite-splitting-rule sql-case-id="alter-readwrite-splitting-rule">
- <rule name="ms_group_0" auto-aware-resource="group_0" load-balancer="random">
- <properties>
- <property key="read_weight" value="2:1" />
- </properties>
- </rule>
- <rule name="ms_group_1" write-data-source="primary_ds" load-balancer="random">
- <read-data-source>replica_ds_0</read-data-source>
- <read-data-source>replica_ds_1</read-data-source>
- </rule>
+ <rules>
+ <rule name="ms_group_0" auto-aware-resource="group_0" load-balancer="random">
+ <properties>
+ <property key="read_weight" value="2:1" />
+ </properties>
+ </rule>
+ <rule name="ms_group_1" write-data-source="primary_ds" load-balancer="random">
+ <read-data-source>replica_ds_0</read-data-source>
+ <read-data-source>replica_ds_1</read-data-source>
+ </rule>
+ </rules>
</alter-readwrite-splitting-rule>
<alter-database-discovery-definition-rule sql-case-id="alter-database-discovery-definition-rule">
- <rule rule-name="ha_group_0" type="mgr">
- <data-source>ds_0</data-source>
- <data-source>ds_1</data-source>
- <discovery-type algorithm-name="mgr">
+ <rules>
+ <rule rule-name="ha_group_0" type="mgr">
+ <data-source>ds_0</data-source>
+ <data-source>ds_1</data-source>
+ <discovery-type algorithm-name="mgr">
+ <properties>
+ <property key="groupName" value="92504d5b-6dec" />
+ </properties>
+ </discovery-type>
<properties>
- <property key="groupName" value="92504d5b-6dec" />
+ <property key="keepAliveCron" value="0/5 * * * * ?" />
</properties>
- </discovery-type>
- <properties>
- <property key="keepAliveCron" value="0/5 * * * * ?" />
- </properties>
- </rule>
- <rule rule-name="ha_group_1" type="mgr2">
- <data-source>ds_2</data-source>
- <data-source>ds_3</data-source>
- <discovery-type algorithm-name="mgr2">
+ </rule>
+ <rule rule-name="ha_group_1" type="mgr2">
+ <data-source>ds_2</data-source>
+ <data-source>ds_3</data-source>
+ <discovery-type algorithm-name="mgr2">
+ <properties>
+ <property key="groupName" value="92504d5b-6dec-2" />
+ </properties>
+ </discovery-type>
<properties>
- <property key="groupName" value="92504d5b-6dec-2" />
+ <property key="keepAliveCron" value="0/6 * * * * ?" />
</properties>
- </discovery-type>
- <properties>
- <property key="keepAliveCron" value="0/6 * * * * ?" />
- </properties>
- </rule>
+ </rule>
+ </rules>
</alter-database-discovery-definition-rule>
<alter-encrypt-rule sql-case-id="alter-encrypt-rule">
- <rule name="t_encrypt">
- <column name="user_id" plain-column="user_plain" cipher-column="user_cipher">
- <encryptor algorithm-name="AES">
- <properties>
- <property key="aes-key-value" value="123456abc" />
- </properties>
- </encryptor>
- </column>
- <column name="order_id" cipher-column="order_cipher">
- <encryptor algorithm-name="MD5" />
- </column>
- </rule>
+ <rules>
+ <rule name="t_encrypt">
+ <column name="user_id" plain-column="user_plain" cipher-column="user_cipher">
+ <encryptor algorithm-name="AES">
+ <properties>
+ <property key="aes-key-value" value="123456abc" />
+ </properties>
+ </encryptor>
+ </column>
+ <column name="order_id" cipher-column="order_cipher">
+ <encryptor algorithm-name="MD5" />
+ </column>
+ </rule>
+ </rules>
</alter-encrypt-rule>
<alter-encrypt-rule sql-case-id="alter-encrypt-rule-with-assisted-query-column">
- <rule name="t_encrypt">
- <column name="user_id" plain-column="user_plain" cipher-column="user_cipher" assisted-query-column="assisted_column">
- <encryptor algorithm-name="AES">
- <properties>
- <property key="aes-key-value" value="123456abc" />
- </properties>
- </encryptor>
- <assisted-query-encryptor algorithm-name="MD5" />
- </column>
- <column name="order_id" cipher-column="order_cipher">
- <encryptor algorithm-name="MD5" />
- </column>
- </rule>
+ <rules>
+ <rule name="t_encrypt">
+ <column name="user_id" plain-column="user_plain" cipher-column="user_cipher" assisted-query-column="assisted_column">
+ <encryptor algorithm-name="AES">
+ <properties>
+ <property key="aes-key-value" value="123456abc" />
+ </properties>
+ </encryptor>
+ <assisted-query-encryptor algorithm-name="MD5" />
+ </column>
+ <column name="order_id" cipher-column="order_cipher">
+ <encryptor algorithm-name="MD5" />
+ </column>
+ </rule>
+ </rules>
</alter-encrypt-rule>
<alter-encrypt-rule sql-case-id="alter-encrypt-rule-with-like-query-column">
- <rule name="t_encrypt">
- <column name="user_id" plain-column="user_plain" cipher-column="user_cipher" like-query-column="like_column">
- <encryptor algorithm-name="AES">
- <properties>
- <property key="aes-key-value" value="123456abc"/>
- </properties>
- </encryptor>
- <like-query-encryptor algorithm-name="CHAR_DIGEST_LIKE"/>
- </column>
- <column name="order_id" cipher-column="order_cipher">
- <encryptor algorithm-name="MD5"/>
- </column>
- </rule>
+ <rules>
+ <rule name="t_encrypt">
+ <column name="user_id" plain-column="user_plain" cipher-column="user_cipher" like-query-column="like_column">
+ <encryptor algorithm-name="AES">
+ <properties>
+ <property key="aes-key-value" value="123456abc"/>
+ </properties>
+ </encryptor>
+ <like-query-encryptor algorithm-name="CHAR_DIGEST_LIKE"/>
+ </column>
+ <column name="order_id" cipher-column="order_cipher">
+ <encryptor algorithm-name="MD5"/>
+ </column>
+ </rule>
+ </rules>
</alter-encrypt-rule>
<alter-encrypt-rule sql-case-id="alter-encrypt-rule-with-query-with-cipher-column">
- <rule name="t_encrypt" query-with-cipher-column="false">
- <column name="user_id" plain-column="user_plain" cipher-column="user_cipher">
- <encryptor algorithm-name="AES">
- <properties>
- <property key="aes-key-value" value="123456abc" />
- </properties>
- </encryptor>
- </column>
- <column name="order_id" cipher-column="order_cipher">
- <encryptor algorithm-name="MD5" />
- </column>
- </rule>
+ <rules>
+ <rule name="t_encrypt" query-with-cipher-column="false">
+ <column name="user_id" plain-column="user_plain" cipher-column="user_cipher">
+ <encryptor algorithm-name="AES">
+ <properties>
+ <property key="aes-key-value" value="123456abc" />
+ </properties>
+ </encryptor>
+ </column>
+ <column name="order_id" cipher-column="order_cipher">
+ <encryptor algorithm-name="MD5" />
+ </column>
+ </rule>
+ </rules>
</alter-encrypt-rule>
<alter-shadow-rule sql-case-id="alter-shadow-rule">
- <rule name="rule" rule-name="shadow_rule" source="demo_ds" shadow="demo_ds_shadow">
- <table-rule table-name="t_order">
- <shadow-algorithm algorithm-id="shadow_rule_t_order_regex_match_0">
- <algorithm algorithm-name="REGEX_MATCH">
- <properties>
- <property key="operation" value="insert" />
- <property key="column" value="user_id" />
- <property key="regex" value="[1]" />
- </properties>
- </algorithm>
- </shadow-algorithm>
- <shadow-algorithm algorithm-id="shadow_rule_t_order_simple_hint_1">
- <algorithm algorithm-name="SIMPLE_HINT">
- <properties>
- <property key="shadow" value="true" />
- <property key="foo" value="bar" />
- </properties>
- </algorithm>
- </shadow-algorithm>
- </table-rule>
- </rule>
+ <rules>
+ <rule name="rule" rule-name="shadow_rule" source="demo_ds" shadow="demo_ds_shadow">
+ <table-rule table-name="t_order">
+ <shadow-algorithm algorithm-id="shadow_rule_t_order_regex_match_0">
+ <algorithm algorithm-name="REGEX_MATCH">
+ <properties>
+ <property key="operation" value="insert" />
+ <property key="column" value="user_id" />
+ <property key="regex" value="[1]" />
+ </properties>
+ </algorithm>
+ </shadow-algorithm>
+ <shadow-algorithm algorithm-id="shadow_rule_t_order_simple_hint_1">
+ <algorithm algorithm-name="SIMPLE_HINT">
+ <properties>
+ <property key="shadow" value="true" />
+ <property key="foo" value="bar" />
+ </properties>
+ </algorithm>
+ </shadow-algorithm>
+ </table-rule>
+ </rule>
+ </rules>
</alter-shadow-rule>
<alter-default-shadow-algorithm sql-case-id="alter-default-shadow-algorithm">
diff --git a/test/parser/src/main/resources/case/rdl/create.xml b/test/parser/src/main/resources/case/rdl/create.xml
index 19ac01f032b..825e7c35917 100644
--- a/test/parser/src/main/resources/case/rdl/create.xml
+++ b/test/parser/src/main/resources/case/rdl/create.xml
@@ -73,186 +73,204 @@
</register-storage-unit>
<create-sharding-auto-table-rule sql-case-id="create-sharding-auto-table-rule">
- <rule name="t_order" table-strategy-column="order_id" key-generate-strategy-column="another_id">
- <data-source>ms_group_0</data-source>
- <data-source>ms_group_1</data-source>
- <table-strategy algorithm-name="hash_mod">
- <properties>
- <property key="sharding-count" value="4"/>
- </properties>
- </table-strategy>
- <key-generate-strategy algorithm-name="snowflake" />
- </rule>
+ <rules>
+ <rule name="t_order" table-strategy-column="order_id" key-generate-strategy-column="another_id">
+ <data-source>ms_group_0</data-source>
+ <data-source>ms_group_1</data-source>
+ <table-strategy algorithm-name="hash_mod">
+ <properties>
+ <property key="sharding-count" value="4"/>
+ </properties>
+ </table-strategy>
+ <key-generate-strategy algorithm-name="snowflake" />
+ </rule>
+ </rules>
</create-sharding-auto-table-rule>
<create-sharding-auto-table-rule sql-case-id="create-sharding-auto-table-rule-with-quota">
- <rule name="t_order" table-strategy-column="order_id" key-generate-strategy-column="another_id">
- <data-source>ms_group_0</data-source>
- <data-source>ms_group_1</data-source>
- <table-strategy algorithm-name="hash_mod">
- <properties>
- <property key="sharding-count" value="4"/>
- </properties>
- </table-strategy>
- <key-generate-strategy algorithm-name="snowflake" />
- </rule>
+ <rules>
+ <rule name="t_order" table-strategy-column="order_id" key-generate-strategy-column="another_id">
+ <data-source>ms_group_0</data-source>
+ <data-source>ms_group_1</data-source>
+ <table-strategy algorithm-name="hash_mod">
+ <properties>
+ <property key="sharding-count" value="4"/>
+ </properties>
+ </table-strategy>
+ <key-generate-strategy algorithm-name="snowflake" />
+ </rule>
+ </rules>
</create-sharding-auto-table-rule>
<create-sharding-auto-table-rule sql-case-id="create-sharding-auto-table-rule-with-inline-expression">
- <rule name="t_order" table-strategy-column="order_id" key-generate-strategy-column="another_id">
- <data-source>ms_group_${0..1}</data-source>
- <table-strategy algorithm-name="hash_mod">
- <properties>
- <property key="sharding-count" value="4" />
- </properties>
- </table-strategy>
- <key-generate-strategy algorithm-name="snowflake" />
- </rule>
+ <rules>
+ <rule name="t_order" table-strategy-column="order_id" key-generate-strategy-column="another_id">
+ <data-source>ms_group_${0..1}</data-source>
+ <table-strategy algorithm-name="hash_mod">
+ <properties>
+ <property key="sharding-count" value="4" />
+ </properties>
+ </table-strategy>
+ <key-generate-strategy algorithm-name="snowflake" />
+ </rule>
+ </rules>
</create-sharding-auto-table-rule>
<create-sharding-table-rule sql-case-id="create-sharding-table-rule">
- <rule name="t_order" key-generate-strategy-column="another_id">
- <data-node>ms_group_${0..1}.t_order_${0..1}</data-node>
- <table-strategy type="standard" sharding-column="user_id">
- <algorithm-segment algorithm-name="INLINE">
- <properties>
- <property key="algorithm-expression" value="t_order_${user_id % 2}" />
- </properties>
- </algorithm-segment>
- </table-strategy>
- <database-strategy type="standard" sharding-column="order_id">
- <algorithm-segment algorithm-name="INLINE">
- <properties>
- <property key="algorithm-expression" value="ms_group_${order_id % 2}" />
- </properties>
- </algorithm-segment>
- </database-strategy>
- <key-generate-strategy algorithm-name="snowflake" />
- </rule>
- <rule name="t_order_item" key-generate-strategy-column="another_id">
- <data-node>ms_group_${0..1}.t_order_item_${0..1}</data-node>
- <table-strategy type="standard" sharding-column="user_id">
- <algorithm-segment algorithm-name="INLINE">
- <properties>
- <property key="algorithm-expression" value="t_order_item_${user_id % 2}" />
- </properties>
- </algorithm-segment>
- </table-strategy>
- <database-strategy type="standard" sharding-column="order_id">
- <algorithm-segment algorithm-name="INLINE">
- <properties>
- <property key="algorithm-expression" value="ms_group_${order_id % 2}" />
- </properties>
- </algorithm-segment>
- </database-strategy>
- </rule>
+ <rules>
+ <rule name="t_order" key-generate-strategy-column="another_id">
+ <data-node>ms_group_${0..1}.t_order_${0..1}</data-node>
+ <table-strategy type="standard" sharding-column="user_id">
+ <algorithm-segment algorithm-name="INLINE">
+ <properties>
+ <property key="algorithm-expression" value="t_order_${user_id % 2}" />
+ </properties>
+ </algorithm-segment>
+ </table-strategy>
+ <database-strategy type="standard" sharding-column="order_id">
+ <algorithm-segment algorithm-name="INLINE">
+ <properties>
+ <property key="algorithm-expression" value="ms_group_${order_id % 2}" />
+ </properties>
+ </algorithm-segment>
+ </database-strategy>
+ <key-generate-strategy algorithm-name="snowflake" />
+ </rule>
+ <rule name="t_order_item" key-generate-strategy-column="another_id">
+ <data-node>ms_group_${0..1}.t_order_item_${0..1}</data-node>
+ <table-strategy type="standard" sharding-column="user_id">
+ <algorithm-segment algorithm-name="INLINE">
+ <properties>
+ <property key="algorithm-expression" value="t_order_item_${user_id % 2}" />
+ </properties>
+ </algorithm-segment>
+ </table-strategy>
+ <database-strategy type="standard" sharding-column="order_id">
+ <algorithm-segment algorithm-name="INLINE">
+ <properties>
+ <property key="algorithm-expression" value="ms_group_${order_id % 2}" />
+ </properties>
+ </algorithm-segment>
+ </database-strategy>
+ </rule>
+ </rules>
</create-sharding-table-rule>
<create-sharding-table-rule sql-case-id="create-sharding-table-rule-with-enum-inline-expression">
- <rule name="t_order" key-generate-strategy-column="another_id">
- <data-node>ms_group_${['abc','ac']}.t_order_${0..1}</data-node>
- <table-strategy type="standard" sharding-column="user_id">
- <algorithm-segment algorithm-name="INLINE">
- <properties>
- <property key="algorithm-expression" value="t_order_${user_id % 2}" />
- </properties>
- </algorithm-segment>
- </table-strategy>
- <database-strategy type="standard" sharding-column="order_name">
- <algorithm-segment algorithm-name="INLINE">
- <properties>
- <property key="algorithm-expression" value="ms_group_${order_name}" />
- </properties>
- </algorithm-segment>
- </database-strategy>
- <key-generate-strategy algorithm-name="snowflake" />
- </rule>
- <rule name="t_order_item" key-generate-strategy-column="another_id">
- <data-node>ms_group_${0..1}.t_order_item_${0..1}</data-node>
- <table-strategy type="standard" sharding-column="user_id">
- <algorithm-segment algorithm-name="INLINE">
- <properties>
- <property key="algorithm-expression" value="t_order_item_${user_id % 2}" />
- </properties>
- </algorithm-segment>
- </table-strategy>
- <database-strategy type="standard" sharding-column="order_id">
- <algorithm-segment algorithm-name="INLINE">
- <properties>
- <property key="algorithm-expression" value="ms_group_${order_id % 2}" />
- </properties>
- </algorithm-segment>
- </database-strategy>
- </rule>
+ <rules>
+ <rule name="t_order" key-generate-strategy-column="another_id">
+ <data-node>ms_group_${['abc','ac']}.t_order_${0..1}</data-node>
+ <table-strategy type="standard" sharding-column="user_id">
+ <algorithm-segment algorithm-name="INLINE">
+ <properties>
+ <property key="algorithm-expression" value="t_order_${user_id % 2}" />
+ </properties>
+ </algorithm-segment>
+ </table-strategy>
+ <database-strategy type="standard" sharding-column="order_name">
+ <algorithm-segment algorithm-name="INLINE">
+ <properties>
+ <property key="algorithm-expression" value="ms_group_${order_name}" />
+ </properties>
+ </algorithm-segment>
+ </database-strategy>
+ <key-generate-strategy algorithm-name="snowflake" />
+ </rule>
+ <rule name="t_order_item" key-generate-strategy-column="another_id">
+ <data-node>ms_group_${0..1}.t_order_item_${0..1}</data-node>
+ <table-strategy type="standard" sharding-column="user_id">
+ <algorithm-segment algorithm-name="INLINE">
+ <properties>
+ <property key="algorithm-expression" value="t_order_item_${user_id % 2}" />
+ </properties>
+ </algorithm-segment>
+ </table-strategy>
+ <database-strategy type="standard" sharding-column="order_id">
+ <algorithm-segment algorithm-name="INLINE">
+ <properties>
+ <property key="algorithm-expression" value="ms_group_${order_id % 2}" />
+ </properties>
+ </algorithm-segment>
+ </database-strategy>
+ </rule>
+ </rules>
</create-sharding-table-rule>
<create-sharding-table-rule sql-case-id="create-sharding-table-rule-complex">
- <rule name="t_order" key-generate-strategy-column="another_id">
- <data-node>ms_group_${0..1}_${0..1}.t_order_${0..1}</data-node>
- <table-strategy type="standard" sharding-column="user_id">
- <algorithm-segment algorithm-name="INLINE">
- <properties>
- <property key="algorithm-expression" value="t_order_${user_id % 2}" />
- </properties>
- </algorithm-segment>
- </table-strategy>
- <database-strategy type="complex" sharding-column="order_id,user_id">
- <algorithm-segment algorithm-name="INLINE">
- <properties>
- <property key="algorithm-expression" value="ms_group_${order_id % 2}_${user_id % 2}" />
- </properties>
- </algorithm-segment>
- </database-strategy>
- <key-generate-strategy algorithm-name="snowflake" />
- </rule>
- <rule name="t_order_item" key-generate-strategy-column="another_id">
- <data-node>ms_group_${0..1}.t_order_item_${0..1}</data-node>
- <table-strategy type="standard" sharding-column="user_id">
- <algorithm-segment algorithm-name="INLINE">
- <properties>
- <property key="algorithm-expression" value="t_order_item_${user_id % 2}" />
- </properties>
- </algorithm-segment>
- </table-strategy>
- <database-strategy type="standard" sharding-column="order_id">
- <algorithm-segment algorithm-name="INLINE">
- <properties>
- <property key="algorithm-expression" value="ms_group_${order_id % 2}" />
- </properties>
- </algorithm-segment>
- </database-strategy>
- </rule>
+ <rules>
+ <rule name="t_order" key-generate-strategy-column="another_id">
+ <data-node>ms_group_${0..1}_${0..1}.t_order_${0..1}</data-node>
+ <table-strategy type="standard" sharding-column="user_id">
+ <algorithm-segment algorithm-name="INLINE">
+ <properties>
+ <property key="algorithm-expression" value="t_order_${user_id % 2}" />
+ </properties>
+ </algorithm-segment>
+ </table-strategy>
+ <database-strategy type="complex" sharding-column="order_id,user_id">
+ <algorithm-segment algorithm-name="INLINE">
+ <properties>
+ <property key="algorithm-expression" value="ms_group_${order_id % 2}_${user_id % 2}" />
+ </properties>
+ </algorithm-segment>
+ </database-strategy>
+ <key-generate-strategy algorithm-name="snowflake" />
+ </rule>
+ <rule name="t_order_item" key-generate-strategy-column="another_id">
+ <data-node>ms_group_${0..1}.t_order_item_${0..1}</data-node>
+ <table-strategy type="standard" sharding-column="user_id">
+ <algorithm-segment algorithm-name="INLINE">
+ <properties>
+ <property key="algorithm-expression" value="t_order_item_${user_id % 2}" />
+ </properties>
+ </algorithm-segment>
+ </table-strategy>
+ <database-strategy type="standard" sharding-column="order_id">
+ <algorithm-segment algorithm-name="INLINE">
+ <properties>
+ <property key="algorithm-expression" value="ms_group_${order_id % 2}" />
+ </properties>
+ </algorithm-segment>
+ </database-strategy>
+ </rule>
+ </rules>
</create-sharding-table-rule>
<create-sharding-table-rule sql-case-id="create-sharding-table-rule-with-auto-create-algorithm">
- <rule name="t_order" key-generate-strategy-column="another_id">
- <data-node>ms_group_${0..1}.t_order_${0..1}</data-node>
- <table-strategy type="standard" sharding-column="user_id">
- <algorithm-segment algorithm-name="INLINE">
- <properties>
- <property key="algorithm-expression" value="t_order_${user_id % 2}" />
- </properties>
- </algorithm-segment>
- </table-strategy>
- <database-strategy type="standard" sharding-column="order_id" >
- <algorithm-segment algorithm-name="INLINE">
- <properties>
- <property key="algorithm-expression" value="ms_group_${order_id % 2}" />
- </properties>
- </algorithm-segment>
- </database-strategy>
- <key-generate-strategy algorithm-name="snowflake" />
- </rule>
+ <rules>
+ <rule name="t_order" key-generate-strategy-column="another_id">
+ <data-node>ms_group_${0..1}.t_order_${0..1}</data-node>
+ <table-strategy type="standard" sharding-column="user_id">
+ <algorithm-segment algorithm-name="INLINE">
+ <properties>
+ <property key="algorithm-expression" value="t_order_${user_id % 2}" />
+ </properties>
+ </algorithm-segment>
+ </table-strategy>
+ <database-strategy type="standard" sharding-column="order_id" >
+ <algorithm-segment algorithm-name="INLINE">
+ <properties>
+ <property key="algorithm-expression" value="ms_group_${order_id % 2}" />
+ </properties>
+ </algorithm-segment>
+ </database-strategy>
+ <key-generate-strategy algorithm-name="snowflake" />
+ </rule>
+ </rules>
</create-sharding-table-rule>
<create-sharding-table-reference-rule sql-case-id="create-sharding-table-reference-rule">
- <rule table-groups="t_order,t_order_item" />
- <rule table-groups="t_1,t_2" />
+ <rules>
+ <rule table-groups="t_order,t_order_item" />
+ <rule table-groups="t_1,t_2" />
+ </rules>
</create-sharding-table-reference-rule>
<create-sharding-table-reference-rule sql-case-id="create-sharding-table-reference-rule-with-quota">
- <rule table-groups="t_order,t_order_item" />
- <rule table-groups="t_1,t_2"/>
+ <rules>
+ <rule table-groups="t_order,t_order_item" />
+ <rule table-groups="t_1,t_2"/>
+ </rules>
</create-sharding-table-reference-rule>
<create-broadcast-table-rule sql-case-id="create-broadcast-table-rule">
@@ -266,201 +284,225 @@
</create-broadcast-table-rule>
<create-readwrite-splitting-rule sql-case-id="create-static-readwrite-splitting-rule">
- <rule name="ms_group_0" write-data-source="primary_ds" load-balancer="random">
- <read-data-source>replica_ds_0</read-data-source>
- <read-data-source>replica_ds_1</read-data-source>
- </rule>
+ <rules>
+ <rule name="ms_group_0" write-data-source="primary_ds" load-balancer="random">
+ <read-data-source>replica_ds_0</read-data-source>
+ <read-data-source>replica_ds_1</read-data-source>
+ </rule>
+ </rules>
</create-readwrite-splitting-rule>
<create-readwrite-splitting-rule sql-case-id="create-readwrite-splitting-rule-with-quota">
- <rule name="ms_group_0" write-data-source="primary_ds" load-balancer="random">
- <read-data-source>replica_ds_0</read-data-source>
- <read-data-source>replica_ds_1</read-data-source>
- </rule>
+ <rules>
+ <rule name="ms_group_0" write-data-source="primary_ds" load-balancer="random">
+ <read-data-source>replica_ds_0</read-data-source>
+ <read-data-source>replica_ds_1</read-data-source>
+ </rule>
+ </rules>
</create-readwrite-splitting-rule>
<create-readwrite-splitting-rule sql-case-id="create-dynamic-readwrite-splitting-rule">
- <rule name="ms_group_1" auto-aware-resource="group_0" load-balancer="random">
- <properties>
- <property key="read_weight" value="2:1" />
- </properties>
- </rule>
+ <rules>
+ <rule name="ms_group_1" auto-aware-resource="group_0" load-balancer="random">
+ <properties>
+ <property key="read_weight" value="2:1" />
+ </properties>
+ </rule>
+ </rules>
</create-readwrite-splitting-rule>
<create-database-discovery-definition-rule sql-case-id="create-database-discovery-definition-rule">
- <rule rule-name="ha_group_0" type="mgr">
- <data-source>ds_0</data-source>
- <data-source>ds_1</data-source>
- <discovery-type algorithm-name="mgr">
+ <rules>
+ <rule rule-name="ha_group_0" type="mgr">
+ <data-source>ds_0</data-source>
+ <data-source>ds_1</data-source>
+ <discovery-type algorithm-name="mgr">
+ <properties>
+ <property key="groupName" value="92504d5b-6dec" />
+ </properties>
+ </discovery-type>
<properties>
- <property key="groupName" value="92504d5b-6dec" />
+ <property key="keepAliveCron" value="0/5 * * * * ?" />
</properties>
- </discovery-type>
- <properties>
- <property key="keepAliveCron" value="0/5 * * * * ?" />
- </properties>
- </rule>
- <rule rule-name="ha_group_1" type="mgr2">
- <data-source>ds_2</data-source>
- <data-source>ds_3</data-source>
- <discovery-type algorithm-name="mgr2">
+ </rule>
+ <rule rule-name="ha_group_1" type="mgr2">
+ <data-source>ds_2</data-source>
+ <data-source>ds_3</data-source>
+ <discovery-type algorithm-name="mgr2">
+ <properties>
+ <property key="groupName" value="92504d5b-6dec-2" />
+ </properties>
+ </discovery-type>
<properties>
- <property key="groupName" value="92504d5b-6dec-2" />
+ <property key="keepAliveCron" value="0/6 * * * * ?" />
</properties>
- </discovery-type>
- <properties>
- <property key="keepAliveCron" value="0/6 * * * * ?" />
- </properties>
- </rule>
+ </rule>
+ </rules>
</create-database-discovery-definition-rule>
<create-database-discovery-definition-rule sql-case-id="create-database-discovery-rule-with-quota">
- <rule rule-name="ha_group_0" type="mgr">
- <data-source>ds_0</data-source>
- <data-source>ds_1</data-source>
- <discovery-type algorithm-name="mgr">
+ <rules>
+ <rule rule-name="ha_group_0" type="mgr">
+ <data-source>ds_0</data-source>
+ <data-source>ds_1</data-source>
+ <discovery-type algorithm-name="mgr">
+ <properties>
+ <property key="groupName" value="92504d5b-6dec"/>
+ </properties>
+ </discovery-type>
<properties>
- <property key="groupName" value="92504d5b-6dec"/>
+ <property key="keepAliveCron" value="0/5 * * * * ?"/>
</properties>
- </discovery-type>
- <properties>
- <property key="keepAliveCron" value="0/5 * * * * ?"/>
- </properties>
- </rule>
- <rule rule-name="ha_group_1" type="mgr2">
- <data-source>ds_2</data-source>
- <data-source>ds_3</data-source>
- <discovery-type algorithm-name="mgr2">
+ </rule>
+ <rule rule-name="ha_group_1" type="mgr2">
+ <data-source>ds_2</data-source>
+ <data-source>ds_3</data-source>
+ <discovery-type algorithm-name="mgr2">
+ <properties>
+ <property key="groupName" value="92504d5b-6dec-2"/>
+ </properties>
+ </discovery-type>
<properties>
- <property key="groupName" value="92504d5b-6dec-2"/>
+ <property key="keepAliveCron" value="0/6 * * * * ?"/>
</properties>
- </discovery-type>
- <properties>
- <property key="keepAliveCron" value="0/6 * * * * ?"/>
- </properties>
- </rule>
+ </rule>
+ </rules>
</create-database-discovery-definition-rule>
<create-encrypt-rule sql-case-id="create-encrypt-rule">
- <rule name="t_encrypt">
- <column name="user_id" plain-column="user_plain" cipher-column="user_cipher">
- <encryptor algorithm-name="AES">
- <properties>
- <property key="aes-key-value" value="123456abc"/>
- </properties>
- </encryptor>
- </column>
- <column name="order_id" cipher-column="order_cipher">
- <encryptor algorithm-name="MD5"/>
- </column>
- </rule>
+ <rules>
+ <rule name="t_encrypt">
+ <column name="user_id" plain-column="user_plain" cipher-column="user_cipher">
+ <encryptor algorithm-name="AES">
+ <properties>
+ <property key="aes-key-value" value="123456abc"/>
+ </properties>
+ </encryptor>
+ </column>
+ <column name="order_id" cipher-column="order_cipher">
+ <encryptor algorithm-name="MD5"/>
+ </column>
+ </rule>
+ </rules>
</create-encrypt-rule>
<create-encrypt-rule sql-case-id="create-encrypt-rule-with-quota">
- <rule name="encrypt">
- <column name="user_id" plain-column="user_plain" cipher-column="user_cipher">
- <encryptor algorithm-name="AES">
- <properties>
- <property key="aes-key-value" value="123456abc"/>
- </properties>
- </encryptor>
- </column>
- <column name="order_id" cipher-column="order_cipher">
- <encryptor algorithm-name="MD5"/>
- </column>
- </rule>
+ <rules>
+ <rule name="encrypt">
+ <column name="user_id" plain-column="user_plain" cipher-column="user_cipher">
+ <encryptor algorithm-name="AES">
+ <properties>
+ <property key="aes-key-value" value="123456abc"/>
+ </properties>
+ </encryptor>
+ </column>
+ <column name="order_id" cipher-column="order_cipher">
+ <encryptor algorithm-name="MD5"/>
+ </column>
+ </rule>
+ </rules>
</create-encrypt-rule>
<create-encrypt-rule sql-case-id="create-encrypt-rule-with-assisted-query-column">
- <rule name="t_encrypt">
- <column name="user_id" plain-column="user_plain" cipher-column="user_cipher" assisted-query-column="assisted_column">
- <encryptor algorithm-name="AES">
- <properties>
- <property key="aes-key-value" value="123456abc"/>
- </properties>
- </encryptor>
- <assisted-query-encryptor algorithm-name="MD5" />
- </column>
- <column name="order_id" cipher-column="order_cipher">
- <encryptor algorithm-name="MD5"/>
- </column>
- </rule>
+ <rules>
+ <rule name="t_encrypt">
+ <column name="user_id" plain-column="user_plain" cipher-column="user_cipher" assisted-query-column="assisted_column">
+ <encryptor algorithm-name="AES">
+ <properties>
+ <property key="aes-key-value" value="123456abc"/>
+ </properties>
+ </encryptor>
+ <assisted-query-encryptor algorithm-name="MD5" />
+ </column>
+ <column name="order_id" cipher-column="order_cipher">
+ <encryptor algorithm-name="MD5"/>
+ </column>
+ </rule>
+ </rules>
</create-encrypt-rule>
<create-encrypt-rule sql-case-id="create-encrypt-rule-with-like-query-column">
- <rule name="t_encrypt">
- <column name="user_id" plain-column="user_plain" cipher-column="user_cipher" like-query-column="like_column">
- <encryptor algorithm-name="AES">
- <properties>
- <property key="aes-key-value" value="123456abc"/>
- </properties>
- </encryptor>
- <like-query-encryptor algorithm-name="CHAR_DIGEST_LIKE" />
- </column>
- <column name="order_id" cipher-column="order_cipher">
- <encryptor algorithm-name="MD5"/>
- </column>
- </rule>
+ <rules>
+ <rule name="t_encrypt">
+ <column name="user_id" plain-column="user_plain" cipher-column="user_cipher" like-query-column="like_column">
+ <encryptor algorithm-name="AES">
+ <properties>
+ <property key="aes-key-value" value="123456abc"/>
+ </properties>
+ </encryptor>
+ <like-query-encryptor algorithm-name="CHAR_DIGEST_LIKE" />
+ </column>
+ <column name="order_id" cipher-column="order_cipher">
+ <encryptor algorithm-name="MD5"/>
+ </column>
+ </rule>
+ </rules>
</create-encrypt-rule>
<create-encrypt-rule sql-case-id="create-encrypt-rule-with-query-with-cipher-column">
- <rule name="encrypt" query-with-cipher-column="false">
- <column name="user_id" plain-column="user_plain" cipher-column="user_cipher">
- <encryptor algorithm-name="AES">
- <properties>
- <property key="aes-key-value" value="123456abc" />
- </properties>
- </encryptor>
- </column>
- </rule>
+ <rules>
+ <rule name="encrypt" query-with-cipher-column="false">
+ <column name="user_id" plain-column="user_plain" cipher-column="user_cipher">
+ <encryptor algorithm-name="AES">
+ <properties>
+ <property key="aes-key-value" value="123456abc" />
+ </properties>
+ </encryptor>
+ </column>
+ </rule>
+ </rules>
</create-encrypt-rule>
<create-shadow-rule sql-case-id="create-shadow-rule">
- <rule name="rule" rule-name="shadow_rule" source="demo_ds" shadow="demo_ds_shadow">
- <table-rule table-name="t_order">
- <shadow-algorithm algorithm-id="shadow_rule_t_order_regex_match_0">
- <algorithm algorithm-name="REGEX_MATCH">
- <properties>
- <property key="operation" value="insert"/>
- <property key="column" value="user_id"/>
- <property key="regex" value="[1]"/>
- </properties>
- </algorithm>
- </shadow-algorithm>
- <shadow-algorithm algorithm-id="shadow_rule_t_order_simple_hint_1">
- <algorithm algorithm-name="SIMPLE_HINT">
- <properties>
- <property key="shadow" value="true"/>
- <property key="foo" value="bar"/>
- </properties>
- </algorithm>
- </shadow-algorithm>
- </table-rule>
- </rule>
+ <rules>
+ <rule name="rule" rule-name="shadow_rule" source="demo_ds" shadow="demo_ds_shadow">
+ <table-rule table-name="t_order">
+ <shadow-algorithm algorithm-id="shadow_rule_t_order_regex_match_0">
+ <algorithm algorithm-name="REGEX_MATCH">
+ <properties>
+ <property key="operation" value="insert"/>
+ <property key="column" value="user_id"/>
+ <property key="regex" value="[1]"/>
+ </properties>
+ </algorithm>
+ </shadow-algorithm>
+ <shadow-algorithm algorithm-id="shadow_rule_t_order_simple_hint_1">
+ <algorithm algorithm-name="SIMPLE_HINT">
+ <properties>
+ <property key="shadow" value="true"/>
+ <property key="foo" value="bar"/>
+ </properties>
+ </algorithm>
+ </shadow-algorithm>
+ </table-rule>
+ </rule>
+ </rules>
</create-shadow-rule>
<create-shadow-rule sql-case-id="create-shadow-rule-with-quota">
- <rule name="rule" rule-name="shadow_rule" source="demo_ds" shadow="demo_ds_shadow">
- <table-rule table-name="t_order">
- <shadow-algorithm algorithm-id="shadow_rule_t_order_regex_match_0">
- <algorithm algorithm-name="REGEX_MATCH">
- <properties>
- <property key="operation" value="insert"/>
- <property key="column" value="user_id"/>
- <property key="regex" value="[1]"/>
- </properties>
- </algorithm>
- </shadow-algorithm>
- <shadow-algorithm algorithm-id="shadow_rule_t_order_simple_hint_1">
- <algorithm algorithm-name="SIMPLE_HINT">
- <properties>
- <property key="shadow" value="true"/>
- <property key="foo" value="bar"/>
- </properties>
- </algorithm>
- </shadow-algorithm>
- </table-rule>
- </rule>
+ <rules>
+ <rule name="rule" rule-name="shadow_rule" source="demo_ds" shadow="demo_ds_shadow">
+ <table-rule table-name="t_order">
+ <shadow-algorithm algorithm-id="shadow_rule_t_order_regex_match_0">
+ <algorithm algorithm-name="REGEX_MATCH">
+ <properties>
+ <property key="operation" value="insert"/>
+ <property key="column" value="user_id"/>
+ <property key="regex" value="[1]"/>
+ </properties>
+ </algorithm>
+ </shadow-algorithm>
+ <shadow-algorithm algorithm-id="shadow_rule_t_order_simple_hint_1">
+ <algorithm algorithm-name="SIMPLE_HINT">
+ <properties>
+ <property key="shadow" value="true"/>
+ <property key="foo" value="bar"/>
+ </properties>
+ </algorithm>
+ </shadow-algorithm>
+ </table-rule>
+ </rule>
+ </rules>
</create-shadow-rule>
<create-default-sharding-strategy sql-case-id="create-default-sharding-table-strategy-with-lower-case">
diff --git a/test/parser/src/main/resources/case/rdl/drop.xml b/test/parser/src/main/resources/case/rdl/drop.xml
index eafb79896f8..1fe227daeb1 100644
--- a/test/parser/src/main/resources/case/rdl/drop.xml
+++ b/test/parser/src/main/resources/case/rdl/drop.xml
@@ -46,11 +46,15 @@
</drop-sharding-table-rule>
<drop-sharding-table-reference-rule sql-case-id="drop-sharding-table-reference-rule">
- <rule>t_1,t_2</rule>
+ <rules>
+ <rule>t_1,t_2</rule>
+ </rules>
</drop-sharding-table-reference-rule>
<drop-sharding-table-reference-rule sql-case-id="drop-sharding-table-reference-rule-if-exists" if-exists="true">
- <rule>t_1,t_2</rule>
+ <rules>
+ <rule>t_1,t_2</rule>
+ </rules>
</drop-sharding-table-reference-rule>
<drop-broadcast-table-rule sql-case-id="drop-broadcast-table-rule" >
@@ -67,23 +71,31 @@
</drop-broadcast-table-rule>
<drop-readwrite-splitting-rule sql-case-id="drop-readwrite-splitting-rule">
- <rule>ms_group_0</rule>
- <rule>ms_group_1</rule>
+ <rules>
+ <rule>ms_group_0</rule>
+ <rule>ms_group_1</rule>
+ </rules>
</drop-readwrite-splitting-rule>
<drop-readwrite-splitting-rule sql-case-id="drop-readwrite-splitting-rule-if-exists" if-exists="true">
- <rule>ms_group_0</rule>
- <rule>ms_group_1</rule>
+ <rules>
+ <rule>ms_group_0</rule>
+ <rule>ms_group_1</rule>
+ </rules>
</drop-readwrite-splitting-rule>
<drop-database-discovery-rule sql-case-id="drop-database-discovery-rule">
- <rule>ha_group_0</rule>
- <rule>ha_group_1</rule>
+ <rules>
+ <rule>ha_group_0</rule>
+ <rule>ha_group_1</rule>
+ </rules>
</drop-database-discovery-rule>
<drop-database-discovery-rule sql-case-id="drop-database-discovery-rule-if-exists" if-exists="true">
- <rule>ha_group_0</rule>
- <rule>ha_group_1</rule>
+ <rules>
+ <rule>ha_group_0</rule>
+ <rule>ha_group_1</rule>
+ </rules>
</drop-database-discovery-rule>
<drop-database-discovery-type sql-case-id="drop-database-discovery-type">
@@ -117,23 +129,31 @@
</drop-encrypt-rule>
<drop-shadow-rule sql-case-id="drop-shadow-rule">
- <rule>shadow_rule_1</rule>
- <rule>shadow_rule_2</rule>
+ <rules>
+ <rule>shadow_rule_1</rule>
+ <rule>shadow_rule_2</rule>
+ </rules>
</drop-shadow-rule>
<drop-shadow-rule sql-case-id="drop-shadow-rule-if-exists" if-exists="true">
- <rule>shadow_rule_1</rule>
- <rule>shadow_rule_2</rule>
+ <rules>
+ <rule>shadow_rule_1</rule>
+ <rule>shadow_rule_2</rule>
+ </rules>
</drop-shadow-rule>
<drop-shadow-algorithm sql-case-id="drop-shadow-algorithm">
- <rule>shadow_algorithm_1</rule>
- <rule>shadow_algorithm_2</rule>
+ <rules>
+ <rule>shadow_algorithm_1</rule>
+ <rule>shadow_algorithm_2</rule>
+ </rules>
</drop-shadow-algorithm>
<drop-shadow-algorithm sql-case-id="drop-shadow-algorithm-if-exists" if-exists="true">
- <rule>shadow_algorithm_1</rule>
- <rule>shadow_algorithm_2</rule>
+ <rules>
+ <rule>shadow_algorithm_1</rule>
+ <rule>shadow_algorithm_2</rule>
+ </rules>
</drop-shadow-algorithm>
<drop-shadow-algorithm sql-case-id="drop-default-shadow-algorithm-if-exists" if-exists="true"/>