This is an automated email from the ASF dual-hosted git repository.
panjuan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 3404d7e upgrade calcite version to fix group concat function
exception (#11758)
3404d7e is described below
commit 3404d7e9f4855367f4fae62a53426f35694fe804
Author: Zhengqiang Duan <[email protected]>
AuthorDate: Thu Aug 12 14:23:37 2021 +0800
upgrade calcite version to fix group concat function exception (#11758)
---
pom.xml | 2 +-
.../select_group_concat_function_with_federate.xml | 23 ++++++++++++++++++++++
.../select_group_concat_function_with_federate.xml | 23 ++++++++++++++++++++++
.../cases/dql/dql-integration-test-cases.xml | 4 ++++
.../config-dbtbl-with-readwrite-splitting.yaml | 10 ++++++++++
.../config-dbtbl-with-readwrite-splitting.yaml | 10 ++++++++++
.../config-dbtbl-with-readwrite-splitting.yaml | 10 ++++++++++
...dbtbl-with-readwrite-splitting-and-encrypt.yaml | 10 ++++++++++
...dbtbl-with-readwrite-splitting-and-encrypt.yaml | 10 ++++++++++
...dbtbl-with-readwrite-splitting-and-encrypt.yaml | 10 ++++++++++
.../env/dbtbl_with_readwrite_splitting/dataset.xml | 15 ++++++++++++++
.../init-sql/h2/init-read_ds_1.sql | 4 ++++
.../init-sql/h2/init-write_ds_1.sql | 4 ++++
.../init-sql/mysql/init.sql | 4 ++++
.../init-sql/oracle/init.sql | 4 ++++
.../init-sql/postgresql/init.sql | 8 ++++++++
.../init-sql/sqlserver/init.sql | 4 ++++
.../env/dbtbl_with_readwrite_splitting/rules.yaml | 10 ++++++++++
.../dataset.xml | 15 ++++++++++++++
.../init-sql/h2/init-encrypt_read_ds_1.sql | 4 ++++
.../init-sql/h2/init-encrypt_write_ds_1.sql | 4 ++++
.../init-sql/mysql/init.sql | 4 ++++
.../init-sql/oracle/init.sql | 4 ++++
.../init-sql/postgresql/init.sql | 8 ++++++++
.../init-sql/sqlserver/init.sql | 4 ++++
.../rules.yaml | 10 ++++++++++
26 files changed, 217 insertions(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index 0a1efb3..f73a8cb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -102,7 +102,7 @@
<elasticjob.version>3.0.0-beta</elasticjob.version>
- <calcite.version>1.26.0</calcite.version>
+ <calcite.version>1.27.0</calcite.version>
<embedded-mysql.version>4.6.1</embedded-mysql.version>
<embedded-postgresql.version>2.10</embedded-postgresql.version>
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dql/dataset/dbtbl_with_readwrite_splitting/select_group_concat_function_with_federate.xml
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dql/dataset/dbtbl_with_readwrite_splitting/select_group_concat_function_with_federate.xml
new file mode 100644
index 0000000..1df84d6
--- /dev/null
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dql/dataset/dbtbl_with_readwrite_splitting/select_group_concat_function_with_federate.xml
@@ -0,0 +1,23 @@
+<!--
+ ~ 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="item_ids" />
+ </metadata>
+ <row values="1000;1001" />
+</dataset>
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/select_group_concat_function_with_federate.xml
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/select_group_concat_function_with_federate.xml
new file mode 100644
index 0000000..1df84d6
--- /dev/null
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/select_group_concat_function_with_federate.xml
@@ -0,0 +1,23 @@
+<!--
+ ~ 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="item_ids" />
+ </metadata>
+ <row values="1000;1001" />
+</dataset>
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 518cd7a..1eae0a4 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
@@ -539,4 +539,8 @@
<test-case sql="SELECT user_id, CONCAT('SUM:', total, '.') content FROM
(SELECT user_id, SUM(order_id_sharding) AS total FROM t_order_federate_sharding
GROUP BY user_id HAVING SUM(order_id_sharding) > ?) AS temp"
db-types="MySQL,PostgreSQL" scenario-types="tbl">
<assertion parameters="1000:int"
expected-data-file="select_dialect_function_with_federate.xml" />
</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">
+ <assertion parameters="10000:int"
expected-data-file="select_group_concat_function_with_federate.xml" />
+ </test-case>
</integration-test-cases>
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/dbtbl_with_readwrite_splitting/h2/proxy/conf/config-dbtbl-with-readwrite-splitting.yaml
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/dbtbl_with_readwrite_splitting/h2/proxy/conf/config-dbtbl-with-readwrite-splitting.yaml
index 7fbcc05..8f7e24b 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/dbtbl_with_readwrite_splitting/h2/proxy/conf/config-dbtbl-with-readwrite-splitting.yaml
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/dbtbl_with_readwrite_splitting/h2/proxy/conf/config-dbtbl-with-readwrite-splitting.yaml
@@ -235,6 +235,12 @@ rules:
standard:
shardingColumn: order_id
shardingAlgorithmName: standard_test
+ t_order_item_federate_sharding:
+ actualDataNodes: pr_ds_1.t_order_item_federate_sharding_${0..1}
+ tableStrategy:
+ standard:
+ shardingColumn: item_id
+ shardingAlgorithmName: table_inline_item_id
bindingTables:
- t_order,t_order_item,t_order_details
broadcastTables:
@@ -243,6 +249,10 @@ rules:
shardingAlgorithms:
standard_test:
type: STANDARD_TEST
+ table_inline_item_id:
+ type: INLINE
+ props:
+ algorithm-expression: t_order_item_federate_sharding_${item_id % 2}
keyGenerators:
constant:
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/dbtbl_with_readwrite_splitting/mysql/proxy/conf/config-dbtbl-with-readwrite-splitting.yaml
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/dbtbl_with_readwrite_splitting/mysql/proxy/conf/config-dbtbl-with-readwrite-splitting.yaml
index 7fbcc05..8f7e24b 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/dbtbl_with_readwrite_splitting/mysql/proxy/conf/config-dbtbl-with-readwrite-splitting.yaml
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/dbtbl_with_readwrite_splitting/mysql/proxy/conf/config-dbtbl-with-readwrite-splitting.yaml
@@ -235,6 +235,12 @@ rules:
standard:
shardingColumn: order_id
shardingAlgorithmName: standard_test
+ t_order_item_federate_sharding:
+ actualDataNodes: pr_ds_1.t_order_item_federate_sharding_${0..1}
+ tableStrategy:
+ standard:
+ shardingColumn: item_id
+ shardingAlgorithmName: table_inline_item_id
bindingTables:
- t_order,t_order_item,t_order_details
broadcastTables:
@@ -243,6 +249,10 @@ rules:
shardingAlgorithms:
standard_test:
type: STANDARD_TEST
+ table_inline_item_id:
+ type: INLINE
+ props:
+ algorithm-expression: t_order_item_federate_sharding_${item_id % 2}
keyGenerators:
constant:
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/dbtbl_with_readwrite_splitting/postgresql/proxy/conf/config-dbtbl-with-readwrite-splitting.yaml
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/dbtbl_with_readwrite_splitting/postgresql/proxy/conf/config-dbtbl-with-readwrite-splitting.yaml
index acfdf42..80de964 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/dbtbl_with_readwrite_splitting/postgresql/proxy/conf/config-dbtbl-with-readwrite-splitting.yaml
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/dbtbl_with_readwrite_splitting/postgresql/proxy/conf/config-dbtbl-with-readwrite-splitting.yaml
@@ -235,6 +235,12 @@ rules:
standard:
shardingColumn: order_id
shardingAlgorithmName: standard_test
+ t_order_item_federate_sharding:
+ actualDataNodes: pr_ds_1.t_order_item_federate_sharding_${0..1}
+ tableStrategy:
+ standard:
+ shardingColumn: item_id
+ shardingAlgorithmName: table_inline_item_id
bindingTables:
- t_order,t_order_item,t_order_details
broadcastTables:
@@ -243,6 +249,10 @@ rules:
shardingAlgorithms:
standard_test:
type: STANDARD_TEST
+ table_inline_item_id:
+ type: INLINE
+ props:
+ algorithm-expression: t_order_item_federate_sharding_${item_id % 2}
keyGenerators:
constant:
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/dbtbl_with_readwrite_splitting_and_encrypt/h2/proxy/conf/config-dbtbl-with-readwrite-splitting-and-encrypt.yaml
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/dbtbl_with_readwrite_splitting_and_encrypt/h2/proxy/conf/config-dbtbl-with-readwrite-splitting-and-encrypt.yaml
index 2a5e7e6..48e6d09 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/dbtbl_with_readwrite_splitting_and_encrypt/h2/proxy/conf/config-dbtbl-with-readwrite-splitting-and-encrypt.yaml
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/dbtbl_with_readwrite_splitting_and_encrypt/h2/proxy/conf/config-dbtbl-with-readwrite-splitting-and-encrypt.yaml
@@ -238,12 +238,22 @@ rules:
standard:
shardingColumn: user_id
shardingAlgorithmName: standard_test
+ t_order_item_federate_sharding:
+ actualDataNodes: pr_ds_1.t_order_item_federate_sharding_${0..1}
+ tableStrategy:
+ standard:
+ shardingColumn: item_id
+ shardingAlgorithmName: table_inline_item_id
bindingTables:
- t_user,t_user_item,t_user_details
shardingAlgorithms:
standard_test:
type: STANDARD_TEST
+ table_inline_item_id:
+ type: INLINE
+ props:
+ algorithm-expression: t_order_item_federate_sharding_${item_id % 2}
keyGenerators:
constant:
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/dbtbl_with_readwrite_splitting_and_encrypt/mysql/proxy/conf/config-dbtbl-with-readwrite-splitting-and-encrypt.yaml
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/dbtbl_with_readwrite_splitting_and_encrypt/mysql/proxy/conf/config-dbtbl-with-readwrite-splitting-and-encrypt.yaml
index 2a5e7e6..48e6d09 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/dbtbl_with_readwrite_splitting_and_encrypt/mysql/proxy/conf/config-dbtbl-with-readwrite-splitting-and-encrypt.yaml
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/dbtbl_with_readwrite_splitting_and_encrypt/mysql/proxy/conf/config-dbtbl-with-readwrite-splitting-and-encrypt.yaml
@@ -238,12 +238,22 @@ rules:
standard:
shardingColumn: user_id
shardingAlgorithmName: standard_test
+ t_order_item_federate_sharding:
+ actualDataNodes: pr_ds_1.t_order_item_federate_sharding_${0..1}
+ tableStrategy:
+ standard:
+ shardingColumn: item_id
+ shardingAlgorithmName: table_inline_item_id
bindingTables:
- t_user,t_user_item,t_user_details
shardingAlgorithms:
standard_test:
type: STANDARD_TEST
+ table_inline_item_id:
+ type: INLINE
+ props:
+ algorithm-expression: t_order_item_federate_sharding_${item_id % 2}
keyGenerators:
constant:
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/dbtbl_with_readwrite_splitting_and_encrypt/postgresql/proxy/conf/config-dbtbl-with-readwrite-splitting-and-encrypt.yaml
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/dbtbl_with_readwrite_splitting_and_encrypt/postgresql/proxy/conf/config-dbtbl-with-readwrite-splitting-and-encrypt.yaml
index 89237f6..5bd77d8 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/dbtbl_with_readwrite_splitting_and_encrypt/postgresql/proxy/conf/config-dbtbl-with-readwrite-splitting-and-encrypt.yaml
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/dbtbl_with_readwrite_splitting_and_encrypt/postgresql/proxy/conf/config-dbtbl-with-readwrite-splitting-and-encrypt.yaml
@@ -238,12 +238,22 @@ rules:
standard:
shardingColumn: user_id
shardingAlgorithmName: standard_test
+ t_order_item_federate_sharding:
+ actualDataNodes: pr_ds_1.t_order_item_federate_sharding_${0..1}
+ tableStrategy:
+ standard:
+ shardingColumn: item_id
+ shardingAlgorithmName: table_inline_item_id
bindingTables:
- t_user,t_user_item,t_user_details
shardingAlgorithms:
standard_test:
type: STANDARD_TEST
+ table_inline_item_id:
+ type: INLINE
+ props:
+ algorithm-expression: t_order_item_federate_sharding_${item_id % 2}
keyGenerators:
constant:
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting/dataset.xml
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting/dataset.xml
index bfa9b5d..31abf42 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting/dataset.xml
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting/dataset.xml
@@ -48,6 +48,13 @@
<column name="user_id" type="numeric" />
<column name="status" type="varchar" />
</metadata>
+ <metadata
data-nodes="write_ds_1.t_order_item_federate_sharding_${0..1},read_ds_1.t_order_item_federate_sharding_${0..1}">
+ <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>
<row data-node="write_ds_0.t_single_table" values="1, 1000, init" />
<row data-node="write_ds_0.t_single_table" values="2, 1101, init" />
<row data-node="write_ds_0.t_single_table" values="3, 1202, init" />
@@ -368,6 +375,10 @@
<row data-node="write_ds_1.t_order_item_federate" values="100001, 1000,
10, init" />
<row data-node="write_ds_1.t_order_item_federate" values="100100, 1001,
10, init" />
<row data-node="write_ds_1.t_order_item_federate" values="100101, 1001,
10, init" />
+ <row data-node="write_ds_1.t_order_item_federate_sharding_0" values="1000,
10000, 10, init, t_order_item_federate_sharding" />
+ <row data-node="write_ds_1.t_order_item_federate_sharding_0" values="1010,
10001, 10, init, t_order_item_federate_sharding" />
+ <row data-node="write_ds_1.t_order_item_federate_sharding_1" values="1001,
10001, 11, init, t_order_item_federate_sharding" />
+ <row data-node="write_ds_1.t_order_item_federate_sharding_1" values="1011,
10001, 10, init, t_order_item_federate_sharding" />
<row data-node="read_ds_0.t_single_table" values="1, 1000, init_read" />
<row data-node="read_ds_0.t_single_table" values="2, 1101, init_read" />
<row data-node="read_ds_0.t_single_table" values="3, 1202, init_read" />
@@ -688,4 +699,8 @@
<row data-node="read_ds_1.t_order_item_federate" values="100001, 1000, 10,
init" />
<row data-node="read_ds_1.t_order_item_federate" values="100100, 1001, 10,
init" />
<row data-node="read_ds_1.t_order_item_federate" values="100101, 1001, 10,
init" />
+ <row data-node="read_ds_1.t_order_item_federate_sharding_0" values="1000,
10000, 10, init, t_order_item_federate_sharding" />
+ <row data-node="read_ds_1.t_order_item_federate_sharding_0" values="1010,
10001, 10, init, t_order_item_federate_sharding" />
+ <row data-node="read_ds_1.t_order_item_federate_sharding_1" values="1001,
10001, 11, init, t_order_item_federate_sharding" />
+ <row data-node="read_ds_1.t_order_item_federate_sharding_1" values="1011,
10001, 10, init, t_order_item_federate_sharding" />
</dataset>
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting/init-sql/h2/init-read_ds_1.sql
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting/init-sql/h2/init-read_ds_1.sql
index 25dda09..ba2ae9a 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting/init-sql/h2/init-read_ds_1.sql
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting/init-sql/h2/init-read_ds_1.sql
@@ -16,5 +16,9 @@
--
DROP TABLE IF EXISTS t_order_item_federate;
+DROP TABLE IF EXISTS t_order_item_federate_sharding_0;
+DROP TABLE IF EXISTS t_order_item_federate_sharding_1;
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_0 (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_item_federate_sharding_1 (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));
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting/init-sql/h2/init-write_ds_1.sql
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting/init-sql/h2/init-write_ds_1.sql
index 25dda09..ba2ae9a 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting/init-sql/h2/init-write_ds_1.sql
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting/init-sql/h2/init-write_ds_1.sql
@@ -16,5 +16,9 @@
--
DROP TABLE IF EXISTS t_order_item_federate;
+DROP TABLE IF EXISTS t_order_item_federate_sharding_0;
+DROP TABLE IF EXISTS t_order_item_federate_sharding_1;
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_0 (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_item_federate_sharding_1 (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));
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting/init-sql/mysql/init.sql
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting/init-sql/mysql/init.sql
index 0a64048..ffae036 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting/init-sql/mysql/init.sql
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting/init-sql/mysql/init.sql
@@ -119,6 +119,8 @@ CREATE TABLE write_ds_1.t_order_9 (order_id INT NOT NULL,
user_id INT NOT NULL,
CREATE TABLE write_ds_1.t_order_item_9 (item_id INT NOT NULL, order_id INT NOT
NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, creation_date DATE,
PRIMARY KEY (item_id));
CREATE TABLE write_ds_1.t_broadcast_table (id INT NOT NULL, status VARCHAR(45)
NULL, PRIMARY KEY (id));
CREATE TABLE write_ds_1.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_ds_1.t_order_item_federate_sharding_0 (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_ds_1.t_order_item_federate_sharding_1 (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 INDEX order_index_t_order_0 ON write_ds_1.t_order_0 (order_id);
CREATE INDEX order_index_t_order_1 ON write_ds_1.t_order_1 (order_id);
CREATE INDEX order_index_t_order_2 ON write_ds_1.t_order_2 (order_id);
@@ -442,6 +444,8 @@ CREATE TABLE read_ds_1.t_order_9 (order_id INT NOT NULL,
user_id INT NOT NULL, s
CREATE TABLE read_ds_1.t_order_item_9 (item_id INT NOT NULL, order_id INT NOT
NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, creation_date DATE,
PRIMARY KEY (item_id));
CREATE TABLE read_ds_1.t_broadcast_table (id INT NOT NULL, status VARCHAR(45)
NULL, PRIMARY KEY (id));
CREATE TABLE read_ds_1.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_ds_1.t_order_item_federate_sharding_0 (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_ds_1.t_order_item_federate_sharding_1 (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 INDEX order_index_t_order_0 ON read_ds_1.t_order_0 (order_id);
CREATE INDEX order_index_t_order_1 ON read_ds_1.t_order_1 (order_id);
CREATE INDEX order_index_t_order_2 ON read_ds_1.t_order_2 (order_id);
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting/init-sql/oracle/init.sql
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting/init-sql/oracle/init.sql
index f1bb14d..ae75990 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting/init-sql/oracle/init.sql
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting/init-sql/oracle/init.sql
@@ -116,6 +116,8 @@ CREATE TABLE write_ds_1.t_order_9 (order_id INT NOT NULL,
user_id INT NOT NULL,
CREATE TABLE write_ds_1.t_order_item_9 (item_id INT NOT NULL, order_id INT NOT
NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, creation_date DATE,
PRIMARY KEY (item_id));
CREATE TABLE write_ds_1.t_broadcast_table (id INT NOT NULL, status VARCHAR(45)
NULL, PRIMARY KEY (id));
CREATE TABLE write_ds_1.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_ds_1.t_order_item_federate_sharding_0 (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_ds_1.t_order_item_federate_sharding_1 (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 INDEX order_index_t_order_0 ON write_ds_1.t_order_0 (order_id);
CREATE INDEX order_index_t_order_1 ON write_ds_1.t_order_1 (order_id);
CREATE INDEX order_index_t_order_2 ON write_ds_1.t_order_2 (order_id);
@@ -439,6 +441,8 @@ CREATE TABLE read_ds_1.t_order_9 (order_id INT NOT NULL,
user_id INT NOT NULL, s
CREATE TABLE read_ds_1.t_order_item_9 (item_id INT NOT NULL, order_id INT NOT
NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, creation_date DATE,
PRIMARY KEY (item_id));
CREATE TABLE read_ds_1.t_broadcast_table (id INT NOT NULL, status VARCHAR(45)
NULL, PRIMARY KEY (id));
CREATE TABLE read_ds_1.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_ds_1.t_order_item_federate_sharding_0 (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_ds_1.t_order_item_federate_sharding_1 (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 INDEX order_index_t_order_0 ON read_ds_1.t_order_0 (order_id);
CREATE INDEX order_index_t_order_1 ON read_ds_1.t_order_1 (order_id);
CREATE INDEX order_index_t_order_2 ON read_ds_1.t_order_2 (order_id);
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting/init-sql/postgresql/init.sql
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting/init-sql/postgresql/init.sql
index 6b7b543..0391463 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting/init-sql/postgresql/init.sql
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting/init-sql/postgresql/init.sql
@@ -141,6 +141,8 @@ DROP TABLE IF EXISTS t_order_9;
DROP TABLE IF EXISTS t_order_item_9;
DROP TABLE IF EXISTS t_broadcast_table;
DROP TABLE IF EXISTS t_order_item_federate;
+DROP TABLE IF EXISTS t_order_item_federate_sharding_0;
+DROP TABLE IF EXISTS t_order_item_federate_sharding_1;
CREATE TABLE t_order_0 (order_id INT NOT NULL, user_id INT NOT NULL, status
VARCHAR(45) NULL, PRIMARY KEY (order_id));
CREATE TABLE t_order_item_0 (item_id INT NOT NULL, order_id INT NOT NULL,
user_id INT NOT NULL, status VARCHAR(45) NULL, creation_date DATE, PRIMARY KEY
(item_id));
@@ -164,6 +166,8 @@ CREATE TABLE t_order_9 (order_id INT NOT NULL, user_id INT
NOT NULL, status VARC
CREATE TABLE t_order_item_9 (item_id INT NOT NULL, order_id INT NOT NULL,
user_id INT NOT NULL, status VARCHAR(45) NULL, creation_date DATE, PRIMARY KEY
(item_id));
CREATE TABLE t_broadcast_table (id INT NOT NULL, status VARCHAR(45) NULL,
PRIMARY KEY (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_0 (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_item_federate_sharding_1 (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 INDEX order_index_t_order_0 ON t_order_0 (order_id);
CREATE INDEX order_index_t_order_1 ON t_order_1 (order_id);
CREATE INDEX order_index_t_order_2 ON t_order_2 (order_id);
@@ -707,6 +711,8 @@ DROP TABLE IF EXISTS t_order_9;
DROP TABLE IF EXISTS t_order_item_9;
DROP TABLE IF EXISTS t_broadcast_table;
DROP TABLE IF EXISTS t_order_item_federate;
+DROP TABLE IF EXISTS t_order_item_federate_sharding_0;
+DROP TABLE IF EXISTS t_order_item_federate_sharding_1;
CREATE TABLE t_order_0 (order_id INT NOT NULL, user_id INT NOT NULL, status
VARCHAR(45) NULL, PRIMARY KEY (order_id));
CREATE TABLE t_order_item_0 (item_id INT NOT NULL, order_id INT NOT NULL,
user_id INT NOT NULL, status VARCHAR(45) NULL, creation_date DATE, PRIMARY KEY
(item_id));
@@ -730,6 +736,8 @@ CREATE TABLE t_order_9 (order_id INT NOT NULL, user_id INT
NOT NULL, status VARC
CREATE TABLE t_order_item_9 (item_id INT NOT NULL, order_id INT NOT NULL,
user_id INT NOT NULL, status VARCHAR(45) NULL, creation_date DATE, PRIMARY KEY
(item_id));
CREATE TABLE t_broadcast_table (id INT NOT NULL, status VARCHAR(45) NULL,
PRIMARY KEY (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_0 (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_item_federate_sharding_1 (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 INDEX order_index_t_order_0 ON t_order_0 (order_id);
CREATE INDEX order_index_t_order_1 ON t_order_1 (order_id);
CREATE INDEX order_index_t_order_2 ON t_order_2 (order_id);
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting/init-sql/sqlserver/init.sql
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting/init-sql/sqlserver/init.sql
index 0e47134..b62a3cc 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting/init-sql/sqlserver/init.sql
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting/init-sql/sqlserver/init.sql
@@ -116,6 +116,8 @@ CREATE TABLE write_ds_1.t_order_9 (order_id INT NOT NULL,
user_id INT NOT NULL,
CREATE TABLE write_ds_1.t_order_item_9 (item_id INT NOT NULL, order_id INT NOT
NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, creation_date DATE,
PRIMARY KEY (item_id));
CREATE TABLE write_ds_1.t_broadcast_table (id INT NOT NULL, status VARCHAR(45)
NULL, PRIMARY KEY (id));
CREATE TABLE write_ds_1.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_ds_1.t_order_item_federate_sharding_0 (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_ds_1.t_order_item_federate_sharding_1 (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 INDEX order_index_t_order_0 ON write_ds_1.t_order_0 (order_id);
CREATE INDEX order_index_t_order_1 ON write_ds_1.t_order_1 (order_id);
CREATE INDEX order_index_t_order_2 ON write_ds_1.t_order_2 (order_id);
@@ -439,6 +441,8 @@ CREATE TABLE read_ds_1.t_order_9 (order_id INT NOT NULL,
user_id INT NOT NULL, s
CREATE TABLE read_ds_1.t_order_item_9 (item_id INT NOT NULL, order_id INT NOT
NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, creation_date DATE,
PRIMARY KEY (item_id));
CREATE TABLE read_ds_1.t_broadcast_table (id INT NOT NULL, status VARCHAR(45)
NULL, PRIMARY KEY (id));
CREATE TABLE read_ds_1.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_ds_1.t_order_item_federate_sharding_0 (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_ds_1.t_order_item_federate_sharding_1 (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 INDEX order_index_t_order_0 ON read_ds_1.t_order_0 (order_id);
CREATE INDEX order_index_t_order_1 ON read_ds_1.t_order_1 (order_id);
CREATE INDEX order_index_t_order_2 ON read_ds_1.t_order_2 (order_id);
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting/rules.yaml
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting/rules.yaml
index a8cf353..845f7f8 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting/rules.yaml
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting/rules.yaml
@@ -51,6 +51,12 @@ rules:
standard:
shardingColumn: order_id
shardingAlgorithmName: standard_test
+ t_order_item_federate_sharding:
+ actualDataNodes: pr_ds_1.t_order_item_federate_sharding_${0..1}
+ tableStrategy:
+ standard:
+ shardingColumn: item_id
+ shardingAlgorithmName: table_inline_item_id
bindingTables:
- t_order,t_order_item,t_order_details
broadcastTables:
@@ -60,6 +66,10 @@ rules:
shardingAlgorithms:
standard_test:
type: STANDARD_TEST
+ table_inline_item_id:
+ type: INLINE
+ props:
+ algorithm-expression: t_order_item_federate_sharding_${item_id % 2}
keyGenerators:
constant:
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting_and_encrypt/dataset.xml
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting_and_encrypt/dataset.xml
index 2b70f61..193ff81 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting_and_encrypt/dataset.xml
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting_and_encrypt/dataset.xml
@@ -45,6 +45,13 @@
<column name="user_id" type="numeric" />
<column name="status" type="varchar" />
</metadata>
+ <metadata
data-nodes="encrypt_write_ds_1.t_order_item_federate_sharding_${0..1},encrypt_read_ds_1.t_order_item_federate_sharding_${0..1}">
+ <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>
<row data-node="encrypt_write_ds_0.t_single_table" values="1, 0, init" />
<row data-node="encrypt_write_ds_0.t_single_table" values="2, 11, init" />
<row data-node="encrypt_write_ds_0.t_single_table" values="3, 22, init" />
@@ -255,6 +262,10 @@
<row data-node="encrypt_write_ds_1.t_order_item_federate" values="100001,
1000, 10, init" />
<row data-node="encrypt_write_ds_1.t_order_item_federate" values="100100,
1001, 10, init" />
<row data-node="encrypt_write_ds_1.t_order_item_federate" values="100101,
1001, 10, init" />
+ <row data-node="encrypt_write_ds_1.t_order_item_federate_sharding_0"
values="1000, 10000, 10, init, t_order_item_federate_sharding" />
+ <row data-node="encrypt_write_ds_1.t_order_item_federate_sharding_0"
values="1010, 10001, 10, init, t_order_item_federate_sharding" />
+ <row data-node="encrypt_write_ds_1.t_order_item_federate_sharding_1"
values="1001, 10001, 11, init, t_order_item_federate_sharding" />
+ <row data-node="encrypt_write_ds_1.t_order_item_federate_sharding_1"
values="1011, 10001, 10, init, t_order_item_federate_sharding" />
<row data-node="encrypt_read_ds_0.t_single_table" values="1, 0, init_read"
/>
<row data-node="encrypt_read_ds_0.t_single_table" values="2, 11,
init_read" />
<row data-node="encrypt_read_ds_0.t_single_table" values="3, 22,
init_read" />
@@ -465,4 +476,8 @@
<row data-node="encrypt_read_ds_1.t_order_item_federate" values="100001,
1000, 10, init" />
<row data-node="encrypt_read_ds_1.t_order_item_federate" values="100100,
1001, 10, init" />
<row data-node="encrypt_read_ds_1.t_order_item_federate" values="100101,
1001, 10, init" />
+ <row data-node="encrypt_read_ds_1.t_order_item_federate_sharding_0"
values="1000, 10000, 10, init, t_order_item_federate_sharding" />
+ <row data-node="encrypt_read_ds_1.t_order_item_federate_sharding_0"
values="1010, 10001, 10, init, t_order_item_federate_sharding" />
+ <row data-node="encrypt_read_ds_1.t_order_item_federate_sharding_1"
values="1001, 10001, 11, init, t_order_item_federate_sharding" />
+ <row data-node="encrypt_read_ds_1.t_order_item_federate_sharding_1"
values="1011, 10001, 10, init, t_order_item_federate_sharding" />
</dataset>
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting_and_encrypt/init-sql/h2/init-encrypt_read_ds_1.sql
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting_and_encrypt/init-sql/h2/init-encrypt_read_ds_1.sql
index 25dda09..ba2ae9a 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting_and_encrypt/init-sql/h2/init-encrypt_read_ds_1.sql
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting_and_encrypt/init-sql/h2/init-encrypt_read_ds_1.sql
@@ -16,5 +16,9 @@
--
DROP TABLE IF EXISTS t_order_item_federate;
+DROP TABLE IF EXISTS t_order_item_federate_sharding_0;
+DROP TABLE IF EXISTS t_order_item_federate_sharding_1;
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_0 (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_item_federate_sharding_1 (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));
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting_and_encrypt/init-sql/h2/init-encrypt_write_ds_1.sql
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting_and_encrypt/init-sql/h2/init-encrypt_write_ds_1.sql
index 25dda09..ba2ae9a 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting_and_encrypt/init-sql/h2/init-encrypt_write_ds_1.sql
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting_and_encrypt/init-sql/h2/init-encrypt_write_ds_1.sql
@@ -16,5 +16,9 @@
--
DROP TABLE IF EXISTS t_order_item_federate;
+DROP TABLE IF EXISTS t_order_item_federate_sharding_0;
+DROP TABLE IF EXISTS t_order_item_federate_sharding_1;
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_0 (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_item_federate_sharding_1 (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));
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting_and_encrypt/init-sql/mysql/init.sql
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting_and_encrypt/init-sql/mysql/init.sql
index d585aae..48b3250 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting_and_encrypt/init-sql/mysql/init.sql
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting_and_encrypt/init-sql/mysql/init.sql
@@ -117,6 +117,8 @@ CREATE TABLE encrypt_write_ds_1.t_user_item_8 (item_id INT
NOT NULL, user_id INT
CREATE TABLE encrypt_write_ds_1.t_user_9 (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_1.t_user_item_9 (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_1.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_1.t_order_item_federate_sharding_0 (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_1.t_order_item_federate_sharding_1 (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 INDEX user_index_t_user_0 ON encrypt_write_ds_1.t_user_0 (user_id);
CREATE INDEX user_index_t_user_1 ON encrypt_write_ds_1.t_user_1 (user_id);
CREATE INDEX user_index_t_user_2 ON encrypt_write_ds_1.t_user_2 (user_id);
@@ -430,6 +432,8 @@ CREATE TABLE encrypt_read_ds_1.t_user_item_8 (item_id INT
NOT NULL, user_id INT
CREATE TABLE encrypt_read_ds_1.t_user_9 (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_1.t_user_item_9 (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_1.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_1.t_order_item_federate_sharding_0 (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_1.t_order_item_federate_sharding_1 (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 INDEX user_index_t_user_0 ON encrypt_read_ds_1.t_user_0 (user_id);
CREATE INDEX user_index_t_user_1 ON encrypt_read_ds_1.t_user_1 (user_id);
CREATE INDEX user_index_t_user_2 ON encrypt_read_ds_1.t_user_2 (user_id);
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting_and_encrypt/init-sql/oracle/init.sql
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting_and_encrypt/init-sql/oracle/init.sql
index 3789f48..e0e4354 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting_and_encrypt/init-sql/oracle/init.sql
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting_and_encrypt/init-sql/oracle/init.sql
@@ -114,6 +114,8 @@ CREATE TABLE encrypt_write_ds_1.t_user_item_8 (item_id INT
NOT NULL, user_id INT
CREATE TABLE encrypt_write_ds_1.t_user_9 (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_1.t_user_item_9 (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_1.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_1.t_order_item_federate_sharding_0 (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_1.t_order_item_federate_sharding_1 (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 INDEX user_index_t_user_0 ON encrypt_write_ds_1.t_user_0 (user_id);
CREATE INDEX user_index_t_user_1 ON encrypt_write_ds_1.t_user_1 (user_id);
CREATE INDEX user_index_t_user_2 ON encrypt_write_ds_1.t_user_2 (user_id);
@@ -427,6 +429,8 @@ CREATE TABLE encrypt_read_ds_1.t_user_item_8 (item_id INT
NOT NULL, user_id INT
CREATE TABLE encrypt_read_ds_1.t_user_9 (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_1.t_user_item_9 (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_1.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_1.t_order_item_federate_sharding_0 (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_1.t_order_item_federate_sharding_1 (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 INDEX user_index_t_user_0 ON encrypt_read_ds_1.t_user_0 (user_id);
CREATE INDEX user_index_t_user_1 ON encrypt_read_ds_1.t_user_1 (user_id);
CREATE INDEX user_index_t_user_2 ON encrypt_read_ds_1.t_user_2 (user_id);
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting_and_encrypt/init-sql/postgresql/init.sql
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting_and_encrypt/init-sql/postgresql/init.sql
index a2dfddb..52b0ea6 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting_and_encrypt/init-sql/postgresql/init.sql
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting_and_encrypt/init-sql/postgresql/init.sql
@@ -138,6 +138,8 @@ DROP TABLE IF EXISTS t_user_item_8;
DROP TABLE IF EXISTS t_user_9;
DROP TABLE IF EXISTS t_user_item_9;
DROP TABLE IF EXISTS t_order_item_federate;
+DROP TABLE IF EXISTS t_order_item_federate_sharding_0;
+DROP TABLE IF EXISTS t_order_item_federate_sharding_1;
CREATE TABLE t_user_0 (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_0 (item_id INT NOT NULL, user_id INT NOT NULL, status
VARCHAR(45) NULL, creation_date DATE, PRIMARY KEY (item_id));
@@ -160,6 +162,8 @@ CREATE TABLE t_user_item_8 (item_id INT NOT NULL, user_id
INT NOT NULL, status V
CREATE TABLE t_user_9 (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_9 (item_id INT NOT NULL, user_id INT NOT NULL, status
VARCHAR(45) NULL, creation_date DATE, PRIMARY KEY (item_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_0 (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_item_federate_sharding_1 (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 INDEX user_index_t_user_0 ON t_user_0 (user_id);
CREATE INDEX user_index_t_user_1 ON t_user_1 (user_id);
CREATE INDEX user_index_t_user_2 ON t_user_2 (user_id);
@@ -684,6 +688,8 @@ DROP TABLE IF EXISTS t_user_item_8;
DROP TABLE IF EXISTS t_user_9;
DROP TABLE IF EXISTS t_user_item_9;
DROP TABLE IF EXISTS t_order_item_federate;
+DROP TABLE IF EXISTS t_order_item_federate_sharding_0;
+DROP TABLE IF EXISTS t_order_item_federate_sharding_1;
CREATE TABLE t_user_0 (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_0 (item_id INT NOT NULL, user_id INT NOT NULL, status
VARCHAR(45) NULL, creation_date DATE, PRIMARY KEY (item_id));
@@ -706,6 +712,8 @@ CREATE TABLE t_user_item_8 (item_id INT NOT NULL, user_id
INT NOT NULL, status V
CREATE TABLE t_user_9 (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_9 (item_id INT NOT NULL, user_id INT NOT NULL, status
VARCHAR(45) NULL, creation_date DATE, PRIMARY KEY (item_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_0 (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_item_federate_sharding_1 (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 INDEX user_index_t_user_0 ON t_user_0 (user_id);
CREATE INDEX user_index_t_user_1 ON t_user_1 (user_id);
CREATE INDEX user_index_t_user_2 ON t_user_2 (user_id);
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting_and_encrypt/init-sql/sqlserver/init.sql
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting_and_encrypt/init-sql/sqlserver/init.sql
index 5bbc0b3..8e2035d 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting_and_encrypt/init-sql/sqlserver/init.sql
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting_and_encrypt/init-sql/sqlserver/init.sql
@@ -114,6 +114,8 @@ CREATE TABLE encrypt_write_ds_1.t_user_item_8 (item_id INT
NOT NULL, user_id INT
CREATE TABLE encrypt_write_ds_1.t_user_9 (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_1.t_user_item_9 (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_1.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_1.t_order_item_federate_sharding_0 (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_1.t_order_item_federate_sharding_1 (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 INDEX user_index_t_user_0 ON encrypt_write_ds_1.t_user_0 (user_id);
CREATE INDEX user_index_t_user_1 ON encrypt_write_ds_1.t_user_1 (user_id);
CREATE INDEX user_index_t_user_2 ON encrypt_write_ds_1.t_user_2 (user_id);
@@ -427,6 +429,8 @@ CREATE TABLE encrypt_read_ds_1.t_user_item_8 (item_id INT
NOT NULL, user_id INT
CREATE TABLE encrypt_read_ds_1.t_user_9 (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_1.t_user_item_9 (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_1.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_1.t_order_item_federate_sharding_0 (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_1.t_order_item_federate_sharding_1 (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 INDEX user_index_t_user_0 ON encrypt_read_ds_1.t_user_0 (user_id);
CREATE INDEX user_index_t_user_1 ON encrypt_read_ds_1.t_user_1 (user_id);
CREATE INDEX user_index_t_user_2 ON encrypt_read_ds_1.t_user_2 (user_id);
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting_and_encrypt/rules.yaml
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting_and_encrypt/rules.yaml
index be29b50..37e9fa6 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting_and_encrypt/rules.yaml
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/dbtbl_with_readwrite_splitting_and_encrypt/rules.yaml
@@ -54,12 +54,22 @@ rules:
standard:
shardingColumn: user_id
shardingAlgorithmName: standard_test
+ t_order_item_federate_sharding:
+ actualDataNodes: pr_ds_1.t_order_item_federate_sharding_${0..1}
+ tableStrategy:
+ standard:
+ shardingColumn: item_id
+ shardingAlgorithmName: table_inline_item_id
bindingTables:
- t_user,t_user_item,t_user_details
shardingAlgorithms:
standard_test:
type: STANDARD_TEST
+ table_inline_item_id:
+ type: INLINE
+ props:
+ algorithm-expression: t_order_item_federate_sharding_${item_id % 2}
keyGenerators:
constant: