You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2022/08/08 15:59:18 UTC
[shardingsphere] branch master updated: add encrypt and readwrite splitting test (#19972)
This is an automated email from the ASF dual-hosted git repository.
zhangliang 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 8968ac1ad36 add encrypt and readwrite splitting test (#19972)
8968ac1ad36 is described below
commit 8968ac1ad36f45240cb9f721a7f830df7be35123
Author: Chuxin Chen <ch...@qq.com>
AuthorDate: Mon Aug 8 23:59:12 2022 +0800
add encrypt and readwrite splitting test (#19972)
---
.github/workflows/it.yml | 2 +-
.../cases/dal/dal-integration-test-cases.xml | 2 +-
.../mysql/show_databases.xml} | 16 +-
.../encrypt_and_readwrite_splitting/alter_add.xml} | 16 +-
.../alter_add_encrypt_column.xml} | 15 +-
.../alter_change.xml} | 15 +-
.../alter_drop.xml} | 13 +-
.../alter_modify_encrypt_column.xml} | 15 +-
.../create_index.xml} | 16 +-
.../create_table.xml} | 15 +-
.../create_unique_index.xml} | 16 +-
.../drop_table.xml} | 9 +-
.../unchanged_table.xml} | 15 +-
.../cases/ddl/ddl-integration-test-cases.xml | 26 +-
.../cases/dql/dql-integration-test-cases.xml | 50 +-
.../count_database_rules.xml} | 21 +-
.../count_single_table_rule.xml} | 14 +-
.../mysql/show_resources.xml | 35 ++
.../postgresql/show_resources.xml | 35 ++
.../show_encrypt_rule.xml} | 23 +-
.../show_encrypt_rules.xml | 38 ++
.../show_readwrite_splitting_rules.xml} | 18 +-
.../show_single_table.xml} | 13 +-
.../show_single_table_rules.xml} | 12 +-
.../show_single_tables.xml} | 22 +-
.../cases/rql/rql-integration-test-cases.xml | 18 +-
.../src/test/resources/env/it-env.properties | 4 +-
.../encrypt_and_readwrite_splitting/authority.xml | 71 +++
.../data/actual/databases.xml} | 11 +-
.../data/actual/dataset.xml | 544 +++++++++++++++++++++
.../data/actual/init-sql/h2/01-actual-init.sql | 24 +
.../init-sql/h2/actual-encrypt_read_ds-init.sql | 34 ++
.../init-sql/h2/actual-encrypt_write_ds-init.sql | 34 ++
.../data/actual/init-sql/mysql/01-actual-init.sql | 49 ++
.../data/actual/init-sql/oracle/01-actual-init.sql | 46 ++
.../actual/init-sql/postgresql/01-actual-init.sql | 72 +++
.../actual/init-sql/sqlserver/01-actual-init.sql | 46 ++
.../data/expected/databases.xml} | 11 +-
.../data/expected/dataset.xml | 537 ++++++++++++++++++++
.../data/expected/init-sql/h2/01-expected-init.sql | 40 ++
.../expected/init-sql/mysql/01-expected-init.sql | 54 ++
.../expected/init-sql/oracle/01-expected-init.sql | 49 ++
.../init-sql/postgresql/01-expected-init.sql | 79 +++
.../init-sql/sqlserver/01-expected-init.sql | 49 ++
.../mysql/config-encrypt-readwrite-splitting.yaml | 88 ++++
.../config-encrypt-readwrite-splitting.yaml | 88 ++++
.../encrypt_and_readwrite_splitting/rules.yaml | 69 +++
47 files changed, 2318 insertions(+), 171 deletions(-)
diff --git a/.github/workflows/it.yml b/.github/workflows/it.yml
index 6a97a4bb99e..49fac9cfb86 100644
--- a/.github/workflows/it.yml
+++ b/.github/workflows/it.yml
@@ -182,7 +182,7 @@ jobs:
adapter: [ proxy, jdbc ]
mode: [ Standalone, Cluster ]
database: [ MySQL, PostgreSQL ]
- scenario: [ dbtbl_with_readwrite_splitting, dbtbl_with_readwrite_splitting_and_encrypt, sharding_and_encrypt ]
+ scenario: [ dbtbl_with_readwrite_splitting, dbtbl_with_readwrite_splitting_and_encrypt, sharding_and_encrypt, encrypt_and_readwrite_splitting ]
exclude:
- adapter: jdbc
mode: Cluster
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
index a159918466a..0608be52029 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
@@ -15,7 +15,7 @@
~ limitations under the License.
-->
<integration-test-cases>
- <test-case sql="SHOW DATABASES" db-types="MySQL" scenario-types="dbtbl_with_readwrite_splitting,readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
+ <test-case sql="SHOW DATABASES" db-types="MySQL" scenario-types="dbtbl_with_readwrite_splitting,readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
<assertion expected-data-file="show_databases.xml" />
</test-case>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/encrypt_and_readwrite_splitting/mysql/show_databases.xml
similarity index 68%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/encrypt_and_readwrite_splitting/mysql/show_databases.xml
index a159918466a..255ae25bd51 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/encrypt_and_readwrite_splitting/mysql/show_databases.xml
@@ -14,10 +14,14 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<integration-test-cases>
- <test-case sql="SHOW DATABASES" db-types="MySQL" scenario-types="dbtbl_with_readwrite_splitting,readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
- <assertion expected-data-file="show_databases.xml" />
- </test-case>
- <test-case sql="RESET ALL" db-types="PostgreSQL,openGauss" />
-</integration-test-cases>
+<dataset>
+ <metadata>
+ <column name="schema_name" />
+ </metadata>
+ <row values="information_schema" />
+ <row values="performance_schema" />
+ <row values="encrypt_and_readwrite_splitting" />
+ <row values="mysql" />
+ <row values="sys" />
+</dataset>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/ddl/dataset/encrypt_and_readwrite_splitting/alter_add.xml
similarity index 63%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/ddl/dataset/encrypt_and_readwrite_splitting/alter_add.xml
index a159918466a..a3b83257b38 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/ddl/dataset/encrypt_and_readwrite_splitting/alter_add.xml
@@ -14,10 +14,14 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<integration-test-cases>
- <test-case sql="SHOW DATABASES" db-types="MySQL" scenario-types="dbtbl_with_readwrite_splitting,readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
- <assertion expected-data-file="show_databases.xml" />
- </test-case>
- <test-case sql="RESET ALL" db-types="PostgreSQL,openGauss" />
-</integration-test-cases>
+<dataset>
+ <metadata table-name="t_user_details" data-nodes="encrypt_write_ds.t_user_details,encrypt_read_ds.t_user_details">
+ <column name="user_id" type="integer" />
+ <column name="address_id" type="integer" />
+ <column name="number_plain" type="varchar" />
+ <column name="number_cipher" type="varchar" />
+ <column name="description" type="varchar" />
+ <column name="name" type="varchar" />
+ </metadata>
+</dataset>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/ddl/dataset/encrypt_and_readwrite_splitting/alter_add_encrypt_column.xml
similarity index 66%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/ddl/dataset/encrypt_and_readwrite_splitting/alter_add_encrypt_column.xml
index a159918466a..3d624fd7b2a 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/ddl/dataset/encrypt_and_readwrite_splitting/alter_add_encrypt_column.xml
@@ -14,10 +14,13 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<integration-test-cases>
- <test-case sql="SHOW DATABASES" db-types="MySQL" scenario-types="dbtbl_with_readwrite_splitting,readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
- <assertion expected-data-file="show_databases.xml" />
- </test-case>
- <test-case sql="RESET ALL" db-types="PostgreSQL,openGauss" />
-</integration-test-cases>
+<dataset>
+ <metadata table-name="t_user_details" data-nodes="encrypt_write_ds.t_user_details,encrypt_read_ds.t_user_details">
+ <column name="user_id" type="integer" />
+ <column name="address_id" type="integer" />
+ <column name="number_plain" type="varchar" />
+ <column name="number_cipher" type="varchar" />
+ <column name="description" type="varchar" />
+ </metadata>
+</dataset>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/ddl/dataset/encrypt_and_readwrite_splitting/alter_change.xml
similarity index 65%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/ddl/dataset/encrypt_and_readwrite_splitting/alter_change.xml
index a159918466a..edd6495ec86 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/ddl/dataset/encrypt_and_readwrite_splitting/alter_change.xml
@@ -14,10 +14,13 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<integration-test-cases>
- <test-case sql="SHOW DATABASES" db-types="MySQL" scenario-types="dbtbl_with_readwrite_splitting,readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
- <assertion expected-data-file="show_databases.xml" />
- </test-case>
- <test-case sql="RESET ALL" db-types="PostgreSQL,openGauss" />
-</integration-test-cases>
+<dataset>
+ <metadata table-name="t_user_details" data-nodes="encrypt_write_ds.t_user_details,encrypt_read_ds.t_user_details">
+ <column name="user_id" type="integer" />
+ <column name="address_id" type="integer" />
+ <column name="number_new_plain" type="varchar" />
+ <column name="number_new_cipher" type="varchar" />
+ <column name="description" type="varchar" />
+ </metadata>
+</dataset>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/ddl/dataset/encrypt_and_readwrite_splitting/alter_drop.xml
similarity index 68%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/ddl/dataset/encrypt_and_readwrite_splitting/alter_drop.xml
index a159918466a..0a71ed90d28 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/ddl/dataset/encrypt_and_readwrite_splitting/alter_drop.xml
@@ -14,10 +14,11 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<integration-test-cases>
- <test-case sql="SHOW DATABASES" db-types="MySQL" scenario-types="dbtbl_with_readwrite_splitting,readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
- <assertion expected-data-file="show_databases.xml" />
- </test-case>
- <test-case sql="RESET ALL" db-types="PostgreSQL,openGauss" />
-</integration-test-cases>
+<dataset>
+ <metadata table-name="t_user_details" data-nodes="encrypt_write_ds.t_user_details,encrypt_read_ds.t_user_details">
+ <column name="user_id" type="integer" />
+ <column name="address_id" type="integer" />
+ <column name="description" type="varchar" />
+ </metadata>
+</dataset>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/ddl/dataset/encrypt_and_readwrite_splitting/alter_modify_encrypt_column.xml
similarity index 66%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/ddl/dataset/encrypt_and_readwrite_splitting/alter_modify_encrypt_column.xml
index a159918466a..4c22b7e4dfd 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/ddl/dataset/encrypt_and_readwrite_splitting/alter_modify_encrypt_column.xml
@@ -14,10 +14,13 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<integration-test-cases>
- <test-case sql="SHOW DATABASES" db-types="MySQL" scenario-types="dbtbl_with_readwrite_splitting,readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
- <assertion expected-data-file="show_databases.xml" />
- </test-case>
- <test-case sql="RESET ALL" db-types="PostgreSQL,openGauss" />
-</integration-test-cases>
+<dataset>
+ <metadata table-name="t_user_details" data-nodes="encrypt_write_ds.t_user_details,encrypt_read_ds.t_user_details">
+ <column name="user_id" type="integer" />
+ <column name="address_id" type="integer" />
+ <column name="description" type="varchar" />
+ <column name="number_plain" type="integer" />
+ <column name="number_cipher" type="integer" />
+ </metadata>
+</dataset>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/ddl/dataset/encrypt_and_readwrite_splitting/create_index.xml
similarity index 61%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/ddl/dataset/encrypt_and_readwrite_splitting/create_index.xml
index a159918466a..f56d179a57a 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/ddl/dataset/encrypt_and_readwrite_splitting/create_index.xml
@@ -14,10 +14,14 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<integration-test-cases>
- <test-case sql="SHOW DATABASES" db-types="MySQL" scenario-types="dbtbl_with_readwrite_splitting,readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
- <assertion expected-data-file="show_databases.xml" />
- </test-case>
- <test-case sql="RESET ALL" db-types="PostgreSQL,openGauss" />
-</integration-test-cases>
+<dataset>
+ <metadata table-name="t_user_details" data-nodes="encrypt_write_ds.t_user_details,encrypt_read_ds.t_user_details">
+ <column name="user_id" type="integer" />
+ <column name="address_id" type="integer" />
+ <column name="number_plain" type="varchar" />
+ <column name="number_cipher" type="varchar" />
+ <column name="description" type="varchar" />
+ <index name="t_user_details_index_t_user_details" column="user_id" unique="false" />
+ </metadata>
+</dataset>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/ddl/dataset/encrypt_and_readwrite_splitting/create_table.xml
similarity index 66%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/ddl/dataset/encrypt_and_readwrite_splitting/create_table.xml
index a159918466a..561a80d7a27 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/ddl/dataset/encrypt_and_readwrite_splitting/create_table.xml
@@ -14,10 +14,13 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<integration-test-cases>
- <test-case sql="SHOW DATABASES" db-types="MySQL" scenario-types="dbtbl_with_readwrite_splitting,readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
- <assertion expected-data-file="show_databases.xml" />
- </test-case>
- <test-case sql="RESET ALL" db-types="PostgreSQL,openGauss" />
-</integration-test-cases>
+<dataset>
+ <metadata table-name="t_user_details" data-nodes="encrypt_write_ds.t_user_details,encrypt_read_ds.t_user_details">
+ <column name="user_id" type="integer" />
+ <column name="address_id" type="integer" />
+ <column name="number_cipher" type="varchar" />
+ <column name="number_plain" type="varchar" />
+ <column name="description" type="varchar" />
+ </metadata>
+</dataset>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/ddl/dataset/encrypt_and_readwrite_splitting/create_unique_index.xml
similarity index 61%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/ddl/dataset/encrypt_and_readwrite_splitting/create_unique_index.xml
index a159918466a..71532e66bbc 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/ddl/dataset/encrypt_and_readwrite_splitting/create_unique_index.xml
@@ -14,10 +14,14 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<integration-test-cases>
- <test-case sql="SHOW DATABASES" db-types="MySQL" scenario-types="dbtbl_with_readwrite_splitting,readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
- <assertion expected-data-file="show_databases.xml" />
- </test-case>
- <test-case sql="RESET ALL" db-types="PostgreSQL,openGauss" />
-</integration-test-cases>
+<dataset>
+ <metadata table-name="t_user_details" data-nodes="encrypt_write_ds.t_user_details,encrypt_read_ds.t_user_details">
+ <column name="user_id" type="integer" />
+ <column name="address_id" type="integer" />
+ <column name="number_plain" type="varchar" />
+ <column name="number_cipher" type="varchar" />
+ <column name="description" type="varchar" />
+ <index name="t_user_details_index_t_user_details" column="user_id" unique="true" />
+ </metadata>
+</dataset>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/ddl/dataset/encrypt_and_readwrite_splitting/drop_table.xml
similarity index 68%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/ddl/dataset/encrypt_and_readwrite_splitting/drop_table.xml
index a159918466a..b7229e9523d 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/ddl/dataset/encrypt_and_readwrite_splitting/drop_table.xml
@@ -14,10 +14,7 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<integration-test-cases>
- <test-case sql="SHOW DATABASES" db-types="MySQL" scenario-types="dbtbl_with_readwrite_splitting,readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
- <assertion expected-data-file="show_databases.xml" />
- </test-case>
- <test-case sql="RESET ALL" db-types="PostgreSQL,openGauss" />
-</integration-test-cases>
+<dataset>
+ <metadata table-name="t_user_details" data-nodes="encrypt_write_ds.t_user_details,encrypt_read_ds.t_user_details" />
+</dataset>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/ddl/dataset/encrypt_and_readwrite_splitting/unchanged_table.xml
similarity index 66%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/ddl/dataset/encrypt_and_readwrite_splitting/unchanged_table.xml
index a159918466a..3d624fd7b2a 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/ddl/dataset/encrypt_and_readwrite_splitting/unchanged_table.xml
@@ -14,10 +14,13 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<integration-test-cases>
- <test-case sql="SHOW DATABASES" db-types="MySQL" scenario-types="dbtbl_with_readwrite_splitting,readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
- <assertion expected-data-file="show_databases.xml" />
- </test-case>
- <test-case sql="RESET ALL" db-types="PostgreSQL,openGauss" />
-</integration-test-cases>
+<dataset>
+ <metadata table-name="t_user_details" data-nodes="encrypt_write_ds.t_user_details,encrypt_read_ds.t_user_details">
+ <column name="user_id" type="integer" />
+ <column name="address_id" type="integer" />
+ <column name="number_plain" type="varchar" />
+ <column name="number_cipher" type="varchar" />
+ <column name="description" type="varchar" />
+ </metadata>
+</dataset>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/ddl/ddl-integration-test-cases.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/ddl/ddl-integration-test-cases.xml
index 3bf66239fe2..c52f5d2d2b3 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/ddl/ddl-integration-test-cases.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/ddl/ddl-integration-test-cases.xml
@@ -160,43 +160,43 @@
</assertion>
</test-case>
- <test-case sql="CREATE TABLE t_user_details (user_id INT NOT NULL, address_id INT NOT NULL, number VARCHAR(45), description varchar(10))" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
+ <test-case sql="CREATE TABLE t_user_details (user_id INT NOT NULL, address_id INT NOT NULL, number VARCHAR(45), description varchar(10))" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
<assertion expected-data-file="create_table.xml">
<initial-sql affected-table="t_user_details" />
</assertion>
</test-case>
- <test-case sql="CREATE INDEX t_user_details_index ON t_user_details (user_id)" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
+ <test-case sql="CREATE INDEX t_user_details_index ON t_user_details (user_id)" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
<assertion expected-data-file="create_index.xml">
<initial-sql sql="CREATE TABLE t_user_details (user_id INT NOT NULL, address_id INT NOT NULL, number_plain VARCHAR(45) NULL, number_cipher VARCHAR(45) NULL, description varchar(10))" affected-table="t_user_details" />
</assertion>
</test-case>
- <test-case sql="CREATE UNIQUE INDEX t_user_details_index ON t_user_details (user_id)" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
+ <test-case sql="CREATE UNIQUE INDEX t_user_details_index ON t_user_details (user_id)" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
<assertion expected-data-file="create_unique_index.xml">
<initial-sql sql="CREATE TABLE t_user_details (user_id INT NOT NULL, address_id INT NOT NULL, number_plain VARCHAR(45) NULL, number_cipher VARCHAR(45) NULL, description varchar(10))" affected-table="t_user_details" />
</assertion>
</test-case>
- <test-case sql="ALTER TABLE t_user_details ADD name varchar(10)" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
+ <test-case sql="ALTER TABLE t_user_details ADD name varchar(10)" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
<assertion expected-data-file="alter_add.xml">
<initial-sql sql="CREATE TABLE t_user_details (user_id INT NOT NULL, address_id INT NOT NULL, number_plain VARCHAR(45) NULL, number_cipher VARCHAR(45) NULL, description varchar(10))" affected-table="t_user_details" />
</assertion>
</test-case>
- <test-case sql="ALTER TABLE t_user_details ADD number VARCHAR(45) NULL AFTER address_id" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt" db-types="MySQL">
+ <test-case sql="ALTER TABLE t_user_details ADD number VARCHAR(45) NULL AFTER address_id" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting" db-types="MySQL">
<assertion expected-data-file="alter_add_encrypt_column.xml">
<initial-sql sql="CREATE TABLE t_user_details (user_id INT NOT NULL, address_id INT NOT NULL, description varchar(10))" affected-table="t_user_details" />
</assertion>
</test-case>
- <test-case sql="ALTER TABLE t_user_details MODIFY number INT NOT NULL AFTER description" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt" db-types="MySQL">
+ <test-case sql="ALTER TABLE t_user_details MODIFY number INT NOT NULL AFTER description" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting" db-types="MySQL">
<assertion expected-data-file="alter_modify_encrypt_column.xml">
<initial-sql sql="CREATE TABLE t_user_details (user_id INT NOT NULL, address_id INT NOT NULL, number_plain VARCHAR(45) NULL, number_cipher VARCHAR(45) NULL, description varchar(10))" affected-table="t_user_details" />
</assertion>
</test-case>
- <test-case sql="ALTER TABLE t_user_details CHANGE number number_new VARCHAR(50)" db-types="MySQL" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
+ <test-case sql="ALTER TABLE t_user_details CHANGE number number_new VARCHAR(50)" db-types="MySQL" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
<assertion expected-data-file="alter_change.xml">
<initial-sql sql="CREATE TABLE t_user_details (user_id INT NOT NULL, address_id INT NOT NULL, number_plain VARCHAR(45) NULL, number_cipher VARCHAR(45) NULL, description varchar(10))" affected-table="t_user_details" />
</assertion>
@@ -208,37 +208,37 @@
<!-- </assertion>-->
<!-- </test-case>-->
- <test-case sql="ALTER TABLE t_user_details DROP COLUMN number" db-types="MySQL,SQLServer,PostgreSQL,Oracle" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
+ <test-case sql="ALTER TABLE t_user_details DROP COLUMN number" db-types="MySQL,SQLServer,PostgreSQL,Oracle" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
<assertion expected-data-file="alter_drop.xml">
<initial-sql sql="CREATE TABLE t_user_details (user_id INT NOT NULL, address_id INT NOT NULL, number_plain VARCHAR(45) NULL, number_cipher VARCHAR(45) NULL, description varchar(10))" affected-table="t_user_details"/>
</assertion>
</test-case>
- <test-case sql="DROP TABLE t_user_details" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
+ <test-case sql="DROP TABLE t_user_details" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
<assertion expected-data-file="drop_table.xml">
<initial-sql sql="CREATE TABLE t_user_details (user_id INT NOT NULL, address_id INT NOT NULL, number_plain VARCHAR(45) NULL, number_cipher VARCHAR(45) NULL, description varchar(10))" affected-table="t_user_details" />
</assertion>
</test-case>
- <test-case sql="DROP INDEX t_user_details_index on t_user_details" db-types="MySQL,SQLServer,Oracle" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
+ <test-case sql="DROP INDEX t_user_details_index on t_user_details" db-types="MySQL,SQLServer,Oracle" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
<assertion expected-data-file="unchanged_table.xml">
<initial-sql sql="CREATE TABLE t_user_details (user_id INT NOT NULL, address_id INT NOT NULL, number_plain VARCHAR(45) NULL, number_cipher VARCHAR(45) NULL, description varchar(10));CREATE INDEX t_user_details_index ON t_user_details(description)" affected-table="t_user_details" />
</assertion>
</test-case>
- <test-case sql="DROP INDEX t_user_details_index" db-types="PostgreSQL" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
+ <test-case sql="DROP INDEX t_user_details_index" db-types="PostgreSQL" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
<assertion expected-data-file="unchanged_table.xml">
<initial-sql sql="CREATE TABLE t_user_details (user_id INT NOT NULL, address_id INT NOT NULL, number_plain VARCHAR(45) NULL, number_cipher VARCHAR(45) NULL, description varchar(10));CREATE INDEX t_user_details_index ON t_user_details(description)" affected-table="t_user_details" />
</assertion>
</test-case>
- <test-case sql="TRUNCATE TABLE t_user_details" db-types="MySQL,SQLServer,Oracle" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
+ <test-case sql="TRUNCATE TABLE t_user_details" db-types="MySQL,SQLServer,Oracle" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
<assertion expected-data-file="unchanged_table.xml">
<initial-sql sql="CREATE TABLE t_user_details (user_id INT NOT NULL, address_id INT NOT NULL, number_plain VARCHAR(45) NULL, number_cipher VARCHAR(45) NULL, description varchar(10))" affected-table="t_user_details" />
</assertion>
</test-case>
- <test-case sql="TRUNCATE t_user_details" db-types="PostgreSQL" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
+ <test-case sql="TRUNCATE t_user_details" db-types="PostgreSQL" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
<assertion expected-data-file="unchanged_table.xml">
<initial-sql sql="CREATE TABLE t_user_details (user_id INT NOT NULL, address_id INT NOT NULL, number_plain VARCHAR(45) NULL, number_cipher VARCHAR(45) NULL, description varchar(10))" affected-table="t_user_details" />
</assertion>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dql/dql-integration-test-cases.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dql/dql-integration-test-cases.xml
index 7da04b0cea8..161d381d991 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dql/dql-integration-test-cases.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dql/dql-integration-test-cases.xml
@@ -491,30 +491,30 @@
<test-case sql="SELECT * FROM t_broadcast_table" scenario-types="db,tbl,dbtbl_with_readwrite_splitting,readwrite_splitting">
<assertion expected-data-source-name="read_dataset" />
</test-case>
- <test-case sql="SELECT * FROM t_user WHERE user_id <= 15 ORDER BY user_id" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
+ <test-case sql="SELECT * FROM t_user WHERE user_id <= 15 ORDER BY user_id" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
<assertion expected-data-source-name="read_dataset" />
</test-case>
- <test-case sql="SELECT user_id, pwd FROM t_user WHERE pwd = 'a10'" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
+ <test-case sql="SELECT user_id, pwd FROM t_user WHERE pwd = 'a10'" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
<assertion expected-data-source-name="read_dataset" />
</test-case>
- <test-case sql="SELECT user_id FROM t_user WHERE pwd in ('a10', 'b11')" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
+ <test-case sql="SELECT user_id FROM t_user WHERE pwd in ('a10', 'b11')" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
<assertion expected-data-source-name="read_dataset" />
</test-case>
- <test-case sql="SELECT user_id FROM t_user WHERE pwd in ('a10', 'b11') and user_id = 10" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
+ <test-case sql="SELECT user_id FROM t_user WHERE pwd in ('a10', 'b11') and user_id = 10" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
<assertion expected-data-source-name="read_dataset" />
</test-case>
- <test-case sql="SELECT * FROM t_user WHERE pwd in ('a10', 'b11') OR user_id = 10" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
+ <test-case sql="SELECT * FROM t_user WHERE pwd in ('a10', 'b11') OR user_id = 10" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
<assertion expected-data-source-name="read_dataset" />
</test-case>
- <test-case sql="SELECT * FROM t_user u INNER JOIN t_user_item m ON u.user_id=m.user_id WHERE u.user_id IN (0, 11)" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
+ <test-case sql="SELECT * FROM t_user u INNER JOIN t_user_item m ON u.user_id=m.user_id WHERE u.user_id IN (0, 11)" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
<assertion expected-data-source-name="read_dataset" />
</test-case>
- <test-case sql="SELECT * FROM t_single_table" db-types="MySQL,Oracle,SQLServer" scenario-types="db,tbl,dbtbl_with_readwrite_splitting,readwrite_splitting,encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
+ <test-case sql="SELECT * FROM t_single_table" db-types="MySQL,Oracle,SQLServer" scenario-types="db,tbl,dbtbl_with_readwrite_splitting,readwrite_splitting,encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
<assertion expected-data-source-name="read_dataset" />
</test-case>
@@ -523,11 +523,11 @@
<!-- <assertion expected-data-source-name="read_dataset" />-->
<!-- </test-case>-->
- <test-case sql="SELECT * FROM t_single_table s INNER JOIN t_user o ON s.id = o.user_id" db-types="MySQL,Oracle,SQLServer" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
+ <test-case sql="SELECT * FROM t_single_table s INNER JOIN t_user o ON s.id = o.user_id" db-types="MySQL,Oracle,SQLServer" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
<assertion expected-data-source-name="read_dataset" />
</test-case>
- <test-case sql="SELECT o.*, i.* FROM t_order_federate o, t_order_item_federate i WHERE o.order_id = ? AND i.item_id = ?" scenario-types="db,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
+ <test-case sql="SELECT o.*, i.* FROM t_order_federate o, t_order_item_federate i WHERE o.order_id = ? AND i.item_id = ?" scenario-types="db,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
<assertion parameters="1000:int, 100000:int" expected-data-source-name="read_dataset" />
</test-case>
@@ -535,15 +535,15 @@
<assertion parameters="1000:int" />
</test-case>
- <test-case sql="SELECT GROUP_CONCAT(i.item_id SEPARATOR ';') AS item_ids FROM t_order_federate o INNER JOIN t_order_item_federate_sharding i ON o.order_id = i.item_id WHERE i.order_id >= ?" db-types="MySQL" scenario-types="dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
+ <test-case sql="SELECT GROUP_CONCAT(i.item_id SEPARATOR ';') AS item_ids FROM t_order_federate o INNER JOIN t_order_item_federate_sharding i ON o.order_id = i.item_id WHERE i.order_id >= ?" db-types="MySQL" scenario-types="dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
<assertion parameters="10000:int" expected-data-source-name="read_dataset" />
</test-case>
- <test-case sql="select t_order_federate.*, t_order_item_federate_sharding.* from t_order_federate,t_order_item_federate_sharding where t_order_federate.order_id = t_order_item_federate_sharding.item_id" scenario-types="dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
+ <test-case sql="select t_order_federate.*, t_order_item_federate_sharding.* from t_order_federate,t_order_item_federate_sharding where t_order_federate.order_id = t_order_item_federate_sharding.item_id" scenario-types="dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
<assertion expected-data-source-name="read_dataset" />
</test-case>
- <test-case sql="select t_order_federate.*, t_order_item_federate_sharding.* from t_order_federate, t_order_item_federate_sharding where t_order_federate.order_id = t_order_item_federate_sharding.item_id AND t_order_item_federate_sharding.order_id = ?" scenario-types="dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
+ <test-case sql="select t_order_federate.*, t_order_item_federate_sharding.* from t_order_federate, t_order_item_federate_sharding where t_order_federate.order_id = t_order_item_federate_sharding.item_id AND t_order_item_federate_sharding.order_id = ?" scenario-types="dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
<assertion parameters="10001:int" expected-data-source-name="read_dataset" />
</test-case>
@@ -567,59 +567,59 @@
<assertion parameters="1000:int" />
</test-case>
- <test-case sql="select o.order_id_sharding, i.order_id from t_order_federate_sharding o, t_order_item_federate_sharding i where o.order_id_sharding = i.item_id" scenario-types="db,tbl,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
+ <test-case sql="select o.order_id_sharding, i.order_id from t_order_federate_sharding o, t_order_item_federate_sharding i where o.order_id_sharding = i.item_id" scenario-types="db,tbl,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
<assertion expected-data-source-name="read_dataset" />
</test-case>
- <test-case sql="select o.order_id_sharding, i.order_id from t_order_federate_sharding o, t_order_item_federate_sharding i where o.order_id_sharding = i.item_id and i.order_id > ?" scenario-types="db,tbl,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
+ <test-case sql="select o.order_id_sharding, i.order_id from t_order_federate_sharding o, t_order_item_federate_sharding i where o.order_id_sharding = i.item_id and i.order_id > ?" scenario-types="db,tbl,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
<assertion parameters="10000:int" expected-data-source-name="read_dataset" />
</test-case>
- <test-case sql="select o.order_id_sharding, i.order_id from t_order_federate_sharding o, t_order_item_federate_sharding i where o.order_id_sharding = i.item_id and i.order_id > ?" scenario-types="db,tbl,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
+ <test-case sql="select o.order_id_sharding, i.order_id from t_order_federate_sharding o, t_order_item_federate_sharding i where o.order_id_sharding = i.item_id and i.order_id > ?" scenario-types="db,tbl,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
<assertion parameters="10000:int" expected-data-source-name="read_dataset" />
</test-case>
- <test-case sql="select t_user_encrypt_federate_sharding.user_id, t_user_encrypt_federate_sharding.pwd, t_user_info.information from t_user_encrypt_federate_sharding, t_user_info where t_user_encrypt_federate_sharding.user_id = t_user_info.user_id order by t_user_encrypt_federate_sharding.user_id" scenario-types="dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
+ <test-case sql="select t_user_encrypt_federate_sharding.user_id, t_user_encrypt_federate_sharding.pwd, t_user_info.information from t_user_encrypt_federate_sharding, t_user_info where t_user_encrypt_federate_sharding.user_id = t_user_info.user_id order by t_user_encrypt_federate_sharding.user_id" scenario-types="dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
<assertion expected-data-source-name="read_dataset" />
</test-case>
- <test-case sql="select t_user_encrypt_federate_sharding.user_id, t_user_encrypt_federate_sharding.pwd, t_user_info.information from t_user_encrypt_federate_sharding, t_user_info where t_user_encrypt_federate_sharding.user_id = t_user_info.user_id and t_user_encrypt_federate_sharding.user_id > ? " scenario-types="dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
+ <test-case sql="select t_user_encrypt_federate_sharding.user_id, t_user_encrypt_federate_sharding.pwd, t_user_info.information from t_user_encrypt_federate_sharding, t_user_info where t_user_encrypt_federate_sharding.user_id = t_user_info.user_id and t_user_encrypt_federate_sharding.user_id > ? " scenario-types="dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
<assertion parameters="1:int" expected-data-source-name="read_dataset" />
</test-case>
- <test-case sql="select t_order_federate.* from t_order_federate, t_order_item_federate_sharding where t_order_federate.order_id = t_order_item_federate_sharding.item_id ORDER BY t_order_item_federate_sharding.user_id" scenario-types="db,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
+ <test-case sql="select t_order_federate.* from t_order_federate, t_order_item_federate_sharding where t_order_federate.order_id = t_order_item_federate_sharding.item_id ORDER BY t_order_item_federate_sharding.user_id" scenario-types="db,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
<assertion expected-data-source-name="read_dataset" />
</test-case>
- <test-case sql="select t_user_encrypt_federate.user_id, t_user_encrypt_federate.pwd, t_user_info.information from t_user_encrypt_federate, t_user_info where t_user_encrypt_federate.user_id = t_user_info.user_id " scenario-types="dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
+ <test-case sql="select t_user_encrypt_federate.user_id, t_user_encrypt_federate.pwd, t_user_info.information from t_user_encrypt_federate, t_user_info where t_user_encrypt_federate.user_id = t_user_info.user_id " scenario-types="dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
<assertion expected-data-source-name="read_dataset" />
</test-case>
- <test-case sql="select t_user_encrypt_federate.user_id, t_user_encrypt_federate.pwd, t_user_info.information from t_user_encrypt_federate, t_user_info where t_user_encrypt_federate.user_id = t_user_info.user_id and t_user_encrypt_federate.user_id > ? " scenario-types="dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
+ <test-case sql="select t_user_encrypt_federate.user_id, t_user_encrypt_federate.pwd, t_user_info.information from t_user_encrypt_federate, t_user_info where t_user_encrypt_federate.user_id = t_user_info.user_id and t_user_encrypt_federate.user_id > ? " scenario-types="dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
<assertion parameters="1:int" expected-data-source-name="read_dataset" />
</test-case>
<test-case sql="SELECT o.item_id, o.order_id, o.creation_date, s.id FROM t_order_item o INNER JOIN t_single_table s ON o.order_id = s.id ORDER BY o.item_id " scenario-types="db,tbl" />
<!-- FIXME #15592 Expected: is "1000", but: was "10000" -->
-<!-- <test-case sql="select t_order_federate.*, t_order_item_federate_sharding.* from t_order_federate, t_order_item_federate_sharding where t_order_federate.order_id = t_order_item_federate_sharding.item_id AND t_order_item_federate_sharding.remarks = 't_order_item_federate_sharding' " scenario-types="db,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">-->
+<!-- <test-case sql="select t_order_federate.*, t_order_item_federate_sharding.* from t_order_federate, t_order_item_federate_sharding where t_order_federate.order_id = t_order_item_federate_sharding.item_id AND t_order_item_federate_sharding.remarks = 't_order_item_federate_sharding' " scenario-types="db,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">-->
<!-- <assertion expected-data-source-name="read_dataset" />-->
<!-- </test-case>-->
<!-- FIXME #15592 Expected: is "1000", but: was "10000" -->
-<!-- <test-case sql="select o.*, i.* from t_order_federate o, t_order_item_federate_sharding i where o.order_id = i.item_id " scenario-types="db,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">-->
+<!-- <test-case sql="select o.*, i.* from t_order_federate o, t_order_item_federate_sharding i where o.order_id = i.item_id " scenario-types="db,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">-->
<!-- <assertion expected-data-source-name="read_dataset" />-->
<!-- </test-case>-->
- <test-case sql="SELECT * FROM (SELECT order_id_sharding, user_id FROM t_order_federate_sharding WHERE order_id_sharding = 1010) AS TEMP" scenario-types="db,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
+ <test-case sql="SELECT * FROM (SELECT order_id_sharding, user_id FROM t_order_federate_sharding WHERE order_id_sharding = 1010) AS TEMP" scenario-types="db,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
<assertion expected-data-source-name="read_dataset" />
</test-case>
- <test-case sql="SELECT AVG(order_id_sharding) AS order_id_sharding_avg FROM (SELECT order_id_sharding, user_id FROM t_order_federate_sharding WHERE order_id_sharding = 1010) AS TEMP" scenario-types="db,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt" db-types="MySQL">
+ <test-case sql="SELECT AVG(order_id_sharding) AS order_id_sharding_avg FROM (SELECT order_id_sharding, user_id FROM t_order_federate_sharding WHERE order_id_sharding = 1010) AS TEMP" scenario-types="db,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting" db-types="MySQL">
<assertion expected-data-source-name="read_dataset" />
</test-case>
- <test-case sql="SELECT order_id_sharding AS order_id, user_id, status FROM t_order_federate_sharding WHERE order_id_sharding = ? UNION ALL SELECT order_id, user_id, status FROM t_order_item_federate_sharding WHERE user_id = ?" scenario-types="db,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,tbl">
+ <test-case sql="SELECT order_id_sharding AS order_id, user_id, status FROM t_order_federate_sharding WHERE order_id_sharding = ? UNION ALL SELECT order_id, user_id, status FROM t_order_item_federate_sharding WHERE user_id = ?" scenario-types="db,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting,tbl">
<assertion parameters="1010:int, 10:int" expected-data-source-name="read_dataset" />
</test-case>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/encrypt_and_readwrite_splitting/count_database_rules.xml
similarity index 63%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/encrypt_and_readwrite_splitting/count_database_rules.xml
index a159918466a..880dad734d4 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/encrypt_and_readwrite_splitting/count_database_rules.xml
@@ -14,10 +14,19 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<integration-test-cases>
- <test-case sql="SHOW DATABASES" db-types="MySQL" scenario-types="dbtbl_with_readwrite_splitting,readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
- <assertion expected-data-file="show_databases.xml" />
- </test-case>
- <test-case sql="RESET ALL" db-types="PostgreSQL,openGauss" />
-</integration-test-cases>
+<dataset>
+ <metadata>
+ <column name="rule_name"/>
+ <column name="count"/>
+ </metadata>
+ <row values="single_table| 10"/>
+ <row values="sharding_table| 0"/>
+ <row values="sharding_binding_table| 0"/>
+ <row values="sharding_broadcast_table| 0"/>
+ <row values="sharding_scaling| 0"/>
+ <row values="readwrite_splitting| 1"/>
+ <row values="db_discovery| 0"/>
+ <row values="encrypt| 4"/>
+ <row values="shadow| 0"/>
+</dataset>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/encrypt_and_readwrite_splitting/count_single_table_rule.xml
similarity index 68%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/encrypt_and_readwrite_splitting/count_single_table_rule.xml
index a159918466a..44cd364c4be 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/encrypt_and_readwrite_splitting/count_single_table_rule.xml
@@ -14,10 +14,12 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<integration-test-cases>
- <test-case sql="SHOW DATABASES" db-types="MySQL" scenario-types="dbtbl_with_readwrite_splitting,readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
- <assertion expected-data-file="show_databases.xml" />
- </test-case>
- <test-case sql="RESET ALL" db-types="PostgreSQL,openGauss" />
-</integration-test-cases>
+<dataset>
+ <metadata>
+ <column name="rule_name"/>
+ <column name="database"/>
+ <column name="count"/>
+ </metadata>
+ <row values="single_table| encrypt_and_readwrite_splitting| 10"/>
+</dataset>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/encrypt_and_readwrite_splitting/mysql/show_resources.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/encrypt_and_readwrite_splitting/mysql/show_resources.xml
new file mode 100644
index 00000000000..16f3773d914
--- /dev/null
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/encrypt_and_readwrite_splitting/mysql/show_resources.xml
@@ -0,0 +1,35 @@
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one or more
+ ~ contributor license agreements. See the NOTICE file distributed with
+ ~ this work for additional information regarding copyright ownership.
+ ~ The ASF licenses this file to You under the Apache License, Version 2.0
+ ~ (the "License"); you may not use this file except in compliance with
+ ~ the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="name" />
+ <column name="type" />
+ <column name="host" />
+ <column name="port" />
+ <column name="db" />
+ <column name="connection_timeout_milliseconds" />
+ <column name="idle_timeout_milliseconds" />
+ <column name="max_lifetime_milliseconds" />
+ <column name="max_pool_size" />
+ <column name="min_pool_size" />
+ <column name="read_only" />
+ <column name="other_attributes" />
+ </metadata>
+ <row values="encrypt_write_ds| MySQL| mysql.encrypt_and_readwrite_splitting.host| 3306| encrypt_write_ds| 30000| 60000| 1800000| 2| 2| false| {"dataSourceProperties":{"cacheServerConfiguration":"true","elideSetAutoCommits":"true","useServerPrepStmts":"true","cachePrepStmts":"true","rewriteBatchedStatements":"true","ca [...]
+ <row values="encrypt_read_ds| MySQL| mysql.encrypt_and_readwrite_splitting.host| 3306| encrypt_read_ds| 30000| 60000| 1800000| 2| 2| false| {"dataSourceProperties":{"cacheServerConfiguration":"true","elideSetAutoCommits":"true","useServerPrepStmts":"true","cachePrepStmts":"true","rewriteBatchedStatements":"true","cach [...]
+</dataset>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/encrypt_and_readwrite_splitting/postgresql/show_resources.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/encrypt_and_readwrite_splitting/postgresql/show_resources.xml
new file mode 100644
index 00000000000..b8547ef8f54
--- /dev/null
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/encrypt_and_readwrite_splitting/postgresql/show_resources.xml
@@ -0,0 +1,35 @@
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one or more
+ ~ contributor license agreements. See the NOTICE file distributed with
+ ~ this work for additional information regarding copyright ownership.
+ ~ The ASF licenses this file to You under the Apache License, Version 2.0
+ ~ (the "License"); you may not use this file except in compliance with
+ ~ the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="name" />
+ <column name="type" />
+ <column name="host" />
+ <column name="port" />
+ <column name="db" />
+ <column name="connection_timeout_milliseconds" />
+ <column name="idle_timeout_milliseconds" />
+ <column name="max_lifetime_milliseconds" />
+ <column name="max_pool_size" />
+ <column name="min_pool_size" />
+ <column name="read_only" />
+ <column name="other_attributes" />
+ </metadata>
+ <row values="encrypt_write_ds| PostgreSQL| postgresql.encrypt_and_readwrite_splitting.host| 5432| encrypt_write_ds| 30000| 60000| 1800000| 2| 2| false| {"dataSourceProperties":{},"healthCheckProperties":{},"initializationFailTimeout":1,"validationTimeout":5000,"leakDetectionThreshold":0,"poolName":"HikariPool-1","registerMbeans": [...]
+ <row values="encrypt_read_ds| PostgreSQL| postgresql.encrypt_and_readwrite_splitting.host| 5432| encrypt_read_ds| 30000| 60000| 1800000| 2| 2| false| {"dataSourceProperties":{},"healthCheckProperties":{},"initializationFailTimeout":1,"validationTimeout":5000,"leakDetectionThreshold":0,"poolName":"HikariPool-2","registerMbeans":fa [...]
+</dataset>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/encrypt_and_readwrite_splitting/show_encrypt_rule.xml
similarity index 55%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/encrypt_and_readwrite_splitting/show_encrypt_rule.xml
index a159918466a..e327a3c2780 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/encrypt_and_readwrite_splitting/show_encrypt_rule.xml
@@ -14,10 +14,21 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<integration-test-cases>
- <test-case sql="SHOW DATABASES" db-types="MySQL" scenario-types="dbtbl_with_readwrite_splitting,readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
- <assertion expected-data-file="show_databases.xml" />
- </test-case>
- <test-case sql="RESET ALL" db-types="PostgreSQL,openGauss" />
-</integration-test-cases>
+<dataset>
+ <metadata>
+ <column name="table" />
+ <column name="logic_column" />
+ <column name="logic_data_type" />
+ <column name="cipher_column" />
+ <column name="cipher_data_type" />
+ <column name="plain_column" />
+ <column name="plain_data_type" />
+ <column name="assisted_query_column" />
+ <column name="assisted_query_data_type" />
+ <column name="encryptor_type" />
+ <column name="encryptor_props" />
+ <column name="query_with_cipher_column" />
+ </metadata>
+ <row values="t_user| pwd| | pwd_cipher| | pwd_plain| | | | AES| aes-key-value=123456abc| true" />
+</dataset>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/encrypt_and_readwrite_splitting/show_encrypt_rules.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/encrypt_and_readwrite_splitting/show_encrypt_rules.xml
new file mode 100644
index 00000000000..e06a94ee029
--- /dev/null
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/encrypt_and_readwrite_splitting/show_encrypt_rules.xml
@@ -0,0 +1,38 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata>
+ <column name="table" />
+ <column name="logic_column" />
+ <column name="logic_data_type" />
+ <column name="cipher_column" />
+ <column name="cipher_data_type" />
+ <column name="plain_column" />
+ <column name="plain_data_type" />
+ <column name="assisted_query_column" />
+ <column name="assisted_query_data_type" />
+ <column name="encryptor_type" />
+ <column name="encryptor_props" />
+ <column name="query_with_cipher_column" />
+ </metadata>
+ <row values="t_user| pwd| | pwd_cipher| | pwd_plain| | | | AES| aes-key-value=123456abc| true" />
+ <row values="t_user_details| number| | number_cipher| | number_plain| | | | AES| aes-key-value=123456abc| true" />
+ <row values="t_user_details| number_new| | number_new_cipher| | number_new_plain| | | | AES| aes-key-value=123456abc| true" />
+ <row values="t_user_encrypt_federate| pwd| | cipher_pwd| | plain_pwd| | | | AES| aes-key-value=123456abc| true" />
+ <row values="t_user_encrypt_federate_sharding| pwd| | cipher_pwd| | plain_pwd| | | | AES| aes-key-value=123456abc| true" />
+</dataset>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/encrypt_and_readwrite_splitting/show_readwrite_splitting_rules.xml
similarity index 63%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/encrypt_and_readwrite_splitting/show_readwrite_splitting_rules.xml
index a159918466a..1256a9ca691 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/encrypt_and_readwrite_splitting/show_readwrite_splitting_rules.xml
@@ -14,10 +14,16 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<integration-test-cases>
- <test-case sql="SHOW DATABASES" db-types="MySQL" scenario-types="dbtbl_with_readwrite_splitting,readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
- <assertion expected-data-file="show_databases.xml" />
- </test-case>
- <test-case sql="RESET ALL" db-types="PostgreSQL,openGauss" />
-</integration-test-cases>
+<dataset>
+ <metadata>
+ <column name="name" />
+ <column name="auto_aware_data_source_name" />
+ <column name="write_data_source_query_enabled" />
+ <column name="write_data_source_name" />
+ <column name="read_data_source_names" />
+ <column name="load_balancer_type" />
+ <column name="load_balancer_props" />
+ </metadata>
+ <row values="readwrite_ds| | | encrypt_write_ds| encrypt_read_ds| ROUND_ROBIN| " />
+</dataset>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/encrypt_and_readwrite_splitting/show_single_table.xml
similarity index 68%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/encrypt_and_readwrite_splitting/show_single_table.xml
index a159918466a..e5717c62a6c 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/encrypt_and_readwrite_splitting/show_single_table.xml
@@ -14,10 +14,11 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<integration-test-cases>
- <test-case sql="SHOW DATABASES" db-types="MySQL" scenario-types="dbtbl_with_readwrite_splitting,readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
- <assertion expected-data-file="show_databases.xml" />
- </test-case>
- <test-case sql="RESET ALL" db-types="PostgreSQL,openGauss" />
-</integration-test-cases>
+<dataset>
+ <metadata>
+ <column name="table_name"/>
+ <column name="resource_name"/>
+ </metadata>
+ <row values="t_single_table| readwrite_ds"/>
+</dataset>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/encrypt_and_readwrite_splitting/show_single_table_rules.xml
similarity index 68%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/encrypt_and_readwrite_splitting/show_single_table_rules.xml
index a159918466a..af8c90693af 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/encrypt_and_readwrite_splitting/show_single_table_rules.xml
@@ -14,10 +14,10 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<integration-test-cases>
- <test-case sql="SHOW DATABASES" db-types="MySQL" scenario-types="dbtbl_with_readwrite_splitting,readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
- <assertion expected-data-file="show_databases.xml" />
- </test-case>
- <test-case sql="RESET ALL" db-types="PostgreSQL,openGauss" />
-</integration-test-cases>
+<dataset>
+ <metadata>
+ <column name="name" />
+ <column name="resource_name" />
+ </metadata>
+</dataset>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/encrypt_and_readwrite_splitting/show_single_tables.xml
similarity index 55%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/encrypt_and_readwrite_splitting/show_single_tables.xml
index a159918466a..716b852a395 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/encrypt_and_readwrite_splitting/show_single_tables.xml
@@ -14,10 +14,20 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<integration-test-cases>
- <test-case sql="SHOW DATABASES" db-types="MySQL" scenario-types="dbtbl_with_readwrite_splitting,readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
- <assertion expected-data-file="show_databases.xml" />
- </test-case>
- <test-case sql="RESET ALL" db-types="PostgreSQL,openGauss" />
-</integration-test-cases>
+<dataset>
+ <metadata>
+ <column name="table_name"/>
+ <column name="resource_name"/>
+ </metadata>
+ <row values="t_order_federate_sharding| readwrite_ds"/>
+ <row values="t_order_item_federate_sharding| readwrite_ds"/>
+ <row values="t_single_table| readwrite_ds"/>
+ <row values="t_user| readwrite_ds"/>
+ <row values="t_user_item| readwrite_ds"/>
+ <row values="t_order_item_federate| readwrite_ds"/>
+ <row values="t_order_federate| readwrite_ds"/>
+ <row values="t_user_encrypt_federate| readwrite_ds"/>
+ <row values="t_user_encrypt_federate_sharding| readwrite_ds"/>
+ <row values="t_user_info| readwrite_ds"/>
+</dataset>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/rql-integration-test-cases.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/rql-integration-test-cases.xml
index a7cf078d7d5..9ecbac247e8 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/rql-integration-test-cases.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/rql-integration-test-cases.xml
@@ -15,13 +15,13 @@
~ limitations under the License.
-->
<integration-test-cases>
- <test-case sql="SHOW DATABASE RESOURCES" scenario-types="db,tbl,readwrite_splitting,encrypt,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
+ <test-case sql="SHOW DATABASE RESOURCES" scenario-types="db,tbl,readwrite_splitting,encrypt,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
<assertion expected-data-file="show_resources.xml" />
</test-case>
<!--TODO Support dynamic input of scenario names-->
<!--FIXME db scenario have a problem. #18964-->
-<!-- <test-case sql="SHOW DATABASE RESOURCES FROM ?" scenario-types="db,tbl,readwrite_splitting,encrypt,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">-->
+<!-- <test-case sql="SHOW DATABASE RESOURCES FROM ?" scenario-types="db,tbl,readwrite_splitting,encrypt,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">-->
<!-- <assertion expected-data-file="show_resources.xml" />-->
<!-- </test-case>-->
@@ -85,19 +85,19 @@
<assertion expected-data-file="show_sharding_scaling_rules.xml" />
</test-case>
- <test-case sql="SHOW SINGLE TABLE RULES" scenario-types="db,tbl,readwrite_splitting,encrypt,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
+ <test-case sql="SHOW SINGLE TABLE RULES" scenario-types="db,tbl,readwrite_splitting,encrypt,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
<assertion expected-data-file="show_single_table_rules.xml" />
</test-case>
- <test-case sql="SHOW SINGLE TABLE t_single_table" scenario-types="db,tbl,readwrite_splitting,encrypt,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
+ <test-case sql="SHOW SINGLE TABLE t_single_table" scenario-types="db,tbl,readwrite_splitting,encrypt,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
<assertion expected-data-file="show_single_table.xml" />
</test-case>
- <test-case sql="SHOW SINGLE TABLES" scenario-types="db,tbl,readwrite_splitting,encrypt,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
+ <test-case sql="SHOW SINGLE TABLES" scenario-types="db,tbl,readwrite_splitting,encrypt,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
<assertion expected-data-file="show_single_tables.xml" />
</test-case>
- <test-case sql="COUNT SINGLE_TABLE RULE" scenario-types="db,tbl,readwrite_splitting,encrypt,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
+ <test-case sql="COUNT SINGLE_TABLE RULE" scenario-types="db,tbl,readwrite_splitting,encrypt,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
<assertion expected-data-file="count_single_table_rule.xml" />
</test-case>
@@ -105,11 +105,11 @@
<assertion expected-data-file="show_readwrite_splitting_rules.xml" />
</test-case>
- <test-case sql="SHOW ENCRYPT RULES" scenario-types="dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt">
+ <test-case sql="SHOW ENCRYPT RULES" scenario-types="dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting,encrypt">
<assertion expected-data-file="show_encrypt_rules.xml" />
</test-case>
- <test-case sql="SHOW ENCRYPT TABLE RULE t_user" scenario-types="dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt">
+ <test-case sql="SHOW ENCRYPT TABLE RULE t_user" scenario-types="dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting,encrypt">
<assertion expected-data-file="show_encrypt_rule.xml" />
</test-case>
@@ -126,7 +126,7 @@
<assertion expected-data-file="show_discovery_heartbeats.xml" />
</test-case>
- <test-case sql="COUNT DATABASE RULES" scenario-types="db,tbl,readwrite_splitting,encrypt,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
+ <test-case sql="COUNT DATABASE RULES" scenario-types="db,tbl,readwrite_splitting,encrypt,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt,encrypt_and_readwrite_splitting">
<assertion expected-data-file="count_database_rules.xml" />
</test-case>
</integration-test-cases>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/it-env.properties b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/it-env.properties
index 5c26fad0e15..d6782b3798b 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/it-env.properties
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/it-env.properties
@@ -19,8 +19,8 @@
it.run.modes=Standalone
it.run.additional.cases=false
-#it.scenarios=db,tbl,readwrite_splitting,encrypt,shadow,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,empty_rules,sharding_and_encrypt
-it.scenarios=db,tbl,readwrite_splitting,encrypt,shadow,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,empty_rules,sharding_and_encrypt
+#it.scenarios=db,tbl,readwrite_splitting,encrypt,shadow,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,empty_rules,sharding_and_encrypt,encrypt_and_readwrite_splitting
+it.scenarios=db,tbl,readwrite_splitting,encrypt,shadow,dbtbl_with_readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,empty_rules,sharding_and_encrypt,encrypt_and_readwrite_splitting
# it.cluster.env.type=DOCKER,NATIVE
it.cluster.env.type=DOCKER
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/authority.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/authority.xml
new file mode 100644
index 00000000000..d1796ec5c12
--- /dev/null
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/authority.xml
@@ -0,0 +1,71 @@
+<!--
+ ~ 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.
+ -->
+
+<authority>
+ <sqlset db-types="Oracle,SQLServer,PostgreSQL">
+ <user-create>
+ <sql>CREATE USER default_user</sql>
+ <sql>CREATE ROLE default_role</sql>
+ <sql>CREATE ROLE role2</sql>
+ <sql>CREATE ROLE role3</sql>
+ <sql>CREATE ROLE role4</sql>
+ </user-create>
+ <user-drop>
+ <sql>DROP ROLE IF EXISTS default_role</sql>
+ <sql>DROP ROLE IF EXISTS role_dev</sql>
+ <sql>DROP ROLE IF EXISTS role_dev_new</sql>
+ <sql>DROP ROLE IF EXISTS role2</sql>
+ <sql>DROP ROLE IF EXISTS role3</sql>
+ <sql>DROP ROLE IF EXISTS role4</sql>
+ <sql>DROP USER IF EXISTS user_dev</sql>
+ <sql>DROP USER IF EXISTS user_dev_new</sql>
+ <sql>DROP USER IF EXISTS default_user</sql>
+ </user-drop>
+ </sqlset>
+ <sqlset db-types="SQLServer">
+ <user-create>
+ <sql>CREATE LOGIN login_dev</sql>
+ <sql>CREATE USER user_dev FOR LOGIN login_dev</sql>
+ </user-create>
+ <user-drop>
+ <sql>DROP LOGIN IF EXISTS login_dev</sql>
+ <sql>DROP LOGIN IF EXISTS login_dev_new</sql>
+ </user-drop>
+ </sqlset>
+ <sqlset db-types="MySQL">
+ <user-create>
+ <sql>CREATE ROLE default_role</sql>
+ <sql>CREATE USER user_dev@localhost</sql>
+ <sql>GRANT select,update,insert,delete on encrypt_write_ds.* to user_dev@localhost</sql>
+ <sql>GRANT select,update,insert,delete on encrypt_read_ds.* to user_dev@localhost</sql>
+ </user-create>
+ <user-drop>
+ <sql>DROP USER IF EXISTS user_dev@localhost</sql>
+ <sql>DROP USER IF EXISTS user_dev_new@localhost</sql>
+ <sql>DROP USER IF EXISTS user_dev@127.0.0.1</sql>
+ <sql>DROP ROLE IF EXISTS default_role</sql>
+ <sql>DROP ROLE IF EXISTS role_dev</sql>
+ <sql>DROP ROLE IF EXISTS role_dev_new</sql>
+ <sql>FLUSH PRIVILEGES</sql>
+ </user-drop>
+ </sqlset>
+ <sqlset db-types="Oracle">
+ <user-create>
+ <sql>CREATE USER user_dev identified by passwd_dev</sql>
+ </user-create>
+ </sqlset>
+</authority>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/actual/databases.xml
similarity index 68%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/actual/databases.xml
index a159918466a..3ff6271738d 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/actual/databases.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Licensed to the Apache Software Foundation (ASF) under one or more
~ contributor license agreements. See the NOTICE file distributed with
@@ -14,10 +15,8 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<integration-test-cases>
- <test-case sql="SHOW DATABASES" db-types="MySQL" scenario-types="dbtbl_with_readwrite_splitting,readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
- <assertion expected-data-file="show_databases.xml" />
- </test-case>
- <test-case sql="RESET ALL" db-types="PostgreSQL,openGauss" />
-</integration-test-cases>
+<databases>
+ <database>encrypt_write_ds</database>
+ <database>encrypt_read_ds</database>
+</databases>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/actual/dataset.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/actual/dataset.xml
new file mode 100644
index 00000000000..6a95bc3dfe8
--- /dev/null
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/actual/dataset.xml
@@ -0,0 +1,544 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata data-nodes="encrypt_write_ds.t_user,encrypt_read_ds.t_user">
+ <column name="user_id" type="numeric" />
+ <column name="address_id" type="numeric" />
+ <column name="pwd_plain" type="varchar" />
+ <column name="pwd_cipher" type="varchar" />
+ <column name="status" type="varchar" />
+ </metadata>
+ <metadata data-nodes="encrypt_write_ds.t_user_item,encrypt_read_ds.t_user_item">
+ <column name="item_id" type="numeric" />
+ <column name="user_id" type="numeric" />
+ <column name="status" type="varchar" />
+ <column name="creation_date" type="datetime" />
+ </metadata>
+ <metadata data-nodes="encrypt_write_ds.t_single_table,encrypt_read_ds.t_single_table">
+ <column name="single_id" type="numeric" />
+ <column name="id" type="numeric" />
+ <column name="status" type="varchar" />
+ </metadata>
+ <metadata data-nodes="encrypt_write_ds.t_order_federate,encrypt_read_ds.t_order_federate">
+ <column name="order_id" type="numeric" />
+ <column name="user_id" type="numeric" />
+ <column name="status" type="varchar" />
+ </metadata>
+ <metadata data-nodes="encrypt_write_ds.t_order_item_federate,encrypt_read_ds.t_order_item_federate">
+ <column name="item_id" type="numeric" />
+ <column name="order_id" type="numeric" />
+ <column name="user_id" type="numeric" />
+ <column name="status" type="varchar" />
+ </metadata>
+ <metadata data-nodes="encrypt_write_ds.t_order_item_federate_sharding,encrypt_read_ds.t_order_item_federate_sharding">
+ <column name="item_id" type="numeric" />
+ <column name="order_id" type="numeric" />
+ <column name="user_id" type="numeric" />
+ <column name="status" type="varchar" />
+ <column name="remarks" type="varchar" />
+ </metadata>
+ <metadata data-nodes="encrypt_write_ds.t_order_federate_sharding,encrypt_read_ds.t_order_federate_sharding">
+ <column name="order_id_sharding" type="numeric" />
+ <column name="user_id" type="numeric" />
+ <column name="status" type="varchar" />
+ </metadata>
+ <metadata data-nodes="encrypt_write_ds.t_user_encrypt_federate_sharding,encrypt_read_ds.t_user_encrypt_federate_sharding">
+ <column name="user_id" type="numeric" />
+ <column name="plain_pwd" type="varchar" />
+ <column name="cipher_pwd" type="varchar" />
+ <column name="username" type="varchar" />
+ </metadata>
+ <metadata data-nodes="encrypt_write_ds.t_user_encrypt_federate,encrypt_read_ds.t_user_encrypt_federate">
+ <column name="user_id" type="numeric" />
+ <column name="plain_pwd" type="varchar" />
+ <column name="cipher_pwd" type="varchar" />
+ <column name="username" type="varchar" />
+ </metadata>
+ <metadata data-nodes="encrypt_write_ds.t_user_info,encrypt_read_ds.t_user_info">
+ <column name="user_id" type="numeric" />
+ <column name="information" type="varchar" />
+ </metadata>
+ <row data-node="encrypt_write_ds.t_single_table" values="1, 0, init" />
+ <row data-node="encrypt_write_ds.t_single_table" values="2, 11, init" />
+ <row data-node="encrypt_write_ds.t_single_table" values="3, 22, init" />
+ <row data-node="encrypt_write_ds.t_single_table" values="4, 33, init" />
+ <row data-node="encrypt_write_ds.t_user" values="0, 10000, null, dL/JAiR/3cVG8lt6DMDa/A==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="1, 11000, null, wPc6WYJBzQIt4i4T0KhqXA==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="2, 12000, null, HbV7OHLF4nBuOMVCLV5Cbg==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="3, 13000, null, avls/J9bHV4A8V4VdPjfig==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="4, 14000, null, EPMV29wqL8k6Uow+Xrx3tg==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="5, 15000, null, GxjyN54a5qsP5UDx7z98jw==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="6, 16000, null, myfeu/O6o4D9RqILA5c2xA==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="7, 17000, null, bnHlhR5STgfqDncGsILMMQ==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="8, 18000, null, Rlu0LF0Cud3Fdu+ZL7Uq7A==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="9, 19000, null, mOF/2EcSlRCZ0VQeZHlAhQ==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="10, 10001, null, yK+tn8E43EyCEgbqNOrJ4w==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="11, 11001, null, CIbxTwI742pGwxb18lQLkQ==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="12, 12001, null, VCHpNlwod9AiuS1V+7DSLw==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="13, 13001, null, 8uxRFhW4c2rtSOoesudk/A==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="14, 14001, null, 6dL4zoSI6hLaOqPg3VCiWQ==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="15, 15001, null, sqE82LdK1u2e43ZtMl/JNw==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="16, 16001, null, j9uwIi056TLTk+X70X/Pmw==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="17, 17001, null, 4EHWjOuIzrK7eGNbCqjfWg==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="18, 18001, null, uqt780pm9cFOZA030qN6QQ==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="19, 19001, null, fxMzWyyejZC7ZbJmMmGQzw==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="20, 10002, null, CsW4MD6vPLjo8+hGL0Bo4w==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="21, 11002, null, PVA6mbMm1kkSMHSjsArNMg==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="22, 12002, null, k2NWLEtJ6ZZFpnxh5Va5DA==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="23, 13002, null, 8EPPc+b2XMq9YSvOcEEing==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="24, 14002, null, zAaiW1TwDTujcIEdhVLXlg==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="25, 15002, null, y3M+uxIBPPqxewV/sQCzlw==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="26, 16002, null, TDUjigcYh2VVd/RYWRDaWg==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="27, 17002, null, yhTlcXGbfBeEM/7PK3f5pQ==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="28, 18002, null, auRfbGy1FVUPOxL/RFxBQA==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="29, 19002, null, aFMSknQG8p6wTGIhKNqJWg==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="30, 10003, null, ZcI0/2rZRwtl8CkoWnyNYg==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="31, 11003, null, Yz0R+SlE3AlO7jiOXOORog==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="32, 12003, null, I05miGKGMDNM5c7b+ibkng==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="33, 13003, null, GZmRSNc3jADLc9ca7MHHUQ==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="34, 14003, null, OCQD6nAXGxKym6ERLT8Ocg==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="35, 15003, null, 43zyfbMMwczKlyyhhyo4DA==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="36, 16003, null, 5UttfMTwhqlMif3YKOOh7Q==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="37, 17003, null, Iwh3hT6Kff/xYsyXNGtf8A==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="38, 18003, null, QFyiP7og+19ijdQBLO91TA==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="39, 19003, null, g+dSiuA7EsW3tDs+20j4yQ==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="40, 10004, null, vu7rg5Fx+p4sf7PY3F/XkA==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="41, 11004, null, R2jShanHkB8vL+3PWVtGCw==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="42, 12004, null, lVWyZQPlVdUhiPRjdVTQXg==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="43, 13004, null, 77bOsjoqDkWSiv7+Ij6n2Q==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="44, 14004, null, wVwIeANTfyuYr271gpk0sQ==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="45, 15004, null, foDB+Gm5QYUYokwTfxTsCw==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="46, 16004, null, F2m3crkR88VuM/HEbO7j+A==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="47, 17004, null, t7PvURIBPbs5zGoLqrBtFQ==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="48, 18004, null, +pK5nh/SWW33b6pNK3YvCQ==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="49, 19004, null, uB2f4cc9dGRLuuWXYFsZQg==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="50, 10005, null, SdNz2ZEWqomcNqmrjV5CLg==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="51, 11005, null, 7j2sicl9fY79dgvDjoVQ6A==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="52, 12005, null, OQQ0iVzwLd3wAyiEagRb1w==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="53, 13005, null, kGUn2kRm9f1pd5lRNTLV4w==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="54, 14005, null, PKmA/7slVN/2HNhKLj0XoQ==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="55, 15005, null, aG1YPC3uDNgH1gzlUrn21g==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="56, 16005, null, qQmnX5II/jxrQWKBpDpCrg==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="57, 17005, null, icdC0wx8+ftXLQYScnrdPA==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="58, 18005, null, 9B8R0rlykQDYUKJN2iF5TQ==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="59, 19005, null, QBp/kRwtb9FMDJS9p/QJRw==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="60, 10006, null, rJO2CWjwyQRPN1Z8ubPT+g==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="61, 11006, null, g0EzKaaNKrAN/SY0ZHgiPA==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="62, 12006, null, g3P579hpR4nHHN740FwEPw==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="63, 13006, null, /EST/RbrI3KpinjQljr5lQ==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="64, 14006, null, 8LJsk/W05nOpqZ2LTNaR9g==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="65, 15006, null, 081QjmH+mVkoYLdFkrQUdw==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="66, 16006, null, HFrbbKF6I2PWR2XFUl5aoQ==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="67, 17006, null, ckb4oY9Bgo3T3HadoIJBHQ==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="68, 18006, null, r6JhpT0Uu3iv2TrijQ+4dw==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="69, 19006, null, 0W0/tHYJxu/+suDfkhwBUA==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="70, 10007, null, qewDwKyvX2y1mrPOAjvnJw==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="71, 11007, null, ZaeVy/q9wyUCBzjEGqMAOw==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="72, 12007, null, gHRriIh3YL7E+r/vJhF1BA==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="73, 13007, null, oz+WFVBXdigh4pYhLQIqMQ==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="74, 14007, null, NAaO2Q6gWHXMjSY4MhtOBw==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="75, 15007, null, zngftEpibgSVznPpdW+Iww==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="76, 16007, null, pcIWo58GiXizmF9XoUFi5Q==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="77, 17007, null, OrZ0BTU9guaRAsvlllMP2A==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="78, 18007, null, ICGcSjYHEC/UUHBiDEZ3Ig==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="79, 19007, null, JhZvTKXmZbgSV8f0Il+hfA==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="80, 10008, null, t50lbUWg9IG0DUK3wvsuVQ==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="81, 11008, null, GFbH0x9bKgNjca82L6LQ8g==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="82, 12008, null, ZgTchBeCBGjrRUhFa+N8fg==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="83, 13008, null, 4AO+TW07gsDFrhfhKH56Og==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="84, 14008, null, lQ93gD5gVKromV64BHAomw==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="85, 15008, null, 3n887cFYFd7u7hWpguDAdQ==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="86, 16008, null, uHlcR+ZUiDqhdJkqKAjxnQ==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="87, 17008, null, 3qhS1Leu2nDv/QZ2Agw4iQ==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="88, 18008, null, G/HK36BIpcVXvfkF3gjjcA==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="89, 19008, null, TF60AIoPWjR9SFb4y26a0w==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="90, 10009, null, BtkhhvF5z6PGgkS7+3X7lw==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="91, 11009, null, 72yl4Zn7/SUBTForYmkdRg==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="92, 12009, null, qQkkak2if+eUUuomqvcjpA==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="93, 13009, null, Voj+XVu4Qmr5CyUWOouK+w==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="94, 14009, null, gGEW0Da+8FKpiRnBnfSUmA==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="95, 15009, null, 8psHAH0NJ5fdK5ZGmdP/wQ==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="96, 16009, null, 654WkfIPBEv2nfyhmgHP8A==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="97, 17009, null, 4cs88JOZMhtFn6C04H+rxA==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="98, 18009, null, bjkyDftrAIaEJSlibxiVkg==, init" />
+ <row data-node="encrypt_write_ds.t_user" values="99, 19009, null, Ou8qESKecbqmABoIo+5Kpg==, init" />
+ <row data-node="encrypt_write_ds.t_user_item" values="100000, 0, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="100001, 10, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="100002, 20, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="100003, 30, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="100004, 40, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="100005, 50, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="100006, 60, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="100007, 70, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="100008, 80, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="100009, 90, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="110000, 1, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="110001, 11, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="110002, 21, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="110003, 31, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="110004, 41, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="110005, 51, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="110006, 61, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="110007, 71, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="110008, 81, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="110009, 91, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="120000, 2, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="120001, 12, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="120002, 22, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="120003, 32, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="120004, 42, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="120005, 52, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="120006, 62, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="120007, 72, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="120008, 82, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="120009, 92, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="130000, 3, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="130001, 13, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="130002, 23, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="130003, 33, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="130004, 43, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="130005, 53, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="130006, 63, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="130007, 73, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="130008, 83, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="130009, 93, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="140000, 4, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="140001, 14, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="140002, 24, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="140003, 34, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="140004, 44, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="140005, 54, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="140006, 64, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="140007, 74, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="140008, 84, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="140009, 94, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="150000, 5, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="150001, 15, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="150002, 25, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="150003, 35, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="150004, 45, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="150005, 55, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="150006, 65, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="150007, 75, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="150008, 85, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="150009, 95, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="160000, 6, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="160001, 16, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="160002, 26, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="160003, 36, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="160004, 46, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="160005, 56, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="160006, 66, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="160007, 76, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="160008, 86, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="160009, 96, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="170000, 7, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="170001, 17, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="170002, 27, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="170003, 37, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="170004, 47, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="170005, 57, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="170006, 67, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="170007, 77, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="170008, 87, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="170009, 97, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="180000, 8, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="180001, 18, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="180002, 28, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="180003, 38, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="180004, 48, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="180005, 58, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="180006, 68, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="180007, 78, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="180008, 88, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="180009, 98, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="190000, 9, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="190001, 19, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="190002, 29, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="190003, 39, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="190004, 49, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="190005, 59, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="190006, 69, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="190007, 79, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="190008, 89, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_user_item" values="190009, 99, init, 2017-08-08" />
+ <row data-node="encrypt_write_ds.t_order_federate" values="1000, 10, init" />
+ <row data-node="encrypt_write_ds.t_order_federate" values="1001, 11, init" />
+ <row data-node="encrypt_write_ds.t_order_item_federate" values="100000, 1000, 10, init" />
+ <row data-node="encrypt_write_ds.t_order_item_federate" values="100001, 1000, 10, init" />
+ <row data-node="encrypt_write_ds.t_order_item_federate" values="100100, 1001, 10, init" />
+ <row data-node="encrypt_write_ds.t_order_item_federate" values="100101, 1001, 10, init" />
+ <row data-node="encrypt_write_ds.t_order_item_federate_sharding" values="1000, 10000, 10, init, t_order_item_federate_sharding" />
+ <row data-node="encrypt_write_ds.t_order_item_federate_sharding" values="1010, 10001, 10, init, t_order_item_federate_sharding" />
+ <row data-node="encrypt_write_ds.t_order_item_federate_sharding" values="1001, 10001, 11, init, t_order_item_federate_sharding" />
+ <row data-node="encrypt_write_ds.t_order_item_federate_sharding" values="1011, 10001, 10, init, t_order_item_federate_sharding" />
+ <row data-node="encrypt_write_ds.t_order_federate_sharding" values="1010, 10, init" />
+ <row data-node="encrypt_write_ds.t_order_federate_sharding" values="1100, 10, init" />
+ <row data-node="encrypt_write_ds.t_order_federate_sharding" values="1011, 11, init" />
+ <row data-node="encrypt_write_ds.t_order_federate_sharding" values="1101, 11, init" />
+ <row data-node="encrypt_write_ds.t_user_encrypt_federate_sharding" values="0, plain passwordA, uqObdVp9XTGZ4Mnw0LolHg==, Rachel" />
+ <row data-node="encrypt_write_ds.t_user_encrypt_federate_sharding" values="1, plain passwordB, uqObdVp9XTGZ4Mnw0LolHg==, Monica" />
+ <row data-node="encrypt_write_ds.t_user_encrypt_federate_sharding" values="2, plain passwordC, uqObdVp9XTGZ4Mnw0LolHg==, Phoebe" />
+ <row data-node="encrypt_write_ds.t_user_encrypt_federate_sharding" values="3, plain passwordD, uqObdVp9XTGZ4Mnw0LolHg==, Ross" />
+ <row data-node="encrypt_write_ds.t_user_encrypt_federate_sharding" values="4, plain passwordE, uqObdVp9XTGZ4Mnw0LolHg==, Chandler" />
+ <row data-node="encrypt_write_ds.t_user_encrypt_federate_sharding" values="5, plain passwordF, uqObdVp9XTGZ4Mnw0LolHg==, Joey" />
+ <row data-node="encrypt_write_ds.t_user_info" values="0, description0" />
+ <row data-node="encrypt_write_ds.t_user_info" values="1, description1" />
+ <row data-node="encrypt_write_ds.t_user_info" values="2, description2" />
+ <row data-node="encrypt_write_ds.t_user_info" values="3, description3" />
+ <row data-node="encrypt_write_ds.t_user_encrypt_federate" values="0, plain password1, uqObdVp9XTGZ4Mnw0LolHg==, Rachel" />
+ <row data-node="encrypt_write_ds.t_user_encrypt_federate" values="1, plain password2, uqObdVp9XTGZ4Mnw0LolHg==, Monica" />
+ <row data-node="encrypt_write_ds.t_user_encrypt_federate" values="2, plain password3, uqObdVp9XTGZ4Mnw0LolHg==, Phoebe" />
+ <row data-node="encrypt_write_ds.t_user_encrypt_federate" values="3, plain password4, uqObdVp9XTGZ4Mnw0LolHg==, Ross" />
+ <row data-node="encrypt_write_ds.t_user_encrypt_federate" values="4, plain password5, uqObdVp9XTGZ4Mnw0LolHg==, Chandler" />
+ <row data-node="encrypt_write_ds.t_user_encrypt_federate" values="5, plain password6, uqObdVp9XTGZ4Mnw0LolHg==, Joey" />
+ <row data-node="encrypt_read_ds.t_single_table" values="1, 0, init_read" />
+ <row data-node="encrypt_read_ds.t_single_table" values="2, 11, init_read" />
+ <row data-node="encrypt_read_ds.t_single_table" values="3, 22, init_read" />
+ <row data-node="encrypt_read_ds.t_single_table" values="4, 33, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="0, 10000, null, dL/JAiR/3cVG8lt6DMDa/A==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="1, 11000, null, wPc6WYJBzQIt4i4T0KhqXA==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="2, 12000, null, HbV7OHLF4nBuOMVCLV5Cbg==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="3, 13000, null, avls/J9bHV4A8V4VdPjfig==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="4, 14000, null, EPMV29wqL8k6Uow+Xrx3tg==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="5, 15000, null, GxjyN54a5qsP5UDx7z98jw==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="6, 16000, null, myfeu/O6o4D9RqILA5c2xA==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="7, 17000, null, bnHlhR5STgfqDncGsILMMQ==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="8, 18000, null, Rlu0LF0Cud3Fdu+ZL7Uq7A==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="9, 19000, null, mOF/2EcSlRCZ0VQeZHlAhQ==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="10, 10001, null, yK+tn8E43EyCEgbqNOrJ4w==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="11, 11001, null, CIbxTwI742pGwxb18lQLkQ==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="12, 12001, null, VCHpNlwod9AiuS1V+7DSLw==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="13, 13001, null, 8uxRFhW4c2rtSOoesudk/A==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="14, 14001, null, 6dL4zoSI6hLaOqPg3VCiWQ==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="15, 15001, null, sqE82LdK1u2e43ZtMl/JNw==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="16, 16001, null, j9uwIi056TLTk+X70X/Pmw==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="17, 17001, null, 4EHWjOuIzrK7eGNbCqjfWg==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="18, 18001, null, uqt780pm9cFOZA030qN6QQ==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="19, 19001, null, fxMzWyyejZC7ZbJmMmGQzw==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="20, 10002, null, CsW4MD6vPLjo8+hGL0Bo4w==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="21, 11002, null, PVA6mbMm1kkSMHSjsArNMg==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="22, 12002, null, k2NWLEtJ6ZZFpnxh5Va5DA==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="23, 13002, null, 8EPPc+b2XMq9YSvOcEEing==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="24, 14002, null, zAaiW1TwDTujcIEdhVLXlg==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="25, 15002, null, y3M+uxIBPPqxewV/sQCzlw==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="26, 16002, null, TDUjigcYh2VVd/RYWRDaWg==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="27, 17002, null, yhTlcXGbfBeEM/7PK3f5pQ==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="28, 18002, null, auRfbGy1FVUPOxL/RFxBQA==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="29, 19002, null, aFMSknQG8p6wTGIhKNqJWg==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="30, 10003, null, ZcI0/2rZRwtl8CkoWnyNYg==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="31, 11003, null, Yz0R+SlE3AlO7jiOXOORog==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="32, 12003, null, I05miGKGMDNM5c7b+ibkng==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="33, 13003, null, GZmRSNc3jADLc9ca7MHHUQ==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="34, 14003, null, OCQD6nAXGxKym6ERLT8Ocg==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="35, 15003, null, 43zyfbMMwczKlyyhhyo4DA==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="36, 16003, null, 5UttfMTwhqlMif3YKOOh7Q==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="37, 17003, null, Iwh3hT6Kff/xYsyXNGtf8A==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="38, 18003, null, QFyiP7og+19ijdQBLO91TA==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="39, 19003, null, g+dSiuA7EsW3tDs+20j4yQ==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="40, 10004, null, vu7rg5Fx+p4sf7PY3F/XkA==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="41, 11004, null, R2jShanHkB8vL+3PWVtGCw==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="42, 12004, null, lVWyZQPlVdUhiPRjdVTQXg==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="43, 13004, null, 77bOsjoqDkWSiv7+Ij6n2Q==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="44, 14004, null, wVwIeANTfyuYr271gpk0sQ==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="45, 15004, null, foDB+Gm5QYUYokwTfxTsCw==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="46, 16004, null, F2m3crkR88VuM/HEbO7j+A==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="47, 17004, null, t7PvURIBPbs5zGoLqrBtFQ==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="48, 18004, null, +pK5nh/SWW33b6pNK3YvCQ==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="49, 19004, null, uB2f4cc9dGRLuuWXYFsZQg==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="50, 10005, null, SdNz2ZEWqomcNqmrjV5CLg==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="51, 11005, null, 7j2sicl9fY79dgvDjoVQ6A==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="52, 12005, null, OQQ0iVzwLd3wAyiEagRb1w==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="53, 13005, null, kGUn2kRm9f1pd5lRNTLV4w==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="54, 14005, null, PKmA/7slVN/2HNhKLj0XoQ==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="55, 15005, null, aG1YPC3uDNgH1gzlUrn21g==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="56, 16005, null, qQmnX5II/jxrQWKBpDpCrg==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="57, 17005, null, icdC0wx8+ftXLQYScnrdPA==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="58, 18005, null, 9B8R0rlykQDYUKJN2iF5TQ==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="59, 19005, null, QBp/kRwtb9FMDJS9p/QJRw==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="60, 10006, null, rJO2CWjwyQRPN1Z8ubPT+g==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="61, 11006, null, g0EzKaaNKrAN/SY0ZHgiPA==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="62, 12006, null, g3P579hpR4nHHN740FwEPw==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="63, 13006, null, /EST/RbrI3KpinjQljr5lQ==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="64, 14006, null, 8LJsk/W05nOpqZ2LTNaR9g==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="65, 15006, null, 081QjmH+mVkoYLdFkrQUdw==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="66, 16006, null, HFrbbKF6I2PWR2XFUl5aoQ==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="67, 17006, null, ckb4oY9Bgo3T3HadoIJBHQ==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="68, 18006, null, r6JhpT0Uu3iv2TrijQ+4dw==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="69, 19006, null, 0W0/tHYJxu/+suDfkhwBUA==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="70, 10007, null, qewDwKyvX2y1mrPOAjvnJw==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="71, 11007, null, ZaeVy/q9wyUCBzjEGqMAOw==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="72, 12007, null, gHRriIh3YL7E+r/vJhF1BA==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="73, 13007, null, oz+WFVBXdigh4pYhLQIqMQ==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="74, 14007, null, NAaO2Q6gWHXMjSY4MhtOBw==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="75, 15007, null, zngftEpibgSVznPpdW+Iww==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="76, 16007, null, pcIWo58GiXizmF9XoUFi5Q==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="77, 17007, null, OrZ0BTU9guaRAsvlllMP2A==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="78, 18007, null, ICGcSjYHEC/UUHBiDEZ3Ig==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="79, 19007, null, JhZvTKXmZbgSV8f0Il+hfA==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="80, 10008, null, t50lbUWg9IG0DUK3wvsuVQ==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="81, 11008, null, GFbH0x9bKgNjca82L6LQ8g==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="82, 12008, null, ZgTchBeCBGjrRUhFa+N8fg==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="83, 13008, null, 4AO+TW07gsDFrhfhKH56Og==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="84, 14008, null, lQ93gD5gVKromV64BHAomw==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="85, 15008, null, 3n887cFYFd7u7hWpguDAdQ==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="86, 16008, null, uHlcR+ZUiDqhdJkqKAjxnQ==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="87, 17008, null, 3qhS1Leu2nDv/QZ2Agw4iQ==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="88, 18008, null, G/HK36BIpcVXvfkF3gjjcA==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="89, 19008, null, TF60AIoPWjR9SFb4y26a0w==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="90, 10009, null, BtkhhvF5z6PGgkS7+3X7lw==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="91, 11009, null, 72yl4Zn7/SUBTForYmkdRg==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="92, 12009, null, qQkkak2if+eUUuomqvcjpA==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="93, 13009, null, Voj+XVu4Qmr5CyUWOouK+w==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="94, 14009, null, gGEW0Da+8FKpiRnBnfSUmA==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="95, 15009, null, 8psHAH0NJ5fdK5ZGmdP/wQ==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="96, 16009, null, 654WkfIPBEv2nfyhmgHP8A==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="97, 17009, null, 4cs88JOZMhtFn6C04H+rxA==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="98, 18009, null, bjkyDftrAIaEJSlibxiVkg==, init_read" />
+ <row data-node="encrypt_read_ds.t_user" values="99, 19009, null, Ou8qESKecbqmABoIo+5Kpg==, init_read" />
+ <row data-node="encrypt_read_ds.t_user_item" values="100000, 0, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="100001, 10, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="100002, 20, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="100003, 30, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="100004, 40, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="100005, 50, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="100006, 60, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="100007, 70, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="100008, 80, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="100009, 90, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="110000, 1, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="110001, 11, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="110002, 21, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="110003, 31, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="110004, 41, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="110005, 51, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="110006, 61, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="110007, 71, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="110008, 81, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="110009, 91, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="120000, 2, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="120001, 12, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="120002, 22, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="120003, 32, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="120004, 42, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="120005, 52, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="120006, 62, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="120007, 72, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="120008, 82, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="120009, 92, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="130000, 3, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="130001, 13, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="130002, 23, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="130003, 33, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="130004, 43, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="130005, 53, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="130006, 63, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="130007, 73, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="130008, 83, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="130009, 93, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="140000, 4, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="140001, 14, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="140002, 24, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="140003, 34, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="140004, 44, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="140005, 54, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="140006, 64, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="140007, 74, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="140008, 84, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="140009, 94, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="150000, 5, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="150001, 15, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="150002, 25, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="150003, 35, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="150004, 45, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="150005, 55, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="150006, 65, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="150007, 75, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="150008, 85, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="150009, 95, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="160000, 6, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="160001, 16, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="160002, 26, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="160003, 36, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="160004, 46, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="160005, 56, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="160006, 66, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="160007, 76, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="160008, 86, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="160009, 96, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="170000, 7, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="170001, 17, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="170002, 27, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="170003, 37, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="170004, 47, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="170005, 57, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="170006, 67, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="170007, 77, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="170008, 87, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="170009, 97, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="180000, 8, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="180001, 18, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="180002, 28, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="180003, 38, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="180004, 48, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="180005, 58, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="180006, 68, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="180007, 78, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="180008, 88, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="180009, 98, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="190000, 9, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="190001, 19, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="190002, 29, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="190003, 39, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="190004, 49, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="190005, 59, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="190006, 69, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="190007, 79, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="190008, 89, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_user_item" values="190009, 99, init_read, 2017-08-08" />
+ <row data-node="encrypt_read_ds.t_order_federate" values="1000, 10, init_read" />
+ <row data-node="encrypt_read_ds.t_order_federate" values="1001, 11, init_read" />
+ <row data-node="encrypt_read_ds.t_order_item_federate" values="100000, 1000, 10, init_read" />
+ <row data-node="encrypt_read_ds.t_order_item_federate" values="100001, 1000, 10, init_read" />
+ <row data-node="encrypt_read_ds.t_order_item_federate" values="100100, 1001, 10, init_read" />
+ <row data-node="encrypt_read_ds.t_order_item_federate" values="100101, 1001, 10, init_read" />
+ <row data-node="encrypt_read_ds.t_order_item_federate_sharding" values="1000, 10000, 10, init_read, t_order_item_federate_sharding" />
+ <row data-node="encrypt_read_ds.t_order_item_federate_sharding" values="1010, 10001, 10, init_read, t_order_item_federate_sharding" />
+ <row data-node="encrypt_read_ds.t_order_item_federate_sharding" values="1001, 10001, 11, init_read, t_order_item_federate_sharding" />
+ <row data-node="encrypt_read_ds.t_order_item_federate_sharding" values="1011, 10001, 10, init_read, t_order_item_federate_sharding" />
+ <row data-node="encrypt_read_ds.t_order_federate_sharding" values="1010, 10, init_read" />
+ <row data-node="encrypt_read_ds.t_order_federate_sharding" values="1100, 10, init_read" />
+ <row data-node="encrypt_read_ds.t_order_federate_sharding" values="1011, 11, init_read" />
+ <row data-node="encrypt_read_ds.t_order_federate_sharding" values="1101, 11, init_read" />
+ <row data-node="encrypt_read_ds.t_user_encrypt_federate_sharding" values="0, plain passwordA, uqObdVp9XTGZ4Mnw0LolHg==, Rachel" />
+ <row data-node="encrypt_read_ds.t_user_encrypt_federate_sharding" values="1, plain passwordB, uqObdVp9XTGZ4Mnw0LolHg==, Monica" />
+ <row data-node="encrypt_read_ds.t_user_encrypt_federate_sharding" values="2, plain passwordC, uqObdVp9XTGZ4Mnw0LolHg==, Phoebe" />
+ <row data-node="encrypt_read_ds.t_user_encrypt_federate_sharding" values="3, plain passwordD, uqObdVp9XTGZ4Mnw0LolHg==, Ross" />
+ <row data-node="encrypt_read_ds.t_user_encrypt_federate_sharding" values="4, plain passwordE, uqObdVp9XTGZ4Mnw0LolHg==, Chandler" />
+ <row data-node="encrypt_read_ds.t_user_encrypt_federate_sharding" values="5, plain passwordF, uqObdVp9XTGZ4Mnw0LolHg==, Joey" />
+ <row data-node="encrypt_read_ds.t_user_info" values="0, description0" />
+ <row data-node="encrypt_read_ds.t_user_info" values="1, description1" />
+ <row data-node="encrypt_read_ds.t_user_info" values="2, description2" />
+ <row data-node="encrypt_read_ds.t_user_info" values="3, description3" />
+ <row data-node="encrypt_read_ds.t_user_encrypt_federate" values="0, plain password1, uqObdVp9XTGZ4Mnw0LolHg==, Rachel" />
+ <row data-node="encrypt_read_ds.t_user_encrypt_federate" values="1, plain password2, uqObdVp9XTGZ4Mnw0LolHg==, Monica" />
+ <row data-node="encrypt_read_ds.t_user_encrypt_federate" values="2, plain password3, uqObdVp9XTGZ4Mnw0LolHg==, Phoebe" />
+ <row data-node="encrypt_read_ds.t_user_encrypt_federate" values="3, plain password4, uqObdVp9XTGZ4Mnw0LolHg==, Ross" />
+ <row data-node="encrypt_read_ds.t_user_encrypt_federate" values="4, plain password5, uqObdVp9XTGZ4Mnw0LolHg==, Chandler" />
+ <row data-node="encrypt_read_ds.t_user_encrypt_federate" values="5, plain password6, uqObdVp9XTGZ4Mnw0LolHg==, Joey" />
+</dataset>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/actual/init-sql/h2/01-actual-init.sql b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/actual/init-sql/h2/01-actual-init.sql
new file mode 100644
index 00000000000..46f0730a12b
--- /dev/null
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/actual/init-sql/h2/01-actual-init.sql
@@ -0,0 +1,24 @@
+--
+-- 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.
+--
+
+DROP TABLE IF EXISTS t_user;
+DROP TABLE IF EXISTS t_user_item;
+
+CREATE TABLE t_user (user_id INT NOT NULL, address_id INT NOT NULL, pwd_plain VARCHAR(45) NULL, pwd_cipher VARCHAR(45) NULL, status VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE t_user_item (item_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, creation_date DATE, PRIMARY KEY (item_id));
+
+CREATE INDEX user_index_t_user ON t_user (user_id);
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/actual/init-sql/h2/actual-encrypt_read_ds-init.sql b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/actual/init-sql/h2/actual-encrypt_read_ds-init.sql
new file mode 100644
index 00000000000..df099271776
--- /dev/null
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/actual/init-sql/h2/actual-encrypt_read_ds-init.sql
@@ -0,0 +1,34 @@
+--
+-- 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.
+--
+
+DROP TABLE IF EXISTS t_order_item_federate;
+DROP TABLE IF EXISTS t_order_item_federate_sharding;
+DROP TABLE IF EXISTS t_order_federate_sharding;
+DROP TABLE IF EXISTS t_user_encrypt_federate_sharding;
+DROP TABLE IF EXISTS t_user_encrypt_federate;
+DROP TABLE IF EXISTS t_user_info;
+DROP TABLE IF EXISTS t_order_federate;
+DROP TABLE IF EXISTS t_single_table;
+
+CREATE TABLE t_order_federate (order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id));
+CREATE TABLE t_single_table (single_id INT NOT NULL, id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (single_id));
+CREATE TABLE t_order_item_federate (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (item_id));
+CREATE TABLE t_order_item_federate_sharding (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, remarks VARCHAR(45) NULL, PRIMARY KEY (item_id));
+CREATE TABLE t_order_federate_sharding (order_id_sharding INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id_sharding));
+CREATE TABLE t_user_encrypt_federate_sharding (user_id INT NOT NULL, plain_pwd VARCHAR(45) NULL, cipher_pwd VARCHAR(45) NULL, username VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE t_user_encrypt_federate (user_id INT NOT NULL, plain_pwd VARCHAR(45) NULL, cipher_pwd VARCHAR(45) NULL, username VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE t_user_info (user_id INT NOT NULL, information VARCHAR(45) NULL, PRIMARY KEY (user_id));
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/actual/init-sql/h2/actual-encrypt_write_ds-init.sql b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/actual/init-sql/h2/actual-encrypt_write_ds-init.sql
new file mode 100644
index 00000000000..df099271776
--- /dev/null
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/actual/init-sql/h2/actual-encrypt_write_ds-init.sql
@@ -0,0 +1,34 @@
+--
+-- 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.
+--
+
+DROP TABLE IF EXISTS t_order_item_federate;
+DROP TABLE IF EXISTS t_order_item_federate_sharding;
+DROP TABLE IF EXISTS t_order_federate_sharding;
+DROP TABLE IF EXISTS t_user_encrypt_federate_sharding;
+DROP TABLE IF EXISTS t_user_encrypt_federate;
+DROP TABLE IF EXISTS t_user_info;
+DROP TABLE IF EXISTS t_order_federate;
+DROP TABLE IF EXISTS t_single_table;
+
+CREATE TABLE t_order_federate (order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id));
+CREATE TABLE t_single_table (single_id INT NOT NULL, id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (single_id));
+CREATE TABLE t_order_item_federate (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (item_id));
+CREATE TABLE t_order_item_federate_sharding (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, remarks VARCHAR(45) NULL, PRIMARY KEY (item_id));
+CREATE TABLE t_order_federate_sharding (order_id_sharding INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id_sharding));
+CREATE TABLE t_user_encrypt_federate_sharding (user_id INT NOT NULL, plain_pwd VARCHAR(45) NULL, cipher_pwd VARCHAR(45) NULL, username VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE t_user_encrypt_federate (user_id INT NOT NULL, plain_pwd VARCHAR(45) NULL, cipher_pwd VARCHAR(45) NULL, username VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE t_user_info (user_id INT NOT NULL, information VARCHAR(45) NULL, PRIMARY KEY (user_id));
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/actual/init-sql/mysql/01-actual-init.sql b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/actual/init-sql/mysql/01-actual-init.sql
new file mode 100644
index 00000000000..d5982370ec3
--- /dev/null
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/actual/init-sql/mysql/01-actual-init.sql
@@ -0,0 +1,49 @@
+--
+-- 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.
+--
+
+SET character_set_database='utf8';
+SET character_set_server='utf8';
+
+DROP DATABASE IF EXISTS encrypt_write_ds;
+DROP DATABASE IF EXISTS encrypt_read_ds;
+
+CREATE DATABASE encrypt_write_ds;
+CREATE DATABASE encrypt_read_ds;
+
+CREATE TABLE encrypt_write_ds.t_user (user_id INT NOT NULL, address_id INT NOT NULL, pwd_plain VARCHAR(45) NULL, pwd_cipher VARCHAR(45) NULL, status VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE encrypt_write_ds.t_user_item (item_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, creation_date DATE, PRIMARY KEY (item_id));
+CREATE TABLE encrypt_write_ds.t_single_table (single_id INT NOT NULL, id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (single_id));
+CREATE TABLE encrypt_write_ds.t_order_federate (order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id));
+CREATE TABLE encrypt_write_ds.t_order_item_federate (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (item_id));
+CREATE TABLE encrypt_write_ds.t_order_item_federate_sharding (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, remarks VARCHAR(45) NULL, PRIMARY KEY (item_id));
+CREATE TABLE encrypt_write_ds.t_order_federate_sharding (order_id_sharding INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id_sharding));
+CREATE TABLE encrypt_write_ds.t_user_encrypt_federate_sharding (user_id INT NOT NULL, plain_pwd VARCHAR(45) NULL, cipher_pwd VARCHAR(45) NULL, username VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE encrypt_write_ds.t_user_encrypt_federate (user_id INT NOT NULL, plain_pwd VARCHAR(45) NULL, cipher_pwd VARCHAR(45) NULL, username VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE encrypt_write_ds.t_user_info (user_id INT NOT NULL, information VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE INDEX user_index_t_user ON encrypt_write_ds.t_user (user_id);
+
+CREATE TABLE encrypt_read_ds.t_user (user_id INT NOT NULL, address_id INT NOT NULL, pwd_plain VARCHAR(45) NULL, pwd_cipher VARCHAR(45) NULL, status VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE encrypt_read_ds.t_user_item (item_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, creation_date DATE, PRIMARY KEY (item_id));
+CREATE TABLE encrypt_read_ds.t_single_table (single_id INT NOT NULL, id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (single_id));
+CREATE TABLE encrypt_read_ds.t_order_federate (order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id));
+CREATE TABLE encrypt_read_ds.t_order_item_federate (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (item_id));
+CREATE TABLE encrypt_read_ds.t_order_item_federate_sharding (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, remarks VARCHAR(45) NULL, PRIMARY KEY (item_id));
+CREATE TABLE encrypt_read_ds.t_order_federate_sharding (order_id_sharding INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id_sharding));
+CREATE TABLE encrypt_read_ds.t_user_encrypt_federate_sharding (user_id INT NOT NULL, plain_pwd VARCHAR(45) NULL, cipher_pwd VARCHAR(45) NULL, username VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE encrypt_read_ds.t_user_encrypt_federate (user_id INT NOT NULL, plain_pwd VARCHAR(45) NULL, cipher_pwd VARCHAR(45) NULL, username VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE encrypt_read_ds.t_user_info (user_id INT NOT NULL, information VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE INDEX user_index_t_user ON encrypt_read_ds.t_user (user_id);
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/actual/init-sql/oracle/01-actual-init.sql b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/actual/init-sql/oracle/01-actual-init.sql
new file mode 100644
index 00000000000..c8606bda253
--- /dev/null
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/actual/init-sql/oracle/01-actual-init.sql
@@ -0,0 +1,46 @@
+--
+-- 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.
+--
+
+DROP SCHEMA encrypt_write_ds;
+DROP SCHEMA encrypt_read_ds;
+
+CREATE SCHEMA encrypt_write_ds;
+CREATE SCHEMA encrypt_read_ds;
+
+CREATE TABLE encrypt_write_ds.t_user (user_id INT NOT NULL, address_id INT NOT NULL, pwd_plain VARCHAR(45) NULL, pwd_cipher VARCHAR(45) NULL, status VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE encrypt_write_ds.t_user_item (item_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, creation_date DATE, PRIMARY KEY (item_id));
+CREATE TABLE encrypt_write_ds.t_single_table (single_id INT NOT NULL, id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (single_id));
+CREATE TABLE encrypt_write_ds.t_order_federate (order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id));
+CREATE TABLE encrypt_write_ds.t_order_item_federate (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (item_id));
+CREATE TABLE encrypt_write_ds.t_order_item_federate_sharding (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, remarks VARCHAR(45) NULL, PRIMARY KEY (item_id));
+CREATE TABLE encrypt_write_ds.t_order_federate_sharding (order_id_sharding INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id_sharding));
+CREATE TABLE encrypt_write_ds.t_user_encrypt_federate_sharding (user_id INT NOT NULL, plain_pwd VARCHAR(45) NULL, cipher_pwd VARCHAR(45) NULL, username VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE encrypt_write_ds.t_user_encrypt_federate (user_id INT NOT NULL, plain_pwd VARCHAR(45) NULL, cipher_pwd VARCHAR(45) NULL, username VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE encrypt_write_ds.t_user_info (user_id INT NOT NULL, information VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE INDEX user_index_t_user ON encrypt_write_ds.t_user (user_id);
+
+CREATE TABLE encrypt_read_ds.t_user (user_id INT NOT NULL, address_id INT NOT NULL, pwd_plain VARCHAR(45) NULL, pwd_cipher VARCHAR(45) NULL, status VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE encrypt_read_ds.t_user_item (item_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, creation_date DATE, PRIMARY KEY (item_id));
+CREATE TABLE encrypt_read_ds.t_single_table (single_id INT NOT NULL, id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (single_id));
+CREATE TABLE encrypt_read_ds.t_order_federate (order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id));
+CREATE TABLE encrypt_read_ds.t_order_item_federate (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (item_id));
+CREATE TABLE encrypt_read_ds.t_order_item_federate_sharding (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, remarks VARCHAR(45) NULL, PRIMARY KEY (item_id));
+CREATE TABLE encrypt_read_ds.t_order_federate_sharding (order_id_sharding INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id_sharding));
+CREATE TABLE encrypt_read_ds.t_user_encrypt_federate_sharding (user_id INT NOT NULL, plain_pwd VARCHAR(45) NULL, cipher_pwd VARCHAR(45) NULL, username VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE encrypt_read_ds.t_user_encrypt_federate (user_id INT NOT NULL, plain_pwd VARCHAR(45) NULL, cipher_pwd VARCHAR(45) NULL, username VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE encrypt_read_ds.t_user_info (user_id INT NOT NULL, information VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE INDEX user_index_t_user ON encrypt_read_ds.t_user (user_id);
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/actual/init-sql/postgresql/01-actual-init.sql b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/actual/init-sql/postgresql/01-actual-init.sql
new file mode 100644
index 00000000000..5243f7ca48c
--- /dev/null
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/actual/init-sql/postgresql/01-actual-init.sql
@@ -0,0 +1,72 @@
+--
+-- 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.
+--
+
+CREATE DATABASE encrypt_write_ds;
+CREATE DATABASE encrypt_read_ds;
+
+GRANT ALL PRIVILEGES ON DATABASE encrypt_write_ds TO test_user;
+GRANT ALL PRIVILEGES ON DATABASE encrypt_read_ds TO test_user;
+
+\c encrypt_write_ds
+
+DROP TABLE IF EXISTS t_user;
+DROP TABLE IF EXISTS t_user_item;
+DROP TABLE IF EXISTS t_single_table;
+DROP TABLE IF EXISTS t_order_federate;
+DROP TABLE IF EXISTS t_order_item_federate;
+DROP TABLE IF EXISTS t_order_item_federate_sharding;
+DROP TABLE IF EXISTS t_order_federate_sharding;
+DROP TABLE IF EXISTS t_user_encrypt_federate_sharding;
+DROP TABLE IF EXISTS t_user_encrypt_federate;
+DROP TABLE IF EXISTS t_user_info;
+
+CREATE TABLE t_user (user_id INT NOT NULL, address_id INT NOT NULL, pwd_plain VARCHAR(45) NULL, pwd_cipher VARCHAR(45) NULL, status VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE t_user_item (item_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, creation_date DATE, PRIMARY KEY (item_id));
+CREATE TABLE t_single_table (single_id INT NOT NULL, id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (single_id));
+CREATE TABLE t_order_federate (order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id));
+CREATE TABLE t_order_item_federate (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (item_id));
+CREATE TABLE t_order_item_federate_sharding (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, remarks VARCHAR(45) NULL, PRIMARY KEY (item_id));
+CREATE TABLE t_order_federate_sharding (order_id_sharding INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id_sharding));
+CREATE TABLE t_user_encrypt_federate_sharding (user_id INT NOT NULL, plain_pwd VARCHAR(45) NULL, cipher_pwd VARCHAR(45) NULL, username VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE t_user_encrypt_federate (user_id INT NOT NULL, plain_pwd VARCHAR(45) NULL, cipher_pwd VARCHAR(45) NULL, username VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE t_user_info (user_id INT NOT NULL, information VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE INDEX user_index_t_user ON t_user (user_id);
+
+\c encrypt_read_ds
+
+DROP TABLE IF EXISTS t_user;
+DROP TABLE IF EXISTS t_user_item;
+DROP TABLE IF EXISTS t_single_table;
+DROP TABLE IF EXISTS t_order_federate;
+DROP TABLE IF EXISTS t_order_item_federate;
+DROP TABLE IF EXISTS t_order_item_federate_sharding;
+DROP TABLE IF EXISTS t_order_federate_sharding;
+DROP TABLE IF EXISTS t_user_encrypt_federate_sharding;
+DROP TABLE IF EXISTS t_user_encrypt_federate;
+DROP TABLE IF EXISTS t_user_info;
+
+CREATE TABLE t_user (user_id INT NOT NULL, address_id INT NOT NULL, pwd_plain VARCHAR(45) NULL, pwd_cipher VARCHAR(45) NULL, status VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE t_user_item (item_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, creation_date DATE, PRIMARY KEY (item_id));
+CREATE TABLE t_single_table (single_id INT NOT NULL, id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (single_id));
+CREATE TABLE t_order_federate (order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id));
+CREATE TABLE t_order_item_federate (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (item_id));
+CREATE TABLE t_order_item_federate_sharding (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, remarks VARCHAR(45) NULL, PRIMARY KEY (item_id));
+CREATE TABLE t_order_federate_sharding (order_id_sharding INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id_sharding));
+CREATE TABLE t_user_encrypt_federate_sharding (user_id INT NOT NULL, plain_pwd VARCHAR(45) NULL, cipher_pwd VARCHAR(45) NULL, username VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE t_user_encrypt_federate (user_id INT NOT NULL, plain_pwd VARCHAR(45) NULL, cipher_pwd VARCHAR(45) NULL, username VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE t_user_info (user_id INT NOT NULL, information VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE INDEX user_index_t_user ON t_user (user_id);
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/actual/init-sql/sqlserver/01-actual-init.sql b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/actual/init-sql/sqlserver/01-actual-init.sql
new file mode 100644
index 00000000000..7c82462f442
--- /dev/null
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/actual/init-sql/sqlserver/01-actual-init.sql
@@ -0,0 +1,46 @@
+--
+-- 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.
+--
+
+DROP DATABASE IF EXISTS encrypt_write_ds;
+DROP DATABASE IF EXISTS encrypt_read_ds;
+
+CREATE DATABASE encrypt_write_ds;
+CREATE DATABASE encrypt_read_ds;
+
+CREATE TABLE encrypt_write_ds.t_user (user_id INT NOT NULL, address_id INT NOT NULL, pwd_plain VARCHAR(45) NULL, pwd_cipher VARCHAR(45) NULL, status VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE encrypt_write_ds.t_user_item (item_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, creation_date DATE, PRIMARY KEY (item_id));
+CREATE TABLE encrypt_write_ds.t_single_table (single_id INT NOT NULL, id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (single_id));
+CREATE TABLE encrypt_write_ds.t_order_federate (order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id));
+CREATE TABLE encrypt_write_ds.t_order_item_federate (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (item_id));
+CREATE TABLE encrypt_write_ds.t_order_item_federate_sharding (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, remarks VARCHAR(45) NULL, PRIMARY KEY (item_id));
+CREATE TABLE encrypt_write_ds.t_order_federate_sharding (order_id_sharding INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id_sharding));
+CREATE TABLE encrypt_write_ds.t_user_encrypt_federate_sharding (user_id INT NOT NULL, plain_pwd VARCHAR(45) NULL, cipher_pwd VARCHAR(45) NULL, username VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE encrypt_write_ds.t_user_encrypt_federate (user_id INT NOT NULL, plain_pwd VARCHAR(45) NULL, cipher_pwd VARCHAR(45) NULL, username VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE encrypt_write_ds.t_user_info (user_id INT NOT NULL, information VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE INDEX user_index_t_user ON encrypt_write_ds.t_user (user_id);
+
+CREATE TABLE encrypt_read_ds.t_user (user_id INT NOT NULL, address_id INT NOT NULL, pwd_plain VARCHAR(45) NULL, pwd_cipher VARCHAR(45) NULL, status VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE encrypt_read_ds.t_user_item (item_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, creation_date DATE, PRIMARY KEY (item_id));
+CREATE TABLE encrypt_read_ds.t_single_table (single_id INT NOT NULL, id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (single_id));
+CREATE TABLE encrypt_read_ds.t_order_federate (order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id));
+CREATE TABLE encrypt_read_ds.t_order_item_federate (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (item_id));
+CREATE TABLE encrypt_read_ds.t_order_item_federate_sharding (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, remarks VARCHAR(45) NULL, PRIMARY KEY (item_id));
+CREATE TABLE encrypt_read_ds.t_order_federate_sharding (order_id_sharding INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id_sharding));
+CREATE TABLE encrypt_read_ds.t_user_encrypt_federate_sharding (user_id INT NOT NULL, plain_pwd VARCHAR(45) NULL, cipher_pwd VARCHAR(45) NULL, username VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE encrypt_read_ds.t_user_encrypt_federate (user_id INT NOT NULL, plain_pwd VARCHAR(45) NULL, cipher_pwd VARCHAR(45) NULL, username VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE encrypt_read_ds.t_user_info (user_id INT NOT NULL, information VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE INDEX user_index_t_user ON encrypt_read_ds.t_user (user_id);
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/expected/databases.xml
similarity index 68%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/expected/databases.xml
index a159918466a..d93f8c451bf 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dal-integration-test-cases.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/expected/databases.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Licensed to the Apache Software Foundation (ASF) under one or more
~ contributor license agreements. See the NOTICE file distributed with
@@ -14,10 +15,8 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<integration-test-cases>
- <test-case sql="SHOW DATABASES" db-types="MySQL" scenario-types="dbtbl_with_readwrite_splitting,readwrite_splitting,dbtbl_with_readwrite_splitting_and_encrypt,sharding_and_encrypt">
- <assertion expected-data-file="show_databases.xml" />
- </test-case>
- <test-case sql="RESET ALL" db-types="PostgreSQL,openGauss" />
-</integration-test-cases>
+<databases>
+ <database>write_dataset</database>
+ <database>read_dataset</database>
+</databases>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/expected/dataset.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/expected/dataset.xml
new file mode 100644
index 00000000000..b3f6527ddf7
--- /dev/null
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/expected/dataset.xml
@@ -0,0 +1,537 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+ <metadata data-nodes="write_dataset.t_user,read_dataset.t_user">
+ <column name="user_id" type="numeric" />
+ <column name="address_id" type="numeric" />
+ <column name="pwd" type="varchar" />
+ <column name="status" type="varchar" />
+ </metadata>
+ <metadata data-nodes="write_dataset.t_user_item,read_dataset.t_user_item">
+ <column name="item_id" type="numeric" />
+ <column name="user_id" type="numeric" />
+ <column name="status" type="varchar" />
+ <column name="creation_date" type="datetime" />
+ </metadata>
+ <metadata data-nodes="read_dataset.t_single_table">
+ <column name="single_id" type="numeric" />
+ <column name="id" type="numeric" />
+ <column name="status" type="varchar" />
+ </metadata>
+ <metadata data-nodes="write_dataset.t_order_federate,read_dataset.t_order_federate">
+ <column name="order_id" type="numeric" />
+ <column name="user_id" type="numeric" />
+ <column name="status" type="varchar" />
+ </metadata>
+ <metadata data-nodes="write_dataset.t_order_federate_sharding,read_dataset.t_order_federate_sharding">
+ <column name="order_id_sharding" type="numeric" />
+ <column name="user_id" type="numeric" />
+ <column name="status" type="varchar" />
+ </metadata>
+ <metadata data-nodes="write_dataset.t_order_item_federate,read_dataset.t_order_item_federate">
+ <column name="item_id" type="numeric" />
+ <column name="order_id" type="numeric" />
+ <column name="user_id" type="numeric" />
+ <column name="status" type="varchar" />
+ </metadata>
+ <metadata data-nodes="write_dataset.t_order_item_federate_sharding,read_dataset.t_order_item_federate_sharding">
+ <column name="item_id" type="numeric" />
+ <column name="order_id" type="numeric" />
+ <column name="user_id" type="numeric" />
+ <column name="status" type="varchar" />
+ <column name="remarks" type="varchar" />
+ </metadata>
+ <metadata data-nodes="write_dataset.t_user_encrypt_federate_sharding,read_dataset.t_user_encrypt_federate_sharding">
+ <column name="user_id" type="numeric" />
+ <column name="pwd" type="varchar" />
+ <column name="username" type="varchar" />
+ </metadata>
+ <metadata data-nodes="write_dataset.t_user_encrypt_federate,read_dataset.t_user_encrypt_federate">
+ <column name="user_id" type="numeric" />
+ <column name="pwd" type="varchar" />
+ <column name="username" type="varchar" />
+ </metadata>
+ <metadata data-nodes="write_dataset.t_user_info,read_dataset.t_user_info">
+ <column name="user_id" type="numeric" />
+ <column name="information" type="varchar" />
+ </metadata>
+ <row data-node="write_dataset.t_user" values="0, 10000, a00, init" />
+ <row data-node="write_dataset.t_user" values="1, 11000, b01, init" />
+ <row data-node="write_dataset.t_user" values="2, 12000, c02, init" />
+ <row data-node="write_dataset.t_user" values="3, 13000, d03, init" />
+ <row data-node="write_dataset.t_user" values="4, 14000, e04, init" />
+ <row data-node="write_dataset.t_user" values="5, 15000, f05, init" />
+ <row data-node="write_dataset.t_user" values="6, 16000, g06, init" />
+ <row data-node="write_dataset.t_user" values="7, 17000, h07, init" />
+ <row data-node="write_dataset.t_user" values="8, 18000, i08, init" />
+ <row data-node="write_dataset.t_user" values="9, 19000, j09, init" />
+ <row data-node="write_dataset.t_user" values="10, 10001, a10, init" />
+ <row data-node="write_dataset.t_user" values="11, 11001, b11, init" />
+ <row data-node="write_dataset.t_user" values="12, 12001, c12, init" />
+ <row data-node="write_dataset.t_user" values="13, 13001, d13, init" />
+ <row data-node="write_dataset.t_user" values="14, 14001, e14, init" />
+ <row data-node="write_dataset.t_user" values="15, 15001, f15, init" />
+ <row data-node="write_dataset.t_user" values="16, 16001, g16, init" />
+ <row data-node="write_dataset.t_user" values="17, 17001, h17, init" />
+ <row data-node="write_dataset.t_user" values="18, 18001, i18, init" />
+ <row data-node="write_dataset.t_user" values="19, 19001, j19, init" />
+ <row data-node="write_dataset.t_user" values="20, 10002, a20, init" />
+ <row data-node="write_dataset.t_user" values="21, 11002, b21, init" />
+ <row data-node="write_dataset.t_user" values="22, 12002, c22, init" />
+ <row data-node="write_dataset.t_user" values="23, 13002, d23, init" />
+ <row data-node="write_dataset.t_user" values="24, 14002, e24, init" />
+ <row data-node="write_dataset.t_user" values="25, 15002, f25, init" />
+ <row data-node="write_dataset.t_user" values="26, 16002, g26, init" />
+ <row data-node="write_dataset.t_user" values="27, 17002, h27, init" />
+ <row data-node="write_dataset.t_user" values="28, 18002, i28, init" />
+ <row data-node="write_dataset.t_user" values="29, 19002, j29, init" />
+ <row data-node="write_dataset.t_user" values="30, 10003, a30, init" />
+ <row data-node="write_dataset.t_user" values="31, 11003, b31, init" />
+ <row data-node="write_dataset.t_user" values="32, 12003, c32, init" />
+ <row data-node="write_dataset.t_user" values="33, 13003, d33, init" />
+ <row data-node="write_dataset.t_user" values="34, 14003, e34, init" />
+ <row data-node="write_dataset.t_user" values="35, 15003, f35, init" />
+ <row data-node="write_dataset.t_user" values="36, 16003, g36, init" />
+ <row data-node="write_dataset.t_user" values="37, 17003, h37, init" />
+ <row data-node="write_dataset.t_user" values="38, 18003, i38, init" />
+ <row data-node="write_dataset.t_user" values="39, 19003, j39, init" />
+ <row data-node="write_dataset.t_user" values="40, 10004, a40, init" />
+ <row data-node="write_dataset.t_user" values="41, 11004, b41, init" />
+ <row data-node="write_dataset.t_user" values="42, 12004, c42, init" />
+ <row data-node="write_dataset.t_user" values="43, 13004, d43, init" />
+ <row data-node="write_dataset.t_user" values="44, 14004, e44, init" />
+ <row data-node="write_dataset.t_user" values="45, 15004, f45, init" />
+ <row data-node="write_dataset.t_user" values="46, 16004, g46, init" />
+ <row data-node="write_dataset.t_user" values="47, 17004, h47, init" />
+ <row data-node="write_dataset.t_user" values="48, 18004, i48, init" />
+ <row data-node="write_dataset.t_user" values="49, 19004, j49, init" />
+ <row data-node="write_dataset.t_user" values="50, 10005, a50, init" />
+ <row data-node="write_dataset.t_user" values="51, 11005, b51, init" />
+ <row data-node="write_dataset.t_user" values="52, 12005, c52, init" />
+ <row data-node="write_dataset.t_user" values="53, 13005, d53, init" />
+ <row data-node="write_dataset.t_user" values="54, 14005, e54, init" />
+ <row data-node="write_dataset.t_user" values="55, 15005, f55, init" />
+ <row data-node="write_dataset.t_user" values="56, 16005, g56, init" />
+ <row data-node="write_dataset.t_user" values="57, 17005, h57, init" />
+ <row data-node="write_dataset.t_user" values="58, 18005, i58, init" />
+ <row data-node="write_dataset.t_user" values="59, 19005, j59, init" />
+ <row data-node="write_dataset.t_user" values="60, 10006, a60, init" />
+ <row data-node="write_dataset.t_user" values="61, 11006, b61, init" />
+ <row data-node="write_dataset.t_user" values="62, 12006, c62, init" />
+ <row data-node="write_dataset.t_user" values="63, 13006, d63, init" />
+ <row data-node="write_dataset.t_user" values="64, 14006, e64, init" />
+ <row data-node="write_dataset.t_user" values="65, 15006, f65, init" />
+ <row data-node="write_dataset.t_user" values="66, 16006, g66, init" />
+ <row data-node="write_dataset.t_user" values="67, 17006, h67, init" />
+ <row data-node="write_dataset.t_user" values="68, 18006, i68, init" />
+ <row data-node="write_dataset.t_user" values="69, 19006, j69, init" />
+ <row data-node="write_dataset.t_user" values="70, 10007, a70, init" />
+ <row data-node="write_dataset.t_user" values="71, 11007, b71, init" />
+ <row data-node="write_dataset.t_user" values="72, 12007, c72, init" />
+ <row data-node="write_dataset.t_user" values="73, 13007, d73, init" />
+ <row data-node="write_dataset.t_user" values="74, 14007, e74, init" />
+ <row data-node="write_dataset.t_user" values="75, 15007, f75, init" />
+ <row data-node="write_dataset.t_user" values="76, 16007, g76, init" />
+ <row data-node="write_dataset.t_user" values="77, 17007, h77, init" />
+ <row data-node="write_dataset.t_user" values="78, 18007, i78, init" />
+ <row data-node="write_dataset.t_user" values="79, 19007, j79, init" />
+ <row data-node="write_dataset.t_user" values="80, 10008, a80, init" />
+ <row data-node="write_dataset.t_user" values="81, 11008, b81, init" />
+ <row data-node="write_dataset.t_user" values="82, 12008, c82, init" />
+ <row data-node="write_dataset.t_user" values="83, 13008, d83, init" />
+ <row data-node="write_dataset.t_user" values="84, 14008, e84, init" />
+ <row data-node="write_dataset.t_user" values="85, 15008, f85, init" />
+ <row data-node="write_dataset.t_user" values="86, 16008, g86, init" />
+ <row data-node="write_dataset.t_user" values="87, 17008, h87, init" />
+ <row data-node="write_dataset.t_user" values="88, 18008, i88, init" />
+ <row data-node="write_dataset.t_user" values="89, 19008, j89, init" />
+ <row data-node="write_dataset.t_user" values="90, 10009, a90, init" />
+ <row data-node="write_dataset.t_user" values="91, 11009, b91, init" />
+ <row data-node="write_dataset.t_user" values="92, 12009, c92, init" />
+ <row data-node="write_dataset.t_user" values="93, 13009, d93, init" />
+ <row data-node="write_dataset.t_user" values="94, 14009, e94, init" />
+ <row data-node="write_dataset.t_user" values="95, 15009, f95, init" />
+ <row data-node="write_dataset.t_user" values="96, 16009, g96, init" />
+ <row data-node="write_dataset.t_user" values="97, 17009, h97, init" />
+ <row data-node="write_dataset.t_user" values="98, 18009, i98, init" />
+ <row data-node="write_dataset.t_user" values="99, 19009, j99, init" />
+ <row data-node="write_dataset.t_user_item" values="100000, 0, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="100001, 10, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="100002, 20, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="100003, 30, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="100004, 40, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="100005, 50, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="100006, 60, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="100007, 70, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="100008, 80, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="100009, 90, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="110000, 1, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="110001, 11, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="110002, 21, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="110003, 31, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="110004, 41, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="110005, 51, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="110006, 61, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="110007, 71, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="110008, 81, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="110009, 91, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="120000, 2, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="120001, 12, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="120002, 22, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="120003, 32, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="120004, 42, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="120005, 52, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="120006, 62, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="120007, 72, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="120008, 82, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="120009, 92, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="130000, 3, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="130001, 13, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="130002, 23, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="130003, 33, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="130004, 43, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="130005, 53, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="130006, 63, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="130007, 73, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="130008, 83, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="130009, 93, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="140000, 4, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="140001, 14, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="140002, 24, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="140003, 34, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="140004, 44, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="140005, 54, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="140006, 64, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="140007, 74, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="140008, 84, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="140009, 94, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="150000, 5, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="150001, 15, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="150002, 25, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="150003, 35, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="150004, 45, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="150005, 55, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="150006, 65, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="150007, 75, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="150008, 85, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="150009, 95, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="160000, 6, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="160001, 16, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="160002, 26, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="160003, 36, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="160004, 46, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="160005, 56, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="160006, 66, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="160007, 76, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="160008, 86, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="160009, 96, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="170000, 7, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="170001, 17, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="170002, 27, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="170003, 37, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="170004, 47, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="170005, 57, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="170006, 67, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="170007, 77, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="170008, 87, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="170009, 97, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="180000, 8, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="180001, 18, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="180002, 28, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="180003, 38, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="180004, 48, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="180005, 58, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="180006, 68, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="180007, 78, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="180008, 88, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="180009, 98, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="190000, 9, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="190001, 19, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="190002, 29, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="190003, 39, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="190004, 49, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="190005, 59, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="190006, 69, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="190007, 79, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="190008, 89, init, 2017-08-08" />
+ <row data-node="write_dataset.t_user_item" values="190009, 99, init, 2017-08-08" />
+ <row data-node="write_dataset.t_order_federate" values="1000, 10, init" />
+ <row data-node="write_dataset.t_order_federate" values="1001, 11, init" />
+ <row data-node="write_dataset.t_order_item_federate" values="100000, 1000, 10, init" />
+ <row data-node="write_dataset.t_order_item_federate" values="100001, 1000, 10, init" />
+ <row data-node="write_dataset.t_order_item_federate" values="100100, 1001, 10, init" />
+ <row data-node="write_dataset.t_order_item_federate" values="100101, 1001, 10, init" />
+ <row data-node="write_dataset.t_order_item_federate_sharding" values="1000, 10000, 10, init, t_order_item_federate_sharding" />
+ <row data-node="write_dataset.t_order_item_federate_sharding" values="1010, 10001, 10, init, t_order_item_federate_sharding" />
+ <row data-node="write_dataset.t_order_item_federate_sharding" values="1001, 10001, 11, init, t_order_item_federate_sharding" />
+ <row data-node="write_dataset.t_order_item_federate_sharding" values="1011, 10001, 10, init, t_order_item_federate_sharding" />
+ <row data-node="write_dataset.t_order_federate_sharding" values="1010, 10, init" />
+ <row data-node="write_dataset.t_order_federate_sharding" values="1100, 10, init" />
+ <row data-node="write_dataset.t_order_federate_sharding" values="1011, 11, init" />
+ <row data-node="write_dataset.t_order_federate_sharding" values="1101, 11, init" />
+ <row data-node="write_dataset.t_user_encrypt_federate_sharding" values="0, decryptValue, Rachel" />
+ <row data-node="write_dataset.t_user_encrypt_federate_sharding" values="1, decryptValue, Monica" />
+ <row data-node="write_dataset.t_user_encrypt_federate_sharding" values="2, decryptValue, Phoebe" />
+ <row data-node="write_dataset.t_user_encrypt_federate_sharding" values="3, decryptValue, Ross" />
+ <row data-node="write_dataset.t_user_encrypt_federate_sharding" values="4, decryptValue, Chandler" />
+ <row data-node="write_dataset.t_user_encrypt_federate_sharding" values="5, decryptValue, Joey" />
+ <row data-node="write_dataset.t_user_info" values="0, description0" />
+ <row data-node="write_dataset.t_user_info" values="1, description1" />
+ <row data-node="write_dataset.t_user_info" values="2, description2" />
+ <row data-node="write_dataset.t_user_info" values="3, description3" />
+ <row data-node="write_dataset.t_user_encrypt_federate" values="0, decryptValue, Rachel" />
+ <row data-node="write_dataset.t_user_encrypt_federate" values="1, decryptValue, Monica" />
+ <row data-node="write_dataset.t_user_encrypt_federate" values="2, decryptValue, Phoebe" />
+ <row data-node="write_dataset.t_user_encrypt_federate" values="3, decryptValue, Ross" />
+ <row data-node="write_dataset.t_user_encrypt_federate" values="4, decryptValue, Chandler" />
+ <row data-node="write_dataset.t_user_encrypt_federate" values="5, decryptValue, Joey" />
+ <row data-node="read_dataset.t_single_table" values="1, 0, init_read" />
+ <row data-node="read_dataset.t_single_table" values="2, 11, init_read" />
+ <row data-node="read_dataset.t_single_table" values="3, 22, init_read" />
+ <row data-node="read_dataset.t_single_table" values="4, 33, init_read" />
+ <row data-node="read_dataset.t_user" values="0, 10000, a00, init_read" />
+ <row data-node="read_dataset.t_user" values="1, 11000, b01, init_read" />
+ <row data-node="read_dataset.t_user" values="2, 12000, c02, init_read" />
+ <row data-node="read_dataset.t_user" values="3, 13000, d03, init_read" />
+ <row data-node="read_dataset.t_user" values="4, 14000, e04, init_read" />
+ <row data-node="read_dataset.t_user" values="5, 15000, f05, init_read" />
+ <row data-node="read_dataset.t_user" values="6, 16000, g06, init_read" />
+ <row data-node="read_dataset.t_user" values="7, 17000, h07, init_read" />
+ <row data-node="read_dataset.t_user" values="8, 18000, i08, init_read" />
+ <row data-node="read_dataset.t_user" values="9, 19000, j09, init_read" />
+ <row data-node="read_dataset.t_user" values="10, 10001, a10, init_read" />
+ <row data-node="read_dataset.t_user" values="11, 11001, b11, init_read" />
+ <row data-node="read_dataset.t_user" values="12, 12001, c12, init_read" />
+ <row data-node="read_dataset.t_user" values="13, 13001, d13, init_read" />
+ <row data-node="read_dataset.t_user" values="14, 14001, e14, init_read" />
+ <row data-node="read_dataset.t_user" values="15, 15001, f15, init_read" />
+ <row data-node="read_dataset.t_user" values="16, 16001, g16, init_read" />
+ <row data-node="read_dataset.t_user" values="17, 17001, h17, init_read" />
+ <row data-node="read_dataset.t_user" values="18, 18001, i18, init_read" />
+ <row data-node="read_dataset.t_user" values="19, 19001, j19, init_read" />
+ <row data-node="read_dataset.t_user" values="20, 10002, a20, init_read" />
+ <row data-node="read_dataset.t_user" values="21, 11002, b21, init_read" />
+ <row data-node="read_dataset.t_user" values="22, 12002, c22, init_read" />
+ <row data-node="read_dataset.t_user" values="23, 13002, d23, init_read" />
+ <row data-node="read_dataset.t_user" values="24, 14002, e23, init_read" />
+ <row data-node="read_dataset.t_user" values="25, 15002, f24, init_read" />
+ <row data-node="read_dataset.t_user" values="26, 16002, g26, init_read" />
+ <row data-node="read_dataset.t_user" values="27, 17002, h27, init_read" />
+ <row data-node="read_dataset.t_user" values="28, 18002, i28, init_read" />
+ <row data-node="read_dataset.t_user" values="29, 19002, j29, init_read" />
+ <row data-node="read_dataset.t_user" values="30, 10003, a30, init_read" />
+ <row data-node="read_dataset.t_user" values="31, 11003, b31, init_read" />
+ <row data-node="read_dataset.t_user" values="32, 12003, c32, init_read" />
+ <row data-node="read_dataset.t_user" values="33, 13003, d33, init_read" />
+ <row data-node="read_dataset.t_user" values="34, 14003, e34, init_read" />
+ <row data-node="read_dataset.t_user" values="35, 15003, f35, init_read" />
+ <row data-node="read_dataset.t_user" values="36, 16003, g36, init_read" />
+ <row data-node="read_dataset.t_user" values="37, 17003, h37, init_read" />
+ <row data-node="read_dataset.t_user" values="38, 18003, i38, init_read" />
+ <row data-node="read_dataset.t_user" values="39, 19003, j39, init_read" />
+ <row data-node="read_dataset.t_user" values="40, 10004, a40, init_read" />
+ <row data-node="read_dataset.t_user" values="41, 11004, b41, init_read" />
+ <row data-node="read_dataset.t_user" values="42, 12004, c42, init_read" />
+ <row data-node="read_dataset.t_user" values="43, 13004, d43, init_read" />
+ <row data-node="read_dataset.t_user" values="44, 14004, e44, init_read" />
+ <row data-node="read_dataset.t_user" values="45, 15004, f45, init_read" />
+ <row data-node="read_dataset.t_user" values="46, 16004, g46, init_read" />
+ <row data-node="read_dataset.t_user" values="47, 17004, h47, init_read" />
+ <row data-node="read_dataset.t_user" values="48, 18004, i48, init_read" />
+ <row data-node="read_dataset.t_user" values="49, 19004, j49, init_read" />
+ <row data-node="read_dataset.t_user" values="50, 10005, a50, init_read" />
+ <row data-node="read_dataset.t_user" values="51, 11005, b51, init_read" />
+ <row data-node="read_dataset.t_user" values="52, 12005, c52, init_read" />
+ <row data-node="read_dataset.t_user" values="53, 13005, d53, init_read" />
+ <row data-node="read_dataset.t_user" values="54, 14005, e54, init_read" />
+ <row data-node="read_dataset.t_user" values="55, 15005, f55, init_read" />
+ <row data-node="read_dataset.t_user" values="56, 16005, g56, init_read" />
+ <row data-node="read_dataset.t_user" values="57, 17005, h57, init_read" />
+ <row data-node="read_dataset.t_user" values="58, 18005, i58, init_read" />
+ <row data-node="read_dataset.t_user" values="59, 19005, j59, init_read" />
+ <row data-node="read_dataset.t_user" values="60, 10006, a60, init_read" />
+ <row data-node="read_dataset.t_user" values="61, 11006, b61, init_read" />
+ <row data-node="read_dataset.t_user" values="62, 12006, c62, init_read" />
+ <row data-node="read_dataset.t_user" values="63, 13006, d63, init_read" />
+ <row data-node="read_dataset.t_user" values="64, 14006, e64, init_read" />
+ <row data-node="read_dataset.t_user" values="65, 15006, f65, init_read" />
+ <row data-node="read_dataset.t_user" values="66, 16006, g66, init_read" />
+ <row data-node="read_dataset.t_user" values="67, 17006, h67, init_read" />
+ <row data-node="read_dataset.t_user" values="68, 18006, i68, init_read" />
+ <row data-node="read_dataset.t_user" values="69, 19006, j69, init_read" />
+ <row data-node="read_dataset.t_user" values="70, 10007, a70, init_read" />
+ <row data-node="read_dataset.t_user" values="71, 11007, b71, init_read" />
+ <row data-node="read_dataset.t_user" values="72, 12007, c72, init_read" />
+ <row data-node="read_dataset.t_user" values="73, 13007, d73, init_read" />
+ <row data-node="read_dataset.t_user" values="74, 14007, e74, init_read" />
+ <row data-node="read_dataset.t_user" values="75, 15007, f75, init_read" />
+ <row data-node="read_dataset.t_user" values="76, 16007, g76, init_read" />
+ <row data-node="read_dataset.t_user" values="77, 17007, h77, init_read" />
+ <row data-node="read_dataset.t_user" values="78, 18007, i78, init_read" />
+ <row data-node="read_dataset.t_user" values="79, 19007, j79, init_read" />
+ <row data-node="read_dataset.t_user" values="80, 10008, a80, init_read" />
+ <row data-node="read_dataset.t_user" values="81, 11008, b81, init_read" />
+ <row data-node="read_dataset.t_user" values="82, 12008, c82, init_read" />
+ <row data-node="read_dataset.t_user" values="83, 13008, d83, init_read" />
+ <row data-node="read_dataset.t_user" values="84, 14008, e84, init_read" />
+ <row data-node="read_dataset.t_user" values="85, 15008, f85, init_read" />
+ <row data-node="read_dataset.t_user" values="86, 16008, g86, init_read" />
+ <row data-node="read_dataset.t_user" values="87, 17008, h87, init_read" />
+ <row data-node="read_dataset.t_user" values="88, 18008, i88, init_read" />
+ <row data-node="read_dataset.t_user" values="89, 19008, j89, init_read" />
+ <row data-node="read_dataset.t_user" values="90, 10009, a90, init_read" />
+ <row data-node="read_dataset.t_user" values="91, 11009, b91, init_read" />
+ <row data-node="read_dataset.t_user" values="92, 12009, c92, init_read" />
+ <row data-node="read_dataset.t_user" values="93, 13009, d93, init_read" />
+ <row data-node="read_dataset.t_user" values="94, 14009, e94, init_read" />
+ <row data-node="read_dataset.t_user" values="95, 15009, f95, init_read" />
+ <row data-node="read_dataset.t_user" values="96, 16009, g96, init_read" />
+ <row data-node="read_dataset.t_user" values="97, 17009, h97, init_read" />
+ <row data-node="read_dataset.t_user" values="98, 18009, i98, init_read" />
+ <row data-node="read_dataset.t_user" values="99, 19009, j99, init_read" />
+ <row data-node="read_dataset.t_user_item" values="100000, 0, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="100001, 10, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="100002, 20, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="100003, 30, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="100004, 40, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="100005, 50, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="100006, 60, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="100007, 70, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="100008, 80, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="100009, 90, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="110000, 1, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="110001, 11, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="110002, 21, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="110003, 31, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="110004, 41, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="110005, 51, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="110006, 61, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="110007, 71, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="110008, 81, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="110009, 91, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="120000, 2, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="120001, 12, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="120002, 22, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="120003, 32, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="120004, 42, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="120005, 52, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="120006, 62, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="120007, 72, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="120008, 82, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="120009, 92, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="130000, 3, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="130001, 13, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="130002, 23, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="130003, 33, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="130004, 43, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="130005, 53, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="130006, 63, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="130007, 73, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="130008, 83, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="130009, 93, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="140000, 4, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="140001, 14, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="140002, 24, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="140003, 34, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="140004, 44, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="140005, 54, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="140006, 64, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="140007, 74, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="140008, 84, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="140009, 94, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="150000, 5, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="150001, 15, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="150002, 25, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="150003, 35, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="150004, 45, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="150005, 55, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="150006, 65, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="150007, 75, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="150008, 85, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="150009, 95, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="160000, 6, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="160001, 16, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="160002, 26, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="160003, 36, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="160004, 46, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="160005, 56, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="160006, 66, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="160007, 76, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="160008, 86, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="160009, 96, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="170000, 7, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="170001, 17, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="170002, 27, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="170003, 37, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="170004, 47, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="170005, 57, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="170006, 67, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="170007, 77, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="170008, 87, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="170009, 97, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="180000, 8, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="180001, 18, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="180002, 28, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="180003, 38, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="180004, 48, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="180005, 58, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="180006, 68, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="180007, 78, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="180008, 88, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="180009, 98, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="190000, 9, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="190001, 19, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="190002, 29, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="190003, 39, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="190004, 49, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="190005, 59, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="190006, 69, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="190007, 79, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="190008, 89, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_user_item" values="190009, 99, init_read, 2017-08-08" />
+ <row data-node="read_dataset.t_order_federate" values="1000, 10, init_read" />
+ <row data-node="read_dataset.t_order_federate" values="1001, 11, init_read" />
+ <row data-node="read_dataset.t_order_item_federate" values="100000, 1000, 10, init_read" />
+ <row data-node="read_dataset.t_order_item_federate" values="100001, 1000, 10, init_read" />
+ <row data-node="read_dataset.t_order_item_federate" values="100100, 1001, 10, init_read" />
+ <row data-node="read_dataset.t_order_item_federate" values="100101, 1001, 10, init_read" />
+ <row data-node="read_dataset.t_order_item_federate_sharding" values="1000, 10000, 10, init_read, t_order_item_federate_sharding" />
+ <row data-node="read_dataset.t_order_item_federate_sharding" values="1010, 10001, 10, init_read, t_order_item_federate_sharding" />
+ <row data-node="read_dataset.t_order_item_federate_sharding" values="1001, 10001, 11, init_read, t_order_item_federate_sharding" />
+ <row data-node="read_dataset.t_order_item_federate_sharding" values="1011, 10001, 10, init_read, t_order_item_federate_sharding" />
+ <row data-node="read_dataset.t_order_federate_sharding" values="1010, 10, init_read" />
+ <row data-node="read_dataset.t_order_federate_sharding" values="1100, 10, init_read" />
+ <row data-node="read_dataset.t_order_federate_sharding" values="1011, 11, init_read" />
+ <row data-node="read_dataset.t_order_federate_sharding" values="1101, 11, init_read" />
+ <row data-node="read_dataset.t_user_encrypt_federate_sharding" values="0, decryptValue, Rachel" />
+ <row data-node="read_dataset.t_user_encrypt_federate_sharding" values="1, decryptValue, Monica" />
+ <row data-node="read_dataset.t_user_encrypt_federate_sharding" values="2, decryptValue, Phoebe" />
+ <row data-node="read_dataset.t_user_encrypt_federate_sharding" values="3, decryptValue, Ross" />
+ <row data-node="read_dataset.t_user_encrypt_federate_sharding" values="4, decryptValue, Chandler" />
+ <row data-node="read_dataset.t_user_encrypt_federate_sharding" values="5, decryptValue, Joey" />
+ <row data-node="read_dataset.t_user_info" values="0, description0" />
+ <row data-node="read_dataset.t_user_info" values="1, description1" />
+ <row data-node="read_dataset.t_user_info" values="2, description2" />
+ <row data-node="read_dataset.t_user_info" values="3, description3" />
+ <row data-node="read_dataset.t_user_encrypt_federate" values="0, decryptValue, Rachel" />
+ <row data-node="read_dataset.t_user_encrypt_federate" values="1, decryptValue, Monica" />
+ <row data-node="read_dataset.t_user_encrypt_federate" values="2, decryptValue, Phoebe" />
+ <row data-node="read_dataset.t_user_encrypt_federate" values="3, decryptValue, Ross" />
+ <row data-node="read_dataset.t_user_encrypt_federate" values="4, decryptValue, Chandler" />
+ <row data-node="read_dataset.t_user_encrypt_federate" values="5, decryptValue, Joey" />
+</dataset>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/expected/init-sql/h2/01-expected-init.sql b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/expected/init-sql/h2/01-expected-init.sql
new file mode 100644
index 00000000000..9ba0920f8c4
--- /dev/null
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/expected/init-sql/h2/01-expected-init.sql
@@ -0,0 +1,40 @@
+--
+-- 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.
+--
+
+DROP TABLE IF EXISTS t_single_table;
+DROP TABLE IF EXISTS t_order_federate;
+DROP TABLE IF EXISTS t_order_item_federate;
+DROP TABLE IF EXISTS t_order_federate_sharding;
+DROP TABLE IF EXISTS t_order_item_federate_sharding;
+DROP TABLE IF EXISTS t_user;
+DROP TABLE IF EXISTS t_user_item;
+DROP TABLE IF EXISTS t_user_encrypt_federate;
+DROP TABLE IF EXISTS t_user_encrypt_federate_sharding;
+DROP TABLE IF EXISTS t_user_info;
+
+CREATE TABLE t_single_table (single_id INT NOT NULL, id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (single_id));
+CREATE TABLE t_order_federate (order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id));
+CREATE TABLE t_order_item_federate (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (item_id));
+CREATE TABLE t_order_federate_sharding (order_id_sharding INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id_sharding));
+CREATE TABLE t_order_item_federate_sharding (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, remarks VARCHAR(45) NULL, PRIMARY KEY (item_id));
+CREATE TABLE t_user (user_id INT NOT NULL, address_id INT NOT NULL, pwd VARCHAR(45) NULL, status VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE t_user_item (item_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, creation_date DATE, PRIMARY KEY (item_id));
+CREATE TABLE t_user_encrypt_federate (user_id INT NOT NULL, pwd VARCHAR(45) NULL, username VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE t_user_encrypt_federate_sharding (user_id INT NOT NULL, pwd VARCHAR(45) NULL, username VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE t_user_info (user_id INT NOT NULL, information VARCHAR(45) NULL, PRIMARY KEY (user_id));
+
+CREATE INDEX user_index_t_user ON t_user (user_id);
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/expected/init-sql/mysql/01-expected-init.sql b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/expected/init-sql/mysql/01-expected-init.sql
new file mode 100644
index 00000000000..e84619306ed
--- /dev/null
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/expected/init-sql/mysql/01-expected-init.sql
@@ -0,0 +1,54 @@
+--
+-- 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.
+--
+
+SET character_set_database='utf8';
+SET character_set_server='utf8';
+
+
+DROP DATABASE IF EXISTS write_dataset;
+CREATE DATABASE write_dataset;
+
+CREATE TABLE write_dataset.t_single_table (single_id INT NOT NULL, id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (single_id));
+CREATE TABLE write_dataset.t_order_federate (order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id));
+CREATE TABLE write_dataset.t_order_item_federate (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (item_id));
+CREATE TABLE write_dataset.t_order_federate_sharding (order_id_sharding INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id_sharding));
+CREATE TABLE write_dataset.t_order_item_federate_sharding (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, remarks VARCHAR(45) NULL, PRIMARY KEY (item_id));
+CREATE TABLE write_dataset.t_user (user_id INT NOT NULL, address_id INT NOT NULL, pwd VARCHAR(45) NULL, status VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE write_dataset.t_user_item (item_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, creation_date DATE, PRIMARY KEY (item_id));
+CREATE TABLE write_dataset.t_user_encrypt_federate (user_id INT NOT NULL, pwd VARCHAR(45) NULL, username VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE write_dataset.t_user_encrypt_federate_sharding (user_id INT NOT NULL, pwd VARCHAR(45) NULL, username VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE write_dataset.t_user_info (user_id INT NOT NULL, information VARCHAR(45) NULL, PRIMARY KEY (user_id));
+
+CREATE INDEX user_index_t_user ON write_dataset.t_user (user_id);
+
+
+DROP DATABASE IF EXISTS read_dataset;
+CREATE DATABASE read_dataset;
+
+CREATE TABLE read_dataset.t_single_table (single_id INT NOT NULL, id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (single_id));
+CREATE TABLE read_dataset.t_order_federate (order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id));
+CREATE TABLE read_dataset.t_order_item_federate (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (item_id));
+CREATE TABLE read_dataset.t_order_federate_sharding (order_id_sharding INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id_sharding));
+CREATE TABLE read_dataset.t_order_item_federate_sharding (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, remarks VARCHAR(45) NULL, PRIMARY KEY (item_id));
+CREATE TABLE read_dataset.t_user (user_id INT NOT NULL, address_id INT NOT NULL, pwd VARCHAR(45) NULL, status VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE read_dataset.t_user_item (item_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, creation_date DATE, PRIMARY KEY (item_id));
+CREATE TABLE read_dataset.t_user_encrypt_federate (user_id INT NOT NULL, pwd VARCHAR(45) NULL, username VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE read_dataset.t_user_encrypt_federate_sharding (user_id INT NOT NULL, pwd VARCHAR(45) NULL, username VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE read_dataset.t_user_info (user_id INT NOT NULL, information VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE read_dataset.t_shadow (order_id BIGINT NOT NULL, user_id INT NOT NULL, order_name VARCHAR(32) NOT NULL, type_char CHAR(1) NOT NULL, type_boolean BOOLEAN NOT NULL, type_smallint SMALLINT NOT NULL, type_enum ENUM('spring', 'summer', 'autumn', 'winter'), type_decimal DECIMAL(18,2) NOT NULL, type_date DATE NOT NULL, type_time TIME NOT NULL, type_timestamp TIMESTAMP NOT NULL, PRIMARY KEY (order_id));
+
+CREATE INDEX user_index_t_user ON read_dataset.t_user (user_id);
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/expected/init-sql/oracle/01-expected-init.sql b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/expected/init-sql/oracle/01-expected-init.sql
new file mode 100644
index 00000000000..7070da7ad25
--- /dev/null
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/expected/init-sql/oracle/01-expected-init.sql
@@ -0,0 +1,49 @@
+--
+-- 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.
+--
+
+DROP SCHEMA write_dataset;
+CREATE SCHEMA write_dataset;
+
+CREATE TABLE write_dataset.t_single_table (single_id INT NOT NULL, id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (single_id));
+CREATE TABLE write_dataset.t_order_federate (order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id));
+CREATE TABLE write_dataset.t_order_item_federate (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (item_id));
+CREATE TABLE write_dataset.t_order_federate_sharding (order_id_sharding INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id_sharding));
+CREATE TABLE write_dataset.t_order_item_federate_sharding (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, remarks VARCHAR(45) NULL, PRIMARY KEY (item_id));
+CREATE TABLE write_dataset.t_user (user_id INT NOT NULL, address_id INT NOT NULL, pwd VARCHAR(45) NULL, status VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE write_dataset.t_user_item (item_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, creation_date DATE, PRIMARY KEY (item_id));
+CREATE TABLE write_dataset.t_user_encrypt_federate (user_id INT NOT NULL, pwd VARCHAR(45) NULL, username VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE write_dataset.t_user_encrypt_federate_sharding (user_id INT NOT NULL, pwd VARCHAR(45) NULL, username VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE write_dataset.t_user_info (user_id INT NOT NULL, information VARCHAR(45) NULL, PRIMARY KEY (user_id));
+
+CREATE INDEX user_index_t_user ON write_dataset.t_user (user_id);
+
+
+DROP SCHEMA read_dataset;
+CREATE SCHEMA read_dataset;
+
+CREATE TABLE read_dataset.t_single_table (single_id INT NOT NULL, id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (single_id));
+CREATE TABLE read_dataset.t_order_federate (order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id));
+CREATE TABLE read_dataset.t_order_item_federate (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (item_id));
+CREATE TABLE read_dataset.t_order_federate_sharding (order_id_sharding INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id_sharding));
+CREATE TABLE read_dataset.t_order_item_federate_sharding (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, remarks VARCHAR(45) NULL, PRIMARY KEY (item_id));
+CREATE TABLE read_dataset.t_user (user_id INT NOT NULL, address_id INT NOT NULL, pwd VARCHAR(45) NULL, status VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE read_dataset.t_user_item (item_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, creation_date DATE, PRIMARY KEY (item_id));
+CREATE TABLE read_dataset.t_user_encrypt_federate (user_id INT NOT NULL, pwd VARCHAR(45) NULL, username VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE read_dataset.t_user_encrypt_federate_sharding (user_id INT NOT NULL, pwd VARCHAR(45) NULL, username VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE read_dataset.t_user_info (user_id INT NOT NULL, information VARCHAR(45) NULL, PRIMARY KEY (user_id));
+
+CREATE INDEX user_index_t_user ON read_dataset.t_user (user_id);
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/expected/init-sql/postgresql/01-expected-init.sql b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/expected/init-sql/postgresql/01-expected-init.sql
new file mode 100644
index 00000000000..15ebba010e8
--- /dev/null
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/expected/init-sql/postgresql/01-expected-init.sql
@@ -0,0 +1,79 @@
+--
+-- 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.
+--
+
+DROP DATABASE IF EXISTS write_dataset;
+CREATE DATABASE write_dataset;
+
+GRANT ALL PRIVILEGES ON DATABASE write_dataset TO test_user;
+
+\c write_dataset;
+
+DROP TABLE IF EXISTS t_single_table;
+DROP TABLE IF EXISTS t_order_federate;
+DROP TABLE IF EXISTS t_order_item_federate;
+DROP TABLE IF EXISTS t_order_federate_sharding;
+DROP TABLE IF EXISTS t_order_item_federate_sharding;
+DROP TABLE IF EXISTS t_user;
+DROP TABLE IF EXISTS t_user_item;
+DROP TABLE IF EXISTS t_user_encrypt_federate;
+DROP TABLE IF EXISTS t_user_encrypt_federate_sharding;
+DROP TABLE IF EXISTS t_user_info;
+
+CREATE TABLE t_single_table (single_id INT NOT NULL, id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (single_id));
+CREATE TABLE t_order_federate (order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id));
+CREATE TABLE t_order_item_federate (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (item_id));
+CREATE TABLE t_order_federate_sharding (order_id_sharding INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id_sharding));
+CREATE TABLE t_order_item_federate_sharding (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, remarks VARCHAR(45) NULL, PRIMARY KEY (item_id));
+CREATE TABLE t_user (user_id INT NOT NULL, address_id INT NOT NULL, pwd VARCHAR(45) NULL, status VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE t_user_item (item_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, creation_date DATE, PRIMARY KEY (item_id));
+CREATE TABLE t_user_encrypt_federate (user_id INT NOT NULL, pwd VARCHAR(45) NULL, username VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE t_user_encrypt_federate_sharding (user_id INT NOT NULL, pwd VARCHAR(45) NULL, username VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE t_user_info (user_id INT NOT NULL, information VARCHAR(45) NULL, PRIMARY KEY (user_id));
+
+CREATE INDEX user_index_t_user ON t_user (user_id);
+
+
+DROP DATABASE IF EXISTS read_dataset;
+CREATE DATABASE read_dataset;
+
+GRANT ALL PRIVILEGES ON DATABASE read_dataset TO test_user;
+
+\c read_dataset;
+
+DROP TABLE IF EXISTS t_single_table;
+DROP TABLE IF EXISTS t_order_federate;
+DROP TABLE IF EXISTS t_order_item_federate;
+DROP TABLE IF EXISTS t_order_federate_sharding;
+DROP TABLE IF EXISTS t_order_item_federate_sharding;
+DROP TABLE IF EXISTS t_user;
+DROP TABLE IF EXISTS t_user_item;
+DROP TABLE IF EXISTS t_user_encrypt_federate;
+DROP TABLE IF EXISTS t_user_encrypt_federate_sharding;
+DROP TABLE IF EXISTS t_user_info;
+
+CREATE TABLE t_single_table (single_id INT NOT NULL, id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (single_id));
+CREATE TABLE t_order_federate (order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id));
+CREATE TABLE t_order_item_federate (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (item_id));
+CREATE TABLE t_order_federate_sharding (order_id_sharding INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id_sharding));
+CREATE TABLE t_order_item_federate_sharding (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, remarks VARCHAR(45) NULL, PRIMARY KEY (item_id));
+CREATE TABLE t_user (user_id INT NOT NULL, address_id INT NOT NULL, pwd VARCHAR(45) NULL, status VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE t_user_item (item_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, creation_date DATE, PRIMARY KEY (item_id));
+CREATE TABLE t_user_encrypt_federate (user_id INT NOT NULL, pwd VARCHAR(45) NULL, username VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE t_user_encrypt_federate_sharding (user_id INT NOT NULL, pwd VARCHAR(45) NULL, username VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE t_user_info (user_id INT NOT NULL, information VARCHAR(45) NULL, PRIMARY KEY (user_id));
+
+CREATE INDEX user_index_t_user ON t_user (user_id);
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/expected/init-sql/sqlserver/01-expected-init.sql b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/expected/init-sql/sqlserver/01-expected-init.sql
new file mode 100644
index 00000000000..3fe256330ba
--- /dev/null
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/data/expected/init-sql/sqlserver/01-expected-init.sql
@@ -0,0 +1,49 @@
+--
+-- 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.
+--
+
+DROP DATABASE IF EXISTS write_dataset;
+CREATE DATABASE write_dataset;
+
+CREATE TABLE write_dataset.t_single_table (single_id INT NOT NULL, id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (single_id));
+CREATE TABLE write_dataset.t_order_federate (order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id));
+CREATE TABLE write_dataset.t_order_item_federate (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (item_id));
+CREATE TABLE write_dataset.t_order_federate_sharding (order_id_sharding INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id_sharding));
+CREATE TABLE write_dataset.t_order_item_federate_sharding (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, remarks VARCHAR(45) NULL, PRIMARY KEY (item_id));
+CREATE TABLE write_dataset.t_user (user_id INT NOT NULL, address_id INT NOT NULL, pwd VARCHAR(45) NULL, status VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE write_dataset.t_user_item (item_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, creation_date DATE, PRIMARY KEY (item_id));
+CREATE TABLE write_dataset.t_user_encrypt_federate (user_id INT NOT NULL, pwd VARCHAR(45) NULL, username VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE write_dataset.t_user_encrypt_federate_sharding (user_id INT NOT NULL, pwd VARCHAR(45) NULL, username VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE write_dataset.t_user_info (user_id INT NOT NULL, information VARCHAR(45) NULL, PRIMARY KEY (user_id));
+
+CREATE INDEX user_index_t_user ON write_dataset.t_user (user_id);
+
+
+DROP DATABASE IF EXISTS read_dataset;
+CREATE DATABASE read_dataset;
+
+CREATE TABLE read_dataset.t_single_table (single_id INT NOT NULL, id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (single_id));
+CREATE TABLE read_dataset.t_order_federate (order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id));
+CREATE TABLE read_dataset.t_order_item_federate (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (item_id));
+CREATE TABLE read_dataset.t_order_federate_sharding (order_id_sharding INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id_sharding));
+CREATE TABLE read_dataset.t_order_item_federate_sharding (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, remarks VARCHAR(45) NULL, PRIMARY KEY (item_id));
+CREATE TABLE read_dataset.t_user (user_id INT NOT NULL, address_id INT NOT NULL, pwd VARCHAR(45) NULL, status VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE read_dataset.t_user_item (item_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, creation_date DATE, PRIMARY KEY (item_id));
+CREATE TABLE read_dataset.t_user_encrypt_federate (user_id INT NOT NULL, pwd VARCHAR(45) NULL, username VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE read_dataset.t_user_encrypt_federate_sharding (user_id INT NOT NULL, pwd VARCHAR(45) NULL, username VARCHAR(45) NULL, PRIMARY KEY (user_id));
+CREATE TABLE read_dataset.t_user_info (user_id INT NOT NULL, information VARCHAR(45) NULL, PRIMARY KEY (user_id));
+
+CREATE INDEX user_index_t_user ON read_dataset.t_user (user_id);
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/proxy/conf/mysql/config-encrypt-readwrite-splitting.yaml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/proxy/conf/mysql/config-encrypt-readwrite-splitting.yaml
new file mode 100644
index 00000000000..ac5fb61ee11
--- /dev/null
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/proxy/conf/mysql/config-encrypt-readwrite-splitting.yaml
@@ -0,0 +1,88 @@
+#
+# 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.
+#
+
+databaseName: encrypt_and_readwrite_splitting
+
+dataSources:
+ encrypt_write_ds:
+ url: jdbc:mysql://mysql.encrypt_and_readwrite_splitting.host:3306/encrypt_write_ds?serverTimezone=UTC&useSSL=false&characterEncoding=utf-8
+ username: test_user
+ password: Test@123
+ connectionTimeoutMilliseconds: 30000
+ idleTimeoutMilliseconds: 60000
+ maxLifetimeMilliseconds: 1800000
+ maxPoolSize: 2
+ minPoolSize: 2
+ encrypt_read_ds:
+ url: jdbc:mysql://mysql.encrypt_and_readwrite_splitting.host:3306/encrypt_read_ds?serverTimezone=UTC&useSSL=false&characterEncoding=utf-8
+ username: test_user
+ password: Test@123
+ connectionTimeoutMilliseconds: 30000
+ idleTimeoutMilliseconds: 60000
+ maxLifetimeMilliseconds: 1800000
+ maxPoolSize: 2
+ minPoolSize: 2
+
+rules:
+
+- !READWRITE_SPLITTING
+ dataSources:
+ readwrite_ds:
+ staticStrategy:
+ writeDataSourceName: encrypt_write_ds
+ readDataSourceNames:
+ - encrypt_read_ds
+ loadBalancerName: roundRobin
+ loadBalancers:
+ roundRobin:
+ type: ROUND_ROBIN
+
+- !ENCRYPT
+ encryptors:
+ aes_encryptor:
+ type: AES
+ props:
+ aes-key-value: 123456abc
+ tables:
+ t_user:
+ columns:
+ pwd:
+ plainColumn: pwd_plain
+ cipherColumn: pwd_cipher
+ encryptorName: aes_encryptor
+ t_user_details:
+ columns:
+ number:
+ plainColumn: number_plain
+ cipherColumn: number_cipher
+ encryptorName: aes_encryptor
+ number_new:
+ plainColumn: number_new_plain
+ cipherColumn: number_new_cipher
+ encryptorName: aes_encryptor
+ t_user_encrypt_federate:
+ columns:
+ pwd:
+ plainColumn: plain_pwd
+ cipherColumn: cipher_pwd
+ encryptorName: aes_encryptor
+ t_user_encrypt_federate_sharding:
+ columns:
+ pwd:
+ plainColumn: plain_pwd
+ cipherColumn: cipher_pwd
+ encryptorName: aes_encryptor
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/proxy/conf/postgresql/config-encrypt-readwrite-splitting.yaml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/proxy/conf/postgresql/config-encrypt-readwrite-splitting.yaml
new file mode 100644
index 00000000000..0ba1313da0a
--- /dev/null
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/proxy/conf/postgresql/config-encrypt-readwrite-splitting.yaml
@@ -0,0 +1,88 @@
+#
+# 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.
+#
+
+databaseName: encrypt_and_readwrite_splitting
+
+dataSources:
+ encrypt_write_ds:
+ url: jdbc:postgresql://postgresql.encrypt_and_readwrite_splitting.host:5432/encrypt_write_ds
+ username: test_user
+ password: Test@123
+ connectionTimeoutMilliseconds: 30000
+ idleTimeoutMilliseconds: 60000
+ maxLifetimeMilliseconds: 1800000
+ maxPoolSize: 2
+ minPoolSize: 2
+ encrypt_read_ds:
+ url: jdbc:postgresql://postgresql.encrypt_and_readwrite_splitting.host:5432/encrypt_read_ds
+ username: test_user
+ password: Test@123
+ connectionTimeoutMilliseconds: 30000
+ idleTimeoutMilliseconds: 60000
+ maxLifetimeMilliseconds: 1800000
+ maxPoolSize: 2
+ minPoolSize: 2
+
+rules:
+
+- !READWRITE_SPLITTING
+ dataSources:
+ readwrite_ds:
+ staticStrategy:
+ writeDataSourceName: encrypt_write_ds
+ readDataSourceNames:
+ - encrypt_read_ds
+ loadBalancerName: roundRobin
+ loadBalancers:
+ roundRobin:
+ type: ROUND_ROBIN
+
+- !ENCRYPT
+ encryptors:
+ aes_encryptor:
+ type: AES
+ props:
+ aes-key-value: 123456abc
+ tables:
+ t_user:
+ columns:
+ pwd:
+ plainColumn: pwd_plain
+ cipherColumn: pwd_cipher
+ encryptorName: aes_encryptor
+ t_user_details:
+ columns:
+ number:
+ plainColumn: number_plain
+ cipherColumn: number_cipher
+ encryptorName: aes_encryptor
+ number_new:
+ plainColumn: number_new_plain
+ cipherColumn: number_new_cipher
+ encryptorName: aes_encryptor
+ t_user_encrypt_federate:
+ columns:
+ pwd:
+ plainColumn: plain_pwd
+ cipherColumn: cipher_pwd
+ encryptorName: aes_encryptor
+ t_user_encrypt_federate_sharding:
+ columns:
+ pwd:
+ plainColumn: plain_pwd
+ cipherColumn: cipher_pwd
+ encryptorName: aes_encryptor
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/rules.yaml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/rules.yaml
new file mode 100644
index 00000000000..861f4f7d0d7
--- /dev/null
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/scenario/encrypt_and_readwrite_splitting/rules.yaml
@@ -0,0 +1,69 @@
+#
+# 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.
+#
+
+rules:
+
+- !READWRITE_SPLITTING
+ dataSources:
+ readwrite_ds:
+ staticStrategy:
+ writeDataSourceName: encrypt_write_ds
+ readDataSourceNames:
+ - encrypt_read_ds
+ loadBalancerName: roundRobin
+ loadBalancers:
+ roundRobin:
+ type: ROUND_ROBIN
+
+- !ENCRYPT
+ encryptors:
+ aes_encryptor:
+ type: AES
+ props:
+ aes-key-value: 123456abc
+ tables:
+ t_user:
+ columns:
+ pwd:
+ plainColumn: pwd_plain
+ cipherColumn: pwd_cipher
+ encryptorName: aes_encryptor
+ t_user_details:
+ columns:
+ number:
+ plainColumn: number_plain
+ cipherColumn: number_cipher
+ encryptorName: aes_encryptor
+ number_new:
+ plainColumn: number_new_plain
+ cipherColumn: number_new_cipher
+ encryptorName: aes_encryptor
+ t_user_encrypt_federate:
+ columns:
+ pwd:
+ plainColumn: plain_pwd
+ cipherColumn: cipher_pwd
+ encryptorName: aes_encryptor
+ t_user_encrypt_federate_sharding:
+ columns:
+ pwd:
+ plainColumn: plain_pwd
+ cipherColumn: cipher_pwd
+ encryptorName: aes_encryptor
+
+props:
+ sql-federation-enabled: true