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 bf918cf641f add test case for binding, broadcast , encrypt rules
(#21648)
bf918cf641f is described below
commit bf918cf641fd8ded4d2fcfbd54451a8dfc4c2b55
Author: tianhao960 <[email protected]>
AuthorDate: Fri Oct 21 14:41:13 2022 +0800
add test case for binding, broadcast , encrypt rules (#21648)
* add test case for single table rule
* add test case for binding, broadcast , encrypt rules
* resolve conflict and merge master
* refactor to use standard table and add more test cases for postgres
---
.../rdl_empty_rules/alter_binding_rules.xml | 2 +-
...oadcast_rules.xml => alter_broadcast_rules.xml} | 3 +-
.../dataset/rdl_empty_rules/alter_encrypt_rule.xml | 2 +-
.../rdl_empty_rules/alter_sharding_rules.xml | 2 +-
.../alter_sharding_rules_show_tables.xml | 8 +-
...able_rules.xml => alter_single_table_rules.xml} | 10 +-
.../rdl_empty_rules/create_binding_rules.xml | 2 +-
.../rdl_empty_rules/create_broadcast_rules.xml | 2 +-
.../rdl_empty_rules/create_sharding_rules.xml | 2 +-
.../create_sharding_rules_show_tables.xml | 12 ++-
.../rdl_empty_rules/create_single_table_rules.xml | 10 +-
.../drop_sharding_rules_show_tables.xml | 16 ++-
...table_rules.xml => drop_single_table_rules.xml} | 9 +-
.../cases/rdl/rdl-integration-test-cases.xml | 111 +++++++++++++++++----
.../data/actual/init-sql/mysql/01-actual-init.sql | 40 ++++++--
.../actual/init-sql/postgresql/01-actual-init.sql | 36 ++++++-
16 files changed, 205 insertions(+), 62 deletions(-)
diff --git
a/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_binding_rules.xml
b/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_binding_rules.xml
index f3a500325f2..e3e3e5128ad 100644
---
a/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_binding_rules.xml
+++
b/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_binding_rules.xml
@@ -19,5 +19,5 @@
<metadata>
<column name="sharding_binding_tables" />
</metadata>
- <row values="t_user,t_user_item" />
+ <row values="t_order,t_order_item" />
</dataset>
diff --git
a/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_broadcast_rules.xml
b/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_broadcast_rules.xml
similarity index 92%
copy from
test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_broadcast_rules.xml
copy to
test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_broadcast_rules.xml
index d527d317266..1dfd1c72379 100644
---
a/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_broadcast_rules.xml
+++
b/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_broadcast_rules.xml
@@ -19,5 +19,6 @@
<metadata>
<column name="sharding_broadcast_tables" />
</metadata>
- <row values="t_broadcast_table" />
+ <row values="t_country" />
+ <row values="t_product_category" />
</dataset>
diff --git
a/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_encrypt_rule.xml
b/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_encrypt_rule.xml
index fd3507681c3..1ad36014694 100644
---
a/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_encrypt_rule.xml
+++
b/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_encrypt_rule.xml
@@ -30,5 +30,5 @@
<column name="encryptor_props" />
<column name="query_with_cipher_column" />
</metadata>
- <row values="t_user| pwd| | pwd_cipher| | pwd_plain| | | | AES|
aes-key-value=123abc| true" />
+ <row values="t_user| pwd| | pwd_cipher| | pwd_plain| | | | AES|
aes-key-value=123456abcd| true" />
</dataset>
diff --git
a/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_sharding_rules.xml
b/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_sharding_rules.xml
index e7c1cc5a6b4..7e7ca28af32 100644
---
a/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_sharding_rules.xml
+++
b/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_sharding_rules.xml
@@ -34,5 +34,5 @@
<column name="auditor_types" />
<column name="allow_hint_disable" />
</metadata>
- <row values="t_user| ds_0.t_user_${0..3} | | | | | | STANDARD | user_id|
inline| algorithm-expression=t_user_${user_id % 4} | | | | |" />
+ <row values="t_order| ds_2.t_order_${0..3} | | | | | | STANDARD |
order_id| inline| algorithm-expression=t_order_${order_id % 4} | | | | |" />
</dataset>
diff --git
a/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_sharding_rules_show_tables.xml
b/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_sharding_rules_show_tables.xml
index 0d0c6d5a217..991d020aefc 100644
---
a/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_sharding_rules_show_tables.xml
+++
b/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_sharding_rules_show_tables.xml
@@ -20,6 +20,12 @@
<column name="Tables_in_rdl_empty_rules" />
<column name="Table_type" />
</metadata>
- <row values="t_user_4| BASE TABLE" />
+ <row values="t_order_item_2| BASE TABLE" />
+ <row values="t_order_item_3| BASE TABLE" />
+ <row values="t_order_item_0| BASE TABLE" />
+ <row values="t_country| BASE TABLE" />
+ <row values="t_order_item_1| BASE TABLE" />
+ <row values="t_order| BASE TABLE" />
<row values="t_user| BASE TABLE" />
+ <row values="t_product_category| BASE TABLE" />
</dataset>
diff --git
a/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_single_table_rules.xml
b/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_single_table_rules.xml
similarity index 84%
copy from
test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_single_table_rules.xml
copy to
test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_single_table_rules.xml
index 3844292733d..484357834d2 100644
---
a/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_single_table_rules.xml
+++
b/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/alter_single_table_rules.xml
@@ -20,9 +20,9 @@
<column name="table_name" />
<column name="resource_name" />
</metadata>
- <row values="t_user_0| ds_0" />
- <row values="t_user_4| ds_0" />
- <row values="t_user_3| ds_0" />
- <row values="t_user_2| ds_0" />
- <row values="t_user_1| ds_0" />
+ <row values="t_country| ds_2" />
+ <row values="t_user| ds_0" />
+ <row values="temp_alter| ds_0" />
+ <row values="t_product_category| ds_2" />
</dataset>
+
diff --git
a/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_binding_rules.xml
b/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_binding_rules.xml
index f3a500325f2..e3e3e5128ad 100644
---
a/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_binding_rules.xml
+++
b/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_binding_rules.xml
@@ -19,5 +19,5 @@
<metadata>
<column name="sharding_binding_tables" />
</metadata>
- <row values="t_user,t_user_item" />
+ <row values="t_order,t_order_item" />
</dataset>
diff --git
a/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_broadcast_rules.xml
b/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_broadcast_rules.xml
index d527d317266..306a7f0aa81 100644
---
a/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_broadcast_rules.xml
+++
b/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_broadcast_rules.xml
@@ -19,5 +19,5 @@
<metadata>
<column name="sharding_broadcast_tables" />
</metadata>
- <row values="t_broadcast_table" />
+ <row values="t_product_category" />
</dataset>
diff --git
a/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_sharding_rules.xml
b/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_sharding_rules.xml
index b97bf82dde6..3ac65df1c31 100644
---
a/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_sharding_rules.xml
+++
b/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_sharding_rules.xml
@@ -34,5 +34,5 @@
<column name="auditor_types" />
<column name="allow_hint_disable" />
</metadata>
- <row values="t_user| ds_0.t_user_${0..1} | | | | | | STANDARD | user_id|
inline| algorithm-expression=t_user_${user_id % 2} | | | | | " />
+ <row values="t_order| ds_2.t_order_${0..1} | | | | | | STANDARD |
order_id| inline| algorithm-expression=t_order_${order_id % 2} | | | | | " />
</dataset>
diff --git
a/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_sharding_rules_show_tables.xml
b/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_sharding_rules_show_tables.xml
index d1e48d75112..c6d50b6379d 100644
---
a/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_sharding_rules_show_tables.xml
+++
b/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_sharding_rules_show_tables.xml
@@ -20,8 +20,14 @@
<column name="Tables_in_rdl_empty_rules" />
<column name="Table_type" />
</metadata>
- <row values="t_user_4| BASE TABLE" />
- <row values="t_user_3| BASE TABLE" />
- <row values="t_user_2| BASE TABLE" />
+ <row values="t_order_item_2| BASE TABLE" />
+ <row values="t_order_item_3| BASE TABLE" />
+ <row values="t_order_item_0| BASE TABLE" />
+ <row values="t_country| BASE TABLE" />
+ <row values="t_order_item_1| BASE TABLE" />
+ <row values="t_order| BASE TABLE" />
<row values="t_user| BASE TABLE" />
+ <row values="t_order_2| BASE TABLE" />
+ <row values="t_order_3| BASE TABLE" />
+ <row values="t_product_category| BASE TABLE" />
</dataset>
diff --git
a/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_single_table_rules.xml
b/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_single_table_rules.xml
index 3844292733d..61733b93110 100644
---
a/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_single_table_rules.xml
+++
b/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_single_table_rules.xml
@@ -20,9 +20,9 @@
<column name="table_name" />
<column name="resource_name" />
</metadata>
- <row values="t_user_0| ds_0" />
- <row values="t_user_4| ds_0" />
- <row values="t_user_3| ds_0" />
- <row values="t_user_2| ds_0" />
- <row values="t_user_1| ds_0" />
+ <row values="temp| ds_1" />
+ <row values="t_country| ds_2" />
+ <row values="t_user| ds_0" />
+ <row values="t_product_category| ds_2" />
</dataset>
+
diff --git
a/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_sharding_rules_show_tables.xml
b/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_sharding_rules_show_tables.xml
index 5b41447eb1d..529b4107329 100644
---
a/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_sharding_rules_show_tables.xml
+++
b/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_sharding_rules_show_tables.xml
@@ -20,9 +20,15 @@
<column name="Tables_in_rdl_empty_rules" />
<column name="Table_type" />
</metadata>
- <row values="t_user_4| BASE TABLE" />
- <row values="t_user_3| BASE TABLE" />
- <row values="t_user_2| BASE TABLE" />
- <row values="t_user_1| BASE TABLE" />
- <row values="t_user_0| BASE TABLE" />
+ <row values="t_order_item_2| BASE TABLE" />
+ <row values="t_order_item_3| BASE TABLE" />
+ <row values="t_order_item_0| BASE TABLE" />
+ <row values="t_country| BASE TABLE" />
+ <row values="t_order_item_1| BASE TABLE" />
+ <row values="t_user| BASE TABLE" />
+ <row values="t_order_2| BASE TABLE" />
+ <row values="t_order_3| BASE TABLE" />
+ <row values="t_order_0| BASE TABLE" />
+ <row values="t_order_1| BASE TABLE" />
+ <row values="t_product_category| BASE TABLE" />
</dataset>
diff --git
a/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_single_table_rules.xml
b/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_single_table_rules.xml
similarity index 84%
copy from
test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_single_table_rules.xml
copy to
test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_single_table_rules.xml
index 3844292733d..5fac1318fc5 100644
---
a/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/create_single_table_rules.xml
+++
b/test/integration-test/test-suite/src/test/resources/cases/rdl/dataset/rdl_empty_rules/drop_single_table_rules.xml
@@ -20,9 +20,8 @@
<column name="table_name" />
<column name="resource_name" />
</metadata>
- <row values="t_user_0| ds_0" />
- <row values="t_user_4| ds_0" />
- <row values="t_user_3| ds_0" />
- <row values="t_user_2| ds_0" />
- <row values="t_user_1| ds_0" />
+ <row values="t_country| ds_2" />
+ <row values="t_user| ds_0" />
+ <row values="t_product_category| ds_2" />
</dataset>
+
diff --git
a/test/integration-test/test-suite/src/test/resources/cases/rdl/rdl-integration-test-cases.xml
b/test/integration-test/test-suite/src/test/resources/cases/rdl/rdl-integration-test-cases.xml
index e94d56527c0..623f4bb376e 100644
---
a/test/integration-test/test-suite/src/test/resources/cases/rdl/rdl-integration-test-cases.xml
+++
b/test/integration-test/test-suite/src/test/resources/cases/rdl/rdl-integration-test-cases.xml
@@ -31,50 +31,126 @@
<!-- <assertion-sql sql="SHOW DATABASE RESOURCES" />-->
<!-- </assertion>-->
<!-- </test-case>-->
- <test-case sql="CREATE DEFAULT SINGLE TABLE RULE RESOURCE = ds_0;"
db-types="MySQL">
- <assertion expected-data-file="create_single_table_rules.xml">
- <assertion-sql sql="SHOW SINGLE TABLES;" />
- <destroy-sql sql="DROP DEFAULT SINGLE TABLE RULE"/>
+ <test-case sql="CREATE SHARDING BINDING TABLE RULES
(t_order,t_order_item);" db-types="MySQL, PostgreSQL">
+ <assertion expected-data-file="create_binding_rules.xml">
+ <initial-sql sql="CREATE SHARDING TABLE RULE t_order
(DATANODES('ds_2.t_order_${0..1}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_${order_id
% 2}')))));
+ CREATE SHARDING TABLE RULE t_order_item
(DATANODES('ds_2.t_order_item_${0..1}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_item_${order_id
% 2}')))));"></initial-sql>
+ <assertion-sql sql="SHOW SHARDING BINDING TABLE RULES;" />
+ <destroy-sql sql="DROP SHARDING BINDING TABLE RULES;DROP SHARDING
TABLE RULE t_order;DROP SHARDING TABLE RULE t_order_item;"/>
+ </assertion>
+ </test-case>
+ <test-case sql="ALTER SHARDING BINDING TABLE RULES (t_order,t_order_item)"
db-types="MySQL, PostgreSQL">
+ <assertion expected-data-file="alter_binding_rules.xml">
+ <initial-sql sql="CREATE SHARDING TABLE RULE t_order
(DATANODES('ds_2.t_order_${0..1}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_${order_id
% 2}')))));
+ CREATE SHARDING TABLE RULE t_order_item
(DATANODES('ds_2.t_order_item_${0..1}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_item_${order_id
% 2}')))));
+ CREATE SHARDING BINDING TABLE RULES
(t_order,t_order_item);"></initial-sql>
+ <assertion-sql sql="SHOW SHARDING BINDING TABLE RULES;" />
+ <destroy-sql sql="DROP SHARDING BINDING TABLE RULES;DROP SHARDING
TABLE RULE t_order;DROP SHARDING TABLE RULE t_order_item;"/>
+ </assertion>
+ </test-case>
+ <test-case sql="DROP SHARDING BINDING TABLE RULES;" db-types="MySQL,
PostgreSQL">
+ <assertion expected-data-file="drop_binding_rules.xml">
+ <initial-sql sql="CREATE SHARDING TABLE RULE t_order
(DATANODES('ds_2.t_order_${0..1}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_${order_id
% 2}')))));
+ CREATE SHARDING TABLE RULE t_order_item
(DATANODES('ds_2.t_order_item_${0..1}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_item_${order_id
% 2}')))));
+ CREATE SHARDING BINDING TABLE RULES
(t_order,t_order_item);"></initial-sql>
+ <assertion-sql sql="SHOW SHARDING BINDING TABLE RULES;" />
+ <destroy-sql sql="DROP SHARDING TABLE RULE t_order;DROP SHARDING
TABLE RULE t_order_item;"/>
</assertion>
</test-case>
- <test-case sql="ALTER DEFAULT SINGLE TABLE RULE RESOURCE = ds_0;"
db-types="MySQL">
+ <test-case sql="CREATE SHARDING BROADCAST TABLE RULES
(t_product_category);" db-types="MySQL, PostgreSQL">
+ <assertion expected-data-file="create_broadcast_rules.xml">
+ <assertion-sql sql="SHOW SHARDING BROADCAST TABLE RULES;" />
+ <destroy-sql sql="DROP SHARDING BROADCAST TABLE RULES
(t_product_category); "/>
+ </assertion>
+ </test-case>
+ <test-case sql="ALTER SHARDING BROADCAST TABLE RULES
(t_product_category,t_country);" db-types="MySQL, PostgreSQL">
+ <assertion expected-data-file="alter_broadcast_rules.xml">
+ <initial-sql sql="CREATE SHARDING BROADCAST TABLE RULES
(t_product_category);" />
+ <assertion-sql sql="SHOW SHARDING BROADCAST TABLE RULES;" />
+ <destroy-sql sql="DROP SHARDING BROADCAST TABLE RULES
(t_product_category,t_country); "/>
+ </assertion>
+ </test-case>
+ <test-case sql="DROP SHARDING BROADCAST TABLE RULES (t_country);"
db-types="MySQL, PostgreSQL">
+ <assertion expected-data-file="drop_broadcast_rules.xml">
+ <initial-sql sql="CREATE SHARDING BROADCAST TABLE RULES
(t_country);" />
+ <assertion-sql sql="SHOW SHARDING BROADCAST TABLE RULES;" />
+ </assertion>
+ </test-case>
+ <test-case sql="CREATE ENCRYPT RULE t_user
(COLUMNS((NAME=pwd,PLAIN=pwd_plain,CIPHER=pwd_cipher,TYPE(NAME='AES',PROPERTIES('aes-key-value'='123456abc')))),QUERY_WITH_CIPHER_COLUMN=true);"
db-types="MySQL, PostgreSQL">
+ <assertion expected-data-file="create_encrypt_rule.xml">
+ <assertion-sql sql="SHOW ENCRYPT TABLE RULE t_user;" />
+ <destroy-sql sql="DROP ENCRYPT RULE t_user "/>
+ </assertion>
+ </test-case>
+ <test-case sql="ALTER ENCRYPT RULE t_user
(COLUMNS((NAME=pwd,PLAIN=pwd_plain,CIPHER=pwd_cipher,TYPE(NAME='AES',PROPERTIES('aes-key-value'='123456abcd')))),QUERY_WITH_CIPHER_COLUMN=true);"
db-types="MySQL, PostgreSQL">
+ <assertion expected-data-file="alter_encrypt_rule.xml">
+ <initial-sql sql="CREATE ENCRYPT RULE t_user
(COLUMNS((NAME=pwd,PLAIN=pwd_plain,CIPHER=pwd_cipher,TYPE(NAME='AES',PROPERTIES('aes-key-value'='123456abc')))),QUERY_WITH_CIPHER_COLUMN=true);"
/>
+ <assertion-sql sql="SHOW ENCRYPT TABLE RULE t_user;" />
+ <destroy-sql sql="DROP ENCRYPT RULE t_user "/>
+ </assertion>
+ </test-case>
+ <test-case sql="DROP ENCRYPT RULE t_user;" db-types="MySQL, PostgreSQL">
+ <assertion expected-data-file="drop_encrypt_rule.xml">
+ <initial-sql sql="CREATE ENCRYPT RULE t_user
(COLUMNS((NAME=pwd,PLAIN=pwd_plain,CIPHER=pwd_cipher,TYPE(NAME='AES',PROPERTIES('aes-key-value'='123456abc')))),QUERY_WITH_CIPHER_COLUMN=true);"
/>
+ <assertion-sql sql="SHOW ENCRYPT TABLE RULE t_user;" />
+ </assertion>
+ </test-case>
+ <test-case sql="CREATE TABLE temp (country_id INT PRIMARY KEY,
country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT
NULL);" db-types="MySQL, PostgreSQL">
<assertion expected-data-file="create_single_table_rules.xml">
- <initial-sql sql="CREATE DEFAULT SINGLE TABLE RULE RESOURCE =
ds_1;" />
+ <initial-sql sql="CREATE SHARDING TABLE RULE t_order
(DATANODES('ds_2.t_order_${0..3}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_${order_id
% 4}')))));
+ CREATE SHARDING TABLE RULE t_order_item
(DATANODES('ds_2.t_order_item_${0..3}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_item_${order_id
% 4}')))));
+ CREATE DEFAULT SINGLE TABLE RULE RESOURCE = ds_1;"></initial-sql>
+ <assertion-sql sql="SHOW SINGLE TABLES ;" />
+ <destroy-sql sql="DROP TABLE temp;DROP DEFAULT SINGLE TABLE
RULE;DROP SHARDING TABLE RULE t_order;DROP SHARDING TABLE RULE t_order_item;"/>
+ </assertion>
+ </test-case>
+ <test-case sql="CREATE TABLE temp_alter (country_id INT PRIMARY KEY,
country_name VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT
NULL);" db-types="MySQL, PostgreSQL">
+ <assertion expected-data-file="alter_single_table_rules.xml">
+ <initial-sql sql="CREATE SHARDING TABLE RULE t_order
(DATANODES('ds_2.t_order_${0..3}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_${order_id
% 4}')))));
+ CREATE SHARDING TABLE RULE t_order_item
(DATANODES('ds_2.t_order_item_${0..3}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_item_${order_id
% 4}')))));
+ CREATE DEFAULT SINGLE TABLE RULE RESOURCE = ds_1;ALTER DEFAULT
SINGLE TABLE RULE RESOURCE = ds_0;" />
<assertion-sql sql="SHOW SINGLE TABLES;" />
- <destroy-sql sql="DROP DEFAULT SINGLE TABLE RULE"/>
+ <destroy-sql sql="DROP TABLE temp_alter;DROP DEFAULT SINGLE TABLE
RULE;DROP SHARDING TABLE RULE t_order;DROP SHARDING TABLE RULE t_order_item;"/>
</assertion>
</test-case>
- <test-case sql="DROP DEFAULT SINGLE TABLE RULE" db-types="MySQL">
- <assertion expected-data-file="create_single_table_rules.xml">
- <initial-sql sql="CREATE DEFAULT SINGLE TABLE RULE RESOURCE =
ds_0;" />
+ <test-case sql="DROP DEFAULT SINGLE TABLE RULE" db-types="MySQL,
PostgreSQL">
+ <assertion expected-data-file="drop_single_table_rules.xml">
+ <initial-sql sql="CREATE SHARDING TABLE RULE t_order
(DATANODES('ds_2.t_order_${0..3}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_${order_id
% 4}')))));
+ CREATE SHARDING TABLE RULE t_order_item
(DATANODES('ds_2.t_order_item_${0..3}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_item_${order_id
% 4}')))));
+ CREATE DEFAULT SINGLE TABLE RULE RESOURCE = ds_0;" />
<assertion-sql sql="SHOW SINGLE TABLES;" />
+ <destroy-sql sql="DROP SHARDING TABLE RULE t_order;DROP SHARDING
TABLE RULE t_order_item;"/>
</assertion>
</test-case>
- <test-case sql="CREATE SHARDING TABLE RULE t_user
(DATANODES('ds_0.t_user_${0..1}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=user_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_user_${user_id
% 2}')))))" db-types="MySQL">
+ <test-case sql="CREATE SHARDING TABLE RULE t_order
(DATANODES('ds_2.t_order_${0..1}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_${order_id
% 2}')))));" db-types="MySQL">
<assertion expected-data-file="create_sharding_rules.xml">
<assertion-sql sql="SHOW SHARDING TABLE RULES;" />
- <destroy-sql sql="DROP SHARDING TABLE RULE t_user"/>
+ <destroy-sql sql="DROP SHARDING TABLE RULE t_order"/>
</assertion>
<assertion expected-data-file="create_sharding_rules_show_tables.xml">
<assertion-sql sql="SHOW TABLES;" />
+ <destroy-sql sql="DROP SHARDING TABLE RULE t_order"/>
</assertion>
</test-case>
- <test-case sql="ALTER SHARDING TABLE RULE t_user
(DATANODES('ds_0.t_user_${0..3}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=user_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_user_${user_id
% 4}')))))" db-types="MySQL">
+ <test-case sql="ALTER SHARDING TABLE RULE t_order
(DATANODES('ds_2.t_order_${0..3}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_${order_id
% 4}')))));" db-types="MySQL">
<assertion expected-data-file="alter_sharding_rules.xml">
+ <initial-sql sql="CREATE SHARDING TABLE RULE t_order
(DATANODES('ds_2.t_order_${0..1}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_${order_id
% 2}')))));" />
<assertion-sql sql="SHOW SHARDING TABLE RULES;" />
- <destroy-sql sql="DROP SHARDING TABLE RULE t_user"/>
+ <destroy-sql sql="DROP SHARDING TABLE RULE t_order"/>
</assertion>
<assertion expected-data-file="alter_sharding_rules_show_tables.xml">
- <initial-sql sql="CREATE SHARDING TABLE RULE t_user
(DATANODES('ds_0.t_user_${0..1}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=user_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_user_${user_id
% 2}')))))" />
+ <initial-sql sql="CREATE SHARDING TABLE RULE t_order
(DATANODES('ds_2.t_order_${0..1}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_${order_id
% 2}')))));" />
<assertion-sql sql="SHOW TABLES;" />
+ <destroy-sql sql="DROP SHARDING TABLE RULE t_order"/>
</assertion>
</test-case>
- <test-case sql="DROP SHARDING TABLE RULE t_user" db-types="MySQL">
+ <test-case sql="DROP SHARDING TABLE RULE t_order" db-types="MySQL">
<assertion expected-data-file="drop_sharding_rules.xml">
+ <initial-sql sql="CREATE SHARDING TABLE RULE t_order
(DATANODES('ds_2.t_order_${0..1}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_${order_id
% 2}')))));" />
<assertion-sql sql="SHOW SHARDING TABLE RULES;" />
</assertion>
<assertion expected-data-file="drop_sharding_rules_show_tables.xml">
- <initial-sql sql="CREATE SHARDING TABLE RULE t_user
(DATANODES('ds_0.t_user_${0..1}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=user_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_user_${user_id
% 2}')))))" />
+ <initial-sql sql="CREATE SHARDING TABLE RULE t_order
(DATANODES('ds_2.t_order_${0..1}'),TABLE_STRATEGY(TYPE='standard',SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME='inline',PROPERTIES('algorithm-expression'='t_order_${order_id
% 2}')))));" />
<assertion-sql sql="SHOW TABLES;" />
</assertion>
</test-case>
@@ -89,3 +165,4 @@
</assertion>
</test-case>
</integration-test-cases>
+
diff --git
a/test/integration-test/test-suite/src/test/resources/env/scenario/rdl_empty_rules/data/actual/init-sql/mysql/01-actual-init.sql
b/test/integration-test/test-suite/src/test/resources/env/scenario/rdl_empty_rules/data/actual/init-sql/mysql/01-actual-init.sql
index 1f8522d7006..81cd1cad4fa 100644
---
a/test/integration-test/test-suite/src/test/resources/env/scenario/rdl_empty_rules/data/actual/init-sql/mysql/01-actual-init.sql
+++
b/test/integration-test/test-suite/src/test/resources/env/scenario/rdl_empty_rules/data/actual/init-sql/mysql/01-actual-init.sql
@@ -26,14 +26,32 @@ CREATE DATABASE rdl_ds_0;
CREATE DATABASE rdl_ds_1;
CREATE DATABASE rdl_ds_2;
-DROP TABLE IF EXISTS rdl_ds_0.t_user_0;
-DROP TABLE IF EXISTS rdl_ds_0.t_user_1;
-DROP TABLE IF EXISTS rdl_ds_0.t_user_2;
-DROP TABLE IF EXISTS rdl_ds_0.t_user_3;
-DROP TABLE IF EXISTS rdl_ds_0.t_user_4;
-
-CREATE TABLE rdl_ds_0.t_user_0 (user_id INT NOT NULL, username VARCHAR(20) NOT
NULL, phone VARCHAR(20) NULL, PRIMARY KEY (user_id));
-CREATE TABLE rdl_ds_0.t_user_1 (user_id INT NOT NULL, username VARCHAR(20) NOT
NULL, phone VARCHAR(20) NULL, PRIMARY KEY (user_id));
-CREATE TABLE rdl_ds_0.t_user_2 (user_id INT NOT NULL, username VARCHAR(20) NOT
NULL, phone VARCHAR(20) NULL, PRIMARY KEY (user_id));
-CREATE TABLE rdl_ds_0.t_user_3 (user_id INT NOT NULL, username VARCHAR(20) NOT
NULL, phone VARCHAR(20) NULL, PRIMARY KEY (user_id));
-CREATE TABLE rdl_ds_0.t_user_4 (user_id INT NOT NULL, username VARCHAR(20) NOT
NULL, phone VARCHAR(20) NULL, PRIMARY KEY (user_id));
+DROP TABLE IF EXISTS rdl_ds_0.t_user;
+
+DROP TABLE IF EXISTS rdl_ds_2.t_product_category;
+DROP TABLE IF EXISTS rdl_ds_2.t_country;
+
+DROP TABLE IF EXISTS rdl_ds_2.t_order_0;
+DROP TABLE IF EXISTS rdl_ds_2.t_order_1;
+DROP TABLE IF EXISTS rdl_ds_2.t_order_2;
+DROP TABLE IF EXISTS rdl_ds_2.t_order_3;
+
+DROP TABLE IF EXISTS rdl_ds_2.t_order_item_0;
+DROP TABLE IF EXISTS rdl_ds_2.t_order_item_1;
+DROP TABLE IF EXISTS rdl_ds_2.t_order_item_2;
+DROP TABLE IF EXISTS rdl_ds_2.t_order_item_3;
+
+CREATE TABLE rdl_ds_0.t_user (user_id INT PRIMARY KEY, user_name VARCHAR(50)
NOT NULL, password VARCHAR(50) NOT NULL, email VARCHAR(50) NOT NULL, telephone
VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+
+CREATE TABLE rdl_ds_2.t_product_category ( category_id INT PRIMARY KEY,
category_name VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level INT NOT NULL,
creation_date DATE NOT NULL);
+CREATE TABLE rdl_ds_2.t_country (country_id INT PRIMARY KEY, country_name
VARCHAR(50), continent_name VARCHAR(50), creation_date DATE NOT NULL);
+
+CREATE TABLE rdl_ds_2.t_order_0 (order_id INT PRIMARY KEY, user_id INT NOT
NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50)
NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE rdl_ds_2.t_order_1 (order_id INT PRIMARY KEY, user_id INT NOT
NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50)
NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE rdl_ds_2.t_order_2 (order_id INT PRIMARY KEY, user_id INT NOT
NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50)
NOT NULL, creation_date DATE NOT NULL);
+CREATE TABLE rdl_ds_2.t_order_3 (order_id INT PRIMARY KEY, user_id INT NOT
NULL, status VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50)
NOT NULL, creation_date DATE NOT NULL);
+
+CREATE TABLE rdl_ds_2.t_order_item_0 (item_id INT PRIMARY KEY, order_id INT
NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL,
creation_date DATE NOT NULL);
+CREATE TABLE rdl_ds_2.t_order_item_1 (item_id INT PRIMARY KEY, order_id INT
NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL,
creation_date DATE NOT NULL);
+CREATE TABLE rdl_ds_2.t_order_item_2 (item_id INT PRIMARY KEY, order_id INT
NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL,
creation_date DATE NOT NULL);
+CREATE TABLE rdl_ds_2.t_order_item_3 (item_id INT PRIMARY KEY, order_id INT
NOT NULL, user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL,
creation_date DATE NOT NULL);
diff --git
a/test/integration-test/test-suite/src/test/resources/env/scenario/rdl_empty_rules/data/actual/init-sql/postgresql/01-actual-init.sql
b/test/integration-test/test-suite/src/test/resources/env/scenario/rdl_empty_rules/data/actual/init-sql/postgresql/01-actual-init.sql
index e95f0293335..19228346bcf 100644
---
a/test/integration-test/test-suite/src/test/resources/env/scenario/rdl_empty_rules/data/actual/init-sql/postgresql/01-actual-init.sql
+++
b/test/integration-test/test-suite/src/test/resources/env/scenario/rdl_empty_rules/data/actual/init-sql/postgresql/01-actual-init.sql
@@ -15,6 +15,10 @@
-- limitations under the License.
--
+DROP DATABASE IF EXISTS rdl_ds_0;
+DROP DATABASE IF EXISTS rdl_ds_1;
+DROP DATABASE IF EXISTS rdl_ds_2;
+
CREATE DATABASE rdl_ds_0;
CREATE DATABASE rdl_ds_1;
CREATE DATABASE rdl_ds_2;
@@ -26,7 +30,33 @@ GRANT ALL PRIVILEGES ON DATABASE rdl_ds_2 TO test_user;
\c rdl_ds_0
DROP TABLE IF EXISTS t_user_0;
-DROP TABLE IF EXISTS t_user_1;
-CREATE TABLE t_user_0 (user_id INT NOT NULL, username VARCHAR(20) NOT NULL,
phone VARCHAR(20) NULL, PRIMARY KEY (user_id));
-CREATE TABLE t_user_1 (user_id INT NOT NULL, username VARCHAR(20) NOT NULL,
phone VARCHAR(20) NULL, PRIMARY KEY (user_id));
+CREATE TABLE t_user (user_id INT PRIMARY KEY, user_name VARCHAR(50) NOT NULL,
password VARCHAR(50) NOT NULL, email VARCHAR(50) NOT NULL, telephone
VARCHAR(50) NOT NULL, creation_date DATE NOT NULL);
+
+\c rdl_ds_2
+
+DROP TABLE IF EXISTS t_product_category;
+DROP TABLE IF EXISTS rdl_ds_2.t_country;
+
+DROP TABLE IF EXISTS t_order_0;
+DROP TABLE IF EXISTS t_order_1;
+DROP TABLE IF EXISTS t_order_2;
+DROP TABLE IF EXISTS t_order_3;
+
+DROP TABLE IF EXISTS t_order_item_0;
+DROP TABLE IF EXISTS t_order_item_1;
+DROP TABLE IF EXISTS t_order_item_2;
+DROP TABLE IF EXISTS t_order_item_3;
+
+CREATE TABLE t_product_category ( category_id INT PRIMARY KEY, category_name
VARCHAR(50) NOT NULL, parent_id INT NOT NULL, level INT NOT NULL, creation_date
DATE NOT NULL);
+CREATE TABLE t_country (country_id INT PRIMARY KEY, country_name VARCHAR(50),
continent_name VARCHAR(50), creation_date DATE NOT NULL);
+
+CREATE TABLE t_order_0 (order_id INT PRIMARY KEY, user_id INT NOT NULL, status
VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL,
creation_date DATE NOT NULL);
+CREATE TABLE t_order_1 (order_id INT PRIMARY KEY, user_id INT NOT NULL, status
VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL,
creation_date DATE NOT NULL);
+CREATE TABLE t_order_2 (order_id INT PRIMARY KEY, user_id INT NOT NULL, status
VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL,
creation_date DATE NOT NULL);
+CREATE TABLE t_order_3 (order_id INT PRIMARY KEY, user_id INT NOT NULL, status
VARCHAR(50) NOT NULL, merchant_id INT NOT NULL, remark VARCHAR(50) NOT NULL,
creation_date DATE NOT NULL);
+
+CREATE TABLE t_order_item_0 (item_id INT PRIMARY KEY, order_id INT NOT NULL,
user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL,
creation_date DATE NOT NULL);
+CREATE TABLE t_order_item_1 (item_id INT PRIMARY KEY, order_id INT NOT NULL,
user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL,
creation_date DATE NOT NULL);
+CREATE TABLE t_order_item_2 (item_id INT PRIMARY KEY, order_id INT NOT NULL,
user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL,
creation_date DATE NOT NULL);
+CREATE TABLE t_order_item_3 (item_id INT PRIMARY KEY, order_id INT NOT NULL,
user_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL,
creation_date DATE NOT NULL);