This is an automated email from the ASF dual-hosted git repository.
jianglongtao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 0ce877233c9 Add parser test for `defaultShardingStrategy` and
`shardingRule` (#24156)
0ce877233c9 is described below
commit 0ce877233c9451a18e792e632653b1f6085749aa
Author: Zichao <[email protected]>
AuthorDate: Tue Feb 14 19:01:24 2023 +0800
Add parser test for `defaultShardingStrategy` and `shardingRule` (#24156)
* Add parser test for `defaultShardingStrategy` and `shardingRule`
* Add parser test for `defaultShardingStrategy` and `shardingRule`
* Add parser test for `defaultShardingStrategy` and `shardingRule`
---
.../asserts/segment/distsql/TableRuleAssert.java | 12 ++--
...lterDefaultShardingStrategyStatementAssert.java | 12 ++--
...eateDefaultShardingStrategyStatementAssert.java | 12 ++--
.../parser/src/main/resources/case/rdl/alter.xml | 68 ++++++++++++++++++++--
.../parser/src/main/resources/case/rdl/create.xml | 66 ++++++++++++++++++++-
.../src/main/resources/sql/supported/rdl/alter.xml | 9 ++-
.../main/resources/sql/supported/rdl/create.xml | 9 ++-
7 files changed, 165 insertions(+), 23 deletions(-)
diff --git
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/distsql/TableRuleAssert.java
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/distsql/TableRuleAssert.java
index 1e2f4f0b39e..86c881d851a 100644
---
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/distsql/TableRuleAssert.java
+++
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/distsql/TableRuleAssert.java
@@ -55,14 +55,18 @@ public final class TableRuleAssert {
actual.getTableStrategySegment().getShardingColumn(),
is(expected.getTableStrategy().getShardingColumn()));
assertThat(assertContext.getText(String.format("`%s`'s table rule
segment assertion error: ", actual.getClass().getSimpleName())),
actual.getTableStrategySegment().getType(),
is(expected.getTableStrategy().getType()));
- assertThat(assertContext.getText(String.format("`%s`'s table rule
segment assertion error: ", actual.getClass().getSimpleName())),
-
actual.getTableStrategySegment().getShardingAlgorithm().getName(),
is(expected.getTableStrategy().getAlgorithmSegment().getName()));
+ if
(!"none".equalsIgnoreCase(actual.getTableStrategySegment().getType())) {
+ assertThat(assertContext.getText(String.format("`%s`'s table
rule segment assertion error: ", actual.getClass().getSimpleName())),
+
actual.getTableStrategySegment().getShardingAlgorithm().getName(),
is(expected.getTableStrategy().getAlgorithmSegment().getName()));
+ }
assertThat(assertContext.getText(String.format("`%s`'s table rule
segment assertion error: ", actual.getClass().getSimpleName())),
actual.getDatabaseStrategySegment().getShardingColumn(),
is(expected.getDataStrategy().getShardingColumn()));
assertThat(assertContext.getText(String.format("`%s`'s table rule
segment assertion error: ", actual.getClass().getSimpleName())),
actual.getDatabaseStrategySegment().getType(),
is(expected.getDataStrategy().getType()));
- assertThat(assertContext.getText(String.format("`%s`'s table rule
segment assertion error: ", actual.getClass().getSimpleName())),
-
actual.getDatabaseStrategySegment().getShardingAlgorithm().getName(),
is(expected.getDataStrategy().getAlgorithmSegment().getName()));
+ if
(!"none".equalsIgnoreCase(actual.getDatabaseStrategySegment().getType())) {
+ assertThat(assertContext.getText(String.format("`%s`'s table
rule segment assertion error: ", actual.getClass().getSimpleName())),
+
actual.getDatabaseStrategySegment().getShardingAlgorithm().getName(),
is(expected.getDataStrategy().getAlgorithmSegment().getName()));
+ }
if (null != actual.getKeyGenerateStrategySegment()) {
assertThat(assertContext.getText(String.format("`%s`'s table
rule segment assertion error: ", actual.getClass().getSimpleName())),
actual.getKeyGenerateStrategySegment().getKeyGenerateColumn(),
is(expected.getKeyGenerateStrategyColumn()));
diff --git
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/alter/impl/AlterDefaultShardingStrategyStatementAssert.java
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/alter/impl/AlterDefaultShardingStrategyStatementAssert.java
index f0bdca47238..334a6e0f3d2 100644
---
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/alter/impl/AlterDefaultShardingStrategyStatementAssert.java
+++
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/alter/impl/AlterDefaultShardingStrategyStatementAssert.java
@@ -46,14 +46,16 @@ public final class
AlterDefaultShardingStrategyStatementAssert {
assertNull(assertContext.getText("Actual statement should not
exist."), actual);
} else {
assertNotNull(assertContext.getText("Actual statement should
exist."), actual);
- assertThat(assertContext.getText(String.format("`%s`'s datasource
segment assertion error: ", actual.getClass().getSimpleName())),
+ assertThat(assertContext.getText(String.format("`%s`'s default
sharding strategy segment assertion error: ",
actual.getClass().getSimpleName())),
actual.getDefaultType(),
is(expected.getStrategy().getDefaultType()));
- assertThat(assertContext.getText(String.format("`%s`'s datasource
segment assertion error: ", actual.getClass().getSimpleName())),
+ assertThat(assertContext.getText(String.format("`%s`'s default
sharding strategy segment assertion error: ",
actual.getClass().getSimpleName())),
actual.getShardingColumn(),
is(expected.getStrategy().getShardingColumn()));
- assertThat(assertContext.getText(String.format("`%s`'s datasource
segment assertion error: ", actual.getClass().getSimpleName())),
+ assertThat(assertContext.getText(String.format("`%s`'s default
sharding strategy segment assertion error: ",
actual.getClass().getSimpleName())),
actual.getStrategyType(),
is(expected.getStrategy().getStrategyType()));
- assertThat(assertContext.getText(String.format("`%s`'s datasource
segment assertion error: ", actual.getClass().getSimpleName())),
- actual.getAlgorithmSegment().getName(),
is(expected.getStrategy().getAlgorithmSegment().getName()));
+ if (!"none".equalsIgnoreCase(actual.getStrategyType())) {
+ assertThat(assertContext.getText(String.format("`%s`'s default
sharding strategy segment assertion error: ",
actual.getClass().getSimpleName())),
+ actual.getAlgorithmSegment().getName(),
is(expected.getStrategy().getAlgorithmSegment().getName()));
+ }
}
}
}
diff --git
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/create/impl/CreateDefaultShardingStrategyStatementAssert.java
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/create/impl/CreateDefaultShardingStrategyStatementAssert.java
index 1aee8d42714..49e39982f79 100644
---
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/create/impl/CreateDefaultShardingStrategyStatementAssert.java
+++
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/create/impl/CreateDefaultShardingStrategyStatementAssert.java
@@ -47,14 +47,16 @@ public final class
CreateDefaultShardingStrategyStatementAssert {
} else {
assertNotNull(assertContext.getText("Actual statement should
exist."), actual);
assertThat(assertContext.getText("if not exists segment assertion
error: "), actual.isIfNotExists(), is(expected.isIfNotExists()));
- assertThat(assertContext.getText(String.format("`%s`'s datasource
segment assertion error: ", actual.getClass().getSimpleName())),
+ assertThat(assertContext.getText(String.format("`%s`'s default
sharding strategy segment assertion error: ",
actual.getClass().getSimpleName())),
actual.getDefaultType(),
is(expected.getStrategy().getDefaultType()));
- assertThat(assertContext.getText(String.format("`%s`'s datasource
segment assertion error: ", actual.getClass().getSimpleName())),
+ assertThat(assertContext.getText(String.format("`%s`'s default
sharding strategy segment assertion error: ",
actual.getClass().getSimpleName())),
actual.getShardingColumn(),
is(expected.getStrategy().getShardingColumn()));
- assertThat(assertContext.getText(String.format("`%s`'s datasource
segment assertion error: ", actual.getClass().getSimpleName())),
+ assertThat(assertContext.getText(String.format("`%s`'s default
sharding strategy segment assertion error: ",
actual.getClass().getSimpleName())),
actual.getStrategyType(),
is(expected.getStrategy().getStrategyType()));
- assertThat(assertContext.getText(String.format("`%s`'s datasource
segment assertion error: ", actual.getClass().getSimpleName())),
- actual.getAlgorithmSegment().getName(),
is(expected.getStrategy().getAlgorithmSegment().getName()));
+ if (!"none".equalsIgnoreCase(actual.getStrategyType())) {
+ assertThat(assertContext.getText(String.format("`%s`'s default
sharding strategy segment assertion error: ",
actual.getClass().getSimpleName())),
+ actual.getAlgorithmSegment().getName(),
is(expected.getStrategy().getAlgorithmSegment().getName()));
+ }
}
}
}
diff --git a/test/it/parser/src/main/resources/case/rdl/alter.xml
b/test/it/parser/src/main/resources/case/rdl/alter.xml
index 9ae0b842daf..b6f903f1700 100644
--- a/test/it/parser/src/main/resources/case/rdl/alter.xml
+++ b/test/it/parser/src/main/resources/case/rdl/alter.xml
@@ -151,6 +151,34 @@
</rule>
</alter-sharding-table-rule>
+ <alter-sharding-table-rule
sql-case-id="alter-sharding-table-rule-with-complex-table-strategy-and-standard-database-strategy">
+ <rule name="t_order_item">
+ <data-node>ds_${0..1}.t_order_item_${0..1}</data-node>
+ <table-strategy type="complex" sharding-column="user_id,order_id">
+ <algorithm-segment algorithm-name="complex_inline">
+ <property key="algorithm-expression"
value="t_order_${user_id % 2}_${order_id % 2}" />
+ </algorithm-segment>
+ </table-strategy>
+ <database-strategy type="standard" sharding-column="user_id">
+ <algorithm-segment algorithm-name="inline">
+ <property key="algorithm-expression"
value="t_order_${user_id % 2}" />
+ </algorithm-segment>
+ </database-strategy>
+ </rule>
+ </alter-sharding-table-rule>
+
+ <alter-sharding-table-rule
sql-case-id="alter-sharding-table-rule-with-none-table-strategy-and-hint-database-strategy">
+ <rule name="t_order_item">
+ <data-node>ds_${0..1}.t_order_item_${0..1}</data-node>
+ <database-strategy type="hint" sharding-column="user_id">
+ <algorithm-segment algorithm-name="hint_inline">
+ <property key="algorithm-expression"
value="t_order_${user_id % 2}" />
+ </algorithm-segment>
+ </database-strategy>
+ <table-strategy type="none" />
+ </rule>
+ </alter-sharding-table-rule>
+
<alter-sharding-table-reference-rule
sql-case-id="alter-sharding-table-reference-rule">
<rule name="reference_0" table-groups="t_order,t_order_item" />
<rule name="reference_1" table-groups="t_1,t_2" />
@@ -270,14 +298,46 @@
</strategy>
</alter-default-sharding-strategy>
- <alter-default-sharding-strategy
sql-case-id="alter-default-sharding-strategy-complex">
- <strategy default-type="TABLE" strategy-type="complex"
sharding-column="order_id,user_id">
- <algorithm-segment algorithm-name="INLINE">
- <property key="algorithm-expression" value="t_order_${order_id
% 2}_${user_id % 2}" />
+ <alter-default-sharding-strategy
sql-case-id="alter-default-sharding-table-strategy-with-complex-strategy-type">
+ <strategy default-type="TABLE" strategy-type="complex"
sharding-column="user_id,order_id">
+ <algorithm-segment algorithm-name="COMPLEX_INLINE">
+ <property key="algorithm-expression" value="t_order_${user_id
% 2}_${order_id % 2}" />
</algorithm-segment>
</strategy>
</alter-default-sharding-strategy>
+ <alter-default-sharding-strategy
sql-case-id="alter-default-sharding-table-strategy-with-hint-strategy-type">
+ <strategy default-type="TABLE" strategy-type="hint"
sharding-column="user_id">
+ <algorithm-segment algorithm-name="HINT_INLINE">
+ <property key="algorithm-expression" value="t_order_${user_id
% 2}" />
+ </algorithm-segment>
+ </strategy>
+ </alter-default-sharding-strategy>
+
+ <alter-default-sharding-strategy
sql-case-id="alter-default-sharding-table-strategy-with-none-strategy-type">
+ <strategy default-type="TABLE" strategy-type="none" />
+ </alter-default-sharding-strategy>
+
+ <alter-default-sharding-strategy
sql-case-id="alter-default-sharding-database-strategy-with-complex-strategy-type">
+ <strategy default-type="DATABASE" strategy-type="complex"
sharding-column="user_id,order_id">
+ <algorithm-segment algorithm-name="COMPLEX_INLINE">
+ <property key="algorithm-expression" value="t_order_${user_id
% 2}_${order_id % 2}" />
+ </algorithm-segment>
+ </strategy>
+ </alter-default-sharding-strategy>
+
+ <alter-default-sharding-strategy
sql-case-id="alter-default-sharding-database-strategy-with-hint-strategy-type">
+ <strategy default-type="DATABASE" strategy-type="hint"
sharding-column="user_id">
+ <algorithm-segment algorithm-name="HINT_INLINE">
+ <property key="algorithm-expression" value="t_order_${user_id
% 2}" />
+ </algorithm-segment>
+ </strategy>
+ </alter-default-sharding-strategy>
+
+ <alter-default-sharding-strategy
sql-case-id="alter-default-sharding-database-strategy-with-none-strategy-type">
+ <strategy default-type="DATABASE" strategy-type="none" />
+ </alter-default-sharding-strategy>
+
<alter-mask-rule sql-case-id="alter-mask-rule">
<rule name="t_mask">
<column name="phone_number">
diff --git a/test/it/parser/src/main/resources/case/rdl/create.xml
b/test/it/parser/src/main/resources/case/rdl/create.xml
index d6d76603540..1d21fea0ab5 100644
--- a/test/it/parser/src/main/resources/case/rdl/create.xml
+++ b/test/it/parser/src/main/resources/case/rdl/create.xml
@@ -570,14 +570,46 @@
</strategy>
</create-default-sharding-strategy>
- <create-default-sharding-strategy
sql-case-id="create-default-sharding-strategy-complex">
- <strategy default-type="TABLE" strategy-type="complex"
sharding-column="order_id,user_id">
- <algorithm-segment algorithm-name="INLINE">
+ <create-default-sharding-strategy
sql-case-id="create-default-sharding-table-strategy-with-complex-strategy-type">
+ <strategy default-type="TABLE" strategy-type="complex"
sharding-column="user_id,order_id">
+ <algorithm-segment algorithm-name="COMPLEX_INLINE">
+ <property key="algorithm-expression" value="t_order_${user_id
% 2}_${order_id % 2}" />
+ </algorithm-segment>
+ </strategy>
+ </create-default-sharding-strategy>
+
+ <create-default-sharding-strategy
sql-case-id="create-default-sharding-table-strategy-with-hint-strategy-type">
+ <strategy default-type="TABLE" strategy-type="hint"
sharding-column="user_id">
+ <algorithm-segment algorithm-name="HINT_INLINE">
+ <property key="algorithm-expression" value="t_order_${user_id
% 2}" />
+ </algorithm-segment>
+ </strategy>
+ </create-default-sharding-strategy>
+
+ <create-default-sharding-strategy
sql-case-id="create-default-sharding-table-strategy-with-none-strategy-type">
+ <strategy default-type="TABLE" strategy-type="none" />
+ </create-default-sharding-strategy>
+
+ <create-default-sharding-strategy
sql-case-id="create-default-sharding-database-strategy-with-complex-strategy-type">
+ <strategy default-type="DATABASE" strategy-type="complex"
sharding-column="user_id,order_id">
+ <algorithm-segment algorithm-name="COMPLEX_INLINE">
<property key="algorithm-expression" value="t_order_${user_id
% 2}_${order_id % 2}" />
</algorithm-segment>
</strategy>
</create-default-sharding-strategy>
+ <create-default-sharding-strategy
sql-case-id="create-default-sharding-database-strategy-with-hint-strategy-type">
+ <strategy default-type="DATABASE" strategy-type="hint"
sharding-column="user_id">
+ <algorithm-segment algorithm-name="HINT_INLINE">
+ <property key="algorithm-expression" value="t_order_${user_id
% 2}" />
+ </algorithm-segment>
+ </strategy>
+ </create-default-sharding-strategy>
+
+ <create-default-sharding-strategy
sql-case-id="create-default-sharding-database-strategy-with-none-strategy-type">
+ <strategy default-type="DATABASE" strategy-type="none" />
+ </create-default-sharding-strategy>
+
<create-default-shadow-algorithm
sql-case-id="create-default-shadow-algorithm">
<shadow-algorithm algorithm-id="default">
<algorithm algorithm-name="HINT">
@@ -615,6 +647,34 @@
<key-generate-strategy algorithm-name="snowflake" />
</rule>
</create-sharding-table-rule>
+
+ <create-sharding-table-rule
sql-case-id="create-sharding-table-rule-with-complex-table-strategy-and-standard-database-strategy">
+ <rule name="t_order_item">
+ <data-node>ds_${0..1}.t_order_item_${0..1}</data-node>
+ <table-strategy type="complex" sharding-column="user_id,order_id">
+ <algorithm-segment algorithm-name="complex_inline">
+ <property key="algorithm-expression"
value="t_order_${user_id % 2}_${order_id % 2}" />
+ </algorithm-segment>
+ </table-strategy>
+ <database-strategy type="standard" sharding-column="user_id">
+ <algorithm-segment algorithm-name="inline">
+ <property key="algorithm-expression"
value="t_order_${user_id % 2}" />
+ </algorithm-segment>
+ </database-strategy>
+ </rule>
+ </create-sharding-table-rule>
+
+ <create-sharding-table-rule
sql-case-id="create-sharding-table-rule-with-none-table-strategy-and-hint-database-strategy">
+ <rule name="t_order_item">
+ <data-node>ds_${0..1}.t_order_item_${0..1}</data-node>
+ <database-strategy type="hint" sharding-column="user_id">
+ <algorithm-segment algorithm-name="hint_inline">
+ <property key="algorithm-expression"
value="t_order_${user_id % 2}" />
+ </algorithm-segment>
+ </database-strategy>
+ <table-strategy type="none" />
+ </rule>
+ </create-sharding-table-rule>
<create-encrypt-rule
sql-case-id="create-encrypt-rule-without-quote-on-build-in-algorithm-type-name">
<rule name="t_encrypt" query-with-cipher-column="true">
diff --git a/test/it/parser/src/main/resources/sql/supported/rdl/alter.xml
b/test/it/parser/src/main/resources/sql/supported/rdl/alter.xml
index 687f48969f3..b6a8ed331f7 100644
--- a/test/it/parser/src/main/resources/sql/supported/rdl/alter.xml
+++ b/test/it/parser/src/main/resources/sql/supported/rdl/alter.xml
@@ -41,7 +41,14 @@
<sql-case id="alter-sharding-table-rule" value="ALTER SHARDING TABLE RULE
t_order
(DATANODES('ms_group_${0..1}.t_order_${0..1}'),DATABASE_STRATEGY(TYPE='standard',sharding_column
=
order_id,sharding_algorithm(type(name='INLINE',PROPERTIES('algorithm-expression'='ms_group_${order_id
% 2}')))),TABLE_STRATEGY(TYPE='standard',sharding_column =
user_id,sharding_algorithm(type(name='INLINE',PROPERTIES('algorithm-expression'='t_order_${user_id
% 2}')))),KEY_GENERATE_STRATEGY(COLUMN=another_ [...]
<sql-case id="alter-sharding-table-rule-complex" value="ALTER SHARDING
TABLE RULE t_order
(DATANODES('ms_group_${0..1}_${0..1}.t_order_${0..1}'),DATABASE_STRATEGY(TYPE='complex',sharding_columns
= order_id,user_id,
sharding_algorithm(type(name='INLINE',PROPERTIES('algorithm-expression'='ms_group_${order_id
% 2}_${user_id % 2}')))),TABLE_STRATEGY(TYPE='standard',sharding_column =
user_id,sharding_algorithm(type(name='INLINE',PROPERTIES('algorithm-expression'='t_order_${user_id
% 2}')) [...]
<sql-case id="alter-sharding-table-rule-with-auditor" value="ALTER
SHARDING TABLE RULE t_order
(DATANODES('ms_group_${0..1}.t_order_${0..1}'),DATABASE_STRATEGY(TYPE='standard',sharding_column
=
order_id,sharding_algorithm(type(name='INLINE',PROPERTIES('algorithm-expression'='ms_group_${order_id
% 2}')))),TABLE_STRATEGY(TYPE='standard',sharding_column =
user_id,sharding_algorithm(type(name='INLINE',PROPERTIES('algorithm-expression'='t_order_${user_id
% 2}')))),KEY_GENERATE_STRATEGY(CO [...]
+ <sql-case
id="alter-sharding-table-rule-with-complex-table-strategy-and-standard-database-strategy"
value="ALTER SHARDING TABLE RULE t_order_item
(DATANODES('ds_${0..1}.t_order_item_${0..1}'),
DATABASE_STRATEGY(TYPE='standard',SHARDING_COLUMN=user_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='ds_${user_id
% 2}')))),
TABLE_STRATEGY(TYPE='complex',SHARDING_COLUMNS=user_id,order_id,SHARDING_ALGORITHM(TYPE(NAME='complex_inline',PROPERTIES('algorithm-expressi
[...]
+ <sql-case
id="alter-sharding-table-rule-with-none-table-strategy-and-hint-database-strategy"
value="ALTER SHARDING TABLE RULE t_order_item
(DATANODES('ds_${0..1}.t_order_item_${0..1}'),
DATABASE_STRATEGY(TYPE='hint',SHARDING_COLUMN=user_id,SHARDING_ALGORITHM(TYPE(NAME='hint_inline',PROPERTIES('algorithm-expression'='ds_${user_id
% 2}')))), TABLE_STRATEGY(TYPE='none'));" db-types="ShardingSphere" />
<sql-case id="alter-default-sharding-strategy" value="ALTER DEFAULT
SHARDING TABLE STRATEGY(TYPE='standard', SHARDING_COLUMN=order_id,
SHARDING_ALGORITHM(TYPE(NAME='INLINE',PROPERTIES('algorithm-expression'='t_order_${order_id
% 2}'))))" db-types="ShardingSphere" />
- <sql-case id="alter-default-sharding-strategy-complex" value="ALTER
DEFAULT SHARDING TABLE STRATEGY(TYPE='complex',
SHARDING_COLUMNS=order_id,user_id,
SHARDING_ALGORITHM(TYPE(NAME='INLINE',PROPERTIES('algorithm-expression'='t_order_${order_id
% 2}_${user_id % 2}'))))" db-types="ShardingSphere" />
+ <sql-case
id="alter-default-sharding-table-strategy-with-complex-strategy-type"
value="ALTER DEFAULT SHARDING TABLE STRATEGY (TYPE='complex',
SHARDING_COLUMNS=user_id,order_id, SHARDING_ALGORITHM(TYPE(NAME=COMPLEX_INLINE,
PROPERTIES('algorithm-expression'='t_order_${user_id % 2}_${order_id %
2}'))));" db-types="ShardingSphere" />
+ <sql-case
id="alter-default-sharding-table-strategy-with-hint-strategy-type" value="ALTER
DEFAULT SHARDING TABLE STRATEGY (TYPE='hint', SHARDING_COLUMN=user_id,
SHARDING_ALGORITHM(TYPE(NAME=HINT_INLINE,
PROPERTIES('algorithm-expression'='t_order_${user_id % 2}'))));"
db-types="ShardingSphere" />
+ <sql-case
id="alter-default-sharding-table-strategy-with-none-strategy-type" value="ALTER
DEFAULT SHARDING TABLE STRATEGY (TYPE='none');" db-types="ShardingSphere" />
+ <sql-case
id="alter-default-sharding-database-strategy-with-complex-strategy-type"
value="ALTER DEFAULT SHARDING DATABASE STRATEGY (TYPE='complex',
SHARDING_COLUMNS=user_id,order_id, SHARDING_ALGORITHM(TYPE(NAME=COMPLEX_INLINE,
PROPERTIES('algorithm-expression'='t_order_${user_id % 2}_${order_id %
2}'))));" db-types="ShardingSphere" />
+ <sql-case
id="alter-default-sharding-database-strategy-with-hint-strategy-type"
value="ALTER DEFAULT SHARDING DATABASE STRATEGY (TYPE='hint',
SHARDING_COLUMN=user_id, SHARDING_ALGORITHM(TYPE(NAME=HINT_INLINE,
PROPERTIES('algorithm-expression'='t_order_${user_id % 2}'))));"
db-types="ShardingSphere" />
+ <sql-case
id="alter-default-sharding-database-strategy-with-none-strategy-type"
value="ALTER DEFAULT SHARDING DATABASE STRATEGY (TYPE='none');"
db-types="ShardingSphere" />
<sql-case id="alter-mask-rule" value="ALTER MASK RULE t_mask
(COLUMNS((NAME=phone_number,TYPE(NAME='MASK_FROM_X_TO_Y',
PROPERTIES('from-x'=1, 'to-y'=2, 'replace-char'='*'))),
(NAME=address,TYPE(NAME=MD5))));" db-types="ShardingSphere" />
</sql-cases>
diff --git a/test/it/parser/src/main/resources/sql/supported/rdl/create.xml
b/test/it/parser/src/main/resources/sql/supported/rdl/create.xml
index 3d7a3040ee3..edb3060ce0b 100644
--- a/test/it/parser/src/main/resources/sql/supported/rdl/create.xml
+++ b/test/it/parser/src/main/resources/sql/supported/rdl/create.xml
@@ -50,12 +50,19 @@
<sql-case id="create-shadow-rule-if-not-exists" value="CREATE SHADOW RULE
IF NOT EXISTS
shadow_rule(SOURCE=demo_ds,SHADOW=demo_ds_shadow,t_order(TYPE(NAME='REGEX_MATCH',PROPERTIES('operation'='insert','column'='user_id','regex'='[1]')),TYPE(NAME='SQL_HINT')))"
db-types="ShardingSphere" />
<sql-case id="create-default-sharding-table-strategy-with-lower-case"
value="create default sharding table strategy(type='standard',
sharding_column=order_id,
SHARDING_ALGORITHM(TYPE(NAME='INLINE',PROPERTIES('algorithm-expression'='t_order_${order_id
% 2}'))))" db-types="ShardingSphere" />
<sql-case
id="create-default-sharding-table-strategy-if-not-exists-with-lower-case"
value="create default sharding table strategy if not exists(type='standard',
sharding_column=order_id,
SHARDING_ALGORITHM(TYPE(NAME='INLINE',PROPERTIES('algorithm-expression'='t_order_${order_id
% 2}'))))" db-types="ShardingSphere" />
+ <sql-case
id="create-default-sharding-table-strategy-with-complex-strategy-type"
value="CREATE DEFAULT SHARDING TABLE STRATEGY (TYPE='complex',
SHARDING_COLUMNS=user_id,order_id, SHARDING_ALGORITHM(TYPE(NAME=COMPLEX_INLINE,
PROPERTIES('algorithm-expression'='${user_id % 2}_${order_id % 2}'))));"
db-types="ShardingSphere" />
+ <sql-case
id="create-default-sharding-table-strategy-with-hint-strategy-type"
value="CREATE DEFAULT SHARDING TABLE STRATEGY (TYPE='hint',
SHARDING_COLUMN=user_id, SHARDING_ALGORITHM(TYPE(NAME=HINT_INLINE,
PROPERTIES('algorithm-expression'='t_order_${user_id % 2}'))));"
db-types="ShardingSphere" />
+ <sql-case
id="create-default-sharding-table-strategy-with-none-strategy-type"
value="CREATE DEFAULT SHARDING TABLE STRATEGY (TYPE='none');"
db-types="ShardingSphere" />
+ <sql-case
id="create-default-sharding-database-strategy-with-complex-strategy-type"
value="CREATE DEFAULT SHARDING DATABASE STRATEGY (TYPE='complex',
SHARDING_COLUMNS=user_id,order_id, SHARDING_ALGORITHM(TYPE(NAME=COMPLEX_INLINE,
PROPERTIES('algorithm-expression'='t_order_${user_id % 2}_${order_id %
2}'))));" db-types="ShardingSphere" />
+ <sql-case
id="create-default-sharding-database-strategy-with-hint-strategy-type"
value="CREATE DEFAULT SHARDING DATABASE STRATEGY (TYPE='hint',
SHARDING_COLUMN=user_id, SHARDING_ALGORITHM(TYPE(NAME=HINT_INLINE,
PROPERTIES('algorithm-expression'='t_order_${user_id % 2}'))));"
db-types="ShardingSphere" />
+ <sql-case
id="create-default-sharding-database-strategy-with-none-strategy-type"
value="CREATE DEFAULT SHARDING DATABASE STRATEGY (TYPE='none');"
db-types="ShardingSphere" />
<sql-case id="create-default-sharding-database-strategy" value="CREATE
DEFAULT SHARDING DATABASE STRATEGY(TYPE='STANDARD', SHARDING_COLUMN=ORDER_ID,
SHARDING_ALGORITHM(TYPE(NAME='INLINE',PROPERTIES('algorithm-expression'='ms_group_${order_id
% 2}'))))" db-types="ShardingSphere" />
<sql-case id="create-default-sharding-database-strategy-if-not-exists"
value="CREATE DEFAULT SHARDING DATABASE STRATEGY IF NOT EXISTS
(TYPE='STANDARD', SHARDING_COLUMN=ORDER_ID,
SHARDING_ALGORITHM(TYPE(NAME='INLINE',PROPERTIES('algorithm-expression'='ms_group_${order_id
% 2}'))))" db-types="ShardingSphere" />
- <sql-case id="create-default-sharding-strategy-complex" value="CREATE
DEFAULT SHARDING TABLE STRATEGY(TYPE='complex',
SHARDING_COLUMNS=order_id,user_id,
SHARDING_ALGORITHM(TYPE(NAME='INLINE',PROPERTIES('algorithm-expression'='t_order_${user_id
% 2}_${order_id % 2}'))))" db-types="ShardingSphere" />
<sql-case id="create-sharding-table-rule" value="CREATE SHARDING TABLE
RULE t_order
(DATANODES('ms_group_${0..1}.t_order_${0..1}'),DATABASE_STRATEGY(TYPE='standard',sharding_column
=
order_id,sharding_algorithm(type(name='INLINE',PROPERTIES('algorithm-expression'='ms_group_${order_id
% 2}')))),TABLE_STRATEGY(TYPE='standard',sharding_column =
user_id,sharding_algorithm(type(name='INLINE',PROPERTIES('algorithm-expression'='t_order_${user_id
% 2}')))),KEY_GENERATE_STRATEGY(COLUMN=anothe [...]
<sql-case id="create-sharding-table-rule-with-enum-inline-expression"
value="CREATE SHARDING TABLE RULE t_order
(DATANODES("ms_group_${['abc','ac']}.t_order_${0..1}"),DATABASE_STRATEGY(TYPE='standard',sharding_column
=
order_name,sharding_algorithm(type(name='INLINE',PROPERTIES('algorithm-expression'='ms_group_{order_name}')))),TABLE_STRATEGY(TYPE='standard',sharding_column
=
user_id,sharding_algorithm(type(name='INLINE',PROPERTIES('algorithm-expression'='t_order_${user_id
[...]
<sql-case id="create-sharding-table-rule-complex" value="CREATE SHARDING
TABLE RULE t_order
(DATANODES('ms_group_${0..1}_${0..1}.t_order_${0..1}'),DATABASE_STRATEGY(TYPE='complex',sharding_columns
=
order_id,user_id,sharding_algorithm(type(name='INLINE',PROPERTIES('algorithm-expression'='ms_group_${order_id
% 2}_${user_id % 2}')))),TABLE_STRATEGY(TYPE='standard',sharding_column =
user_id,sharding_algorithm(type(name='INLINE',PROPERTIES('algorithm-expression'='t_order_${user_id
% 2}') [...]
+ <sql-case
id="create-sharding-table-rule-with-complex-table-strategy-and-standard-database-strategy"
value="CREATE SHARDING TABLE RULE t_order_item
(DATANODES('ds_${0..1}.t_order_item_${0..1}'),
DATABASE_STRATEGY(TYPE='standard',SHARDING_COLUMN=user_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='ds_${user_id
% 2}')))),
TABLE_STRATEGY(TYPE='complex',SHARDING_COLUMNS=user_id,order_id,SHARDING_ALGORITHM(TYPE(NAME='complex_inline',PROPERTIES('algorithm-expres
[...]
+ <sql-case
id="create-sharding-table-rule-with-none-table-strategy-and-hint-database-strategy"
value="CREATE SHARDING TABLE RULE t_order_item
(DATANODES('ds_${0..1}.t_order_item_${0..1}'),
DATABASE_STRATEGY(TYPE='hint',SHARDING_COLUMN=user_id,SHARDING_ALGORITHM(TYPE(NAME='hint_inline',PROPERTIES('algorithm-expression'='ds_${user_id
% 2}')))), TABLE_STRATEGY(TYPE='none'));" db-types="ShardingSphere" />
<sql-case id="create-sharding-table-rule-with-auto-create-algorithm"
value="CREATE SHARDING TABLE RULE t_order
(DATANODES('ms_group_${0..1}.t_order_${0..1}'),DATABASE_STRATEGY(TYPE='standard',sharding_column
=
order_id,sharding_algorithm(TYPE(NAME='INLINE',PROPERTIES('algorithm-expression'='ms_group_${order_id
% 2}')))),TABLE_STRATEGY(TYPE='standard',sharding_column =
user_id,sharding_algorithm(type(name='INLINE',PROPERTIES('algorithm-expression'='t_order_${user_id
% 2}')))),KEY_GENE [...]
<sql-case id="create-sharding-table-rule-with-auditor" value="CREATE
SHARDING TABLE RULE t_order
(DATANODES('ms_group_${0..1}.t_order_${0..1}'),DATABASE_STRATEGY(TYPE='standard',sharding_column
=
order_id,sharding_algorithm(TYPE(NAME='INLINE',PROPERTIES('algorithm-expression'='ms_group_${order_id
% 2}')))),TABLE_STRATEGY(TYPE='standard',sharding_column =
user_id,sharding_algorithm(type(name='INLINE',PROPERTIES('algorithm-expression'='t_order_${user_id
% 2}')))),KEY_GENERATE_STRATEGY( [...]
<sql-case id="create-sharding-table-rule-with-auditor-if-not-exists"
value="CREATE SHARDING TABLE RULE IF NOT EXISTS t_order
(DATANODES('ms_group_${0..1}.t_order_${0..1}'),DATABASE_STRATEGY(TYPE='standard',sharding_column
=
order_id,sharding_algorithm(TYPE(NAME='INLINE',PROPERTIES('algorithm-expression'='ms_group_${order_id
% 2}')))),TABLE_STRATEGY(TYPE='standard',sharding_column =
user_id,sharding_algorithm(type(name='INLINE',PROPERTIES('algorithm-expression'='t_order_${user_id
% 2} [...]