You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by pa...@apache.org on 2021/11/08 01:36:31 UTC

[shardingsphere] branch master updated: fix projection count error when use sharding and encrypt (#13487)

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 752205c  fix projection count error when use sharding and encrypt (#13487)
752205c is described below

commit 752205c8e55fd6e89d024365228133425b177341
Author: Zhengqiang Duan <du...@apache.org>
AuthorDate: Mon Nov 8 09:35:40 2021 +0800

    fix projection count error when use sharding and encrypt (#13487)
---
 .../resultset/ShardingSphereResultSetMetaData.java |  3 +-
 .../communication/DatabaseCommunicationEngine.java |  3 +-
 ...elect_aggregation_projection_with_subquery.xml} |  7 +-
 .../select_shorthand_projection_with_subquery.xml} |  6 +-
 ...elect_aggregation_projection_with_subquery.xml} |  7 +-
 .../select_encrypt.xml                             | 88 +---------------------
 .../select_in_or_encrypt.xml                       |  5 +-
 ... select_shorthand_projection_with_subquery.xml} |  6 +-
 .../cases/dql/dql-integration-test-cases.xml       | 13 +++-
 .../cases/rql/dataset/db/show_algorithms.xml       |  4 +-
 .../resources/cases/rql/dataset/db/show_rules.xml  |  4 +-
 .../docker/db/h2/proxy/conf/config-db.yaml         |  4 +-
 .../docker/db/mysql/proxy/conf/config-db.yaml      |  4 +-
 .../docker/db/postgresql/proxy/conf/config-db.yaml |  4 +-
 .../src/test/resources/env/db/rules.yaml           |  4 +-
 15 files changed, 36 insertions(+), 126 deletions(-)

diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/resultset/ShardingSphereResultSetMetaData.java b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/resultset/ShardingSphereResultSetMetaData.java
index a7e9c98..df1673d 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/resultset/ShardingSphereResultSetMetaData.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/resultset/ShardingSphereResultSetMetaData.java
@@ -114,8 +114,7 @@ public final class ShardingSphereResultSetMetaData extends WrapperAdapter implem
     }
     
     private boolean hasSelectExpandProjections() {
-        return sqlStatementContext instanceof SelectStatementContext && !((SelectStatementContext) sqlStatementContext).getProjectionsContext().getExpandProjections().isEmpty()
-                && !((SelectStatementContext) sqlStatementContext).isContainsSubquery();
+        return sqlStatementContext instanceof SelectStatementContext && !((SelectStatementContext) sqlStatementContext).getProjectionsContext().getExpandProjections().isEmpty();
     }
     
     @Override
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/DatabaseCommunicationEngine.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/DatabaseCommunicationEngine.java
index 6e9eebe..a5dfcb7 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/DatabaseCommunicationEngine.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/DatabaseCommunicationEngine.java
@@ -158,8 +158,7 @@ public final class DatabaseCommunicationEngine {
     }
     
     private boolean hasSelectExpandProjections(final SQLStatementContext<?> sqlStatementContext) {
-        return sqlStatementContext instanceof SelectStatementContext && !((SelectStatementContext) sqlStatementContext).getProjectionsContext().getExpandProjections().isEmpty()
-                && !((SelectStatementContext) sqlStatementContext).isContainsSubquery();
+        return sqlStatementContext instanceof SelectStatementContext && !((SelectStatementContext) sqlStatementContext).getProjectionsContext().getExpandProjections().isEmpty();
     }
     
     private MergedResult mergeQuery(final SQLStatementContext<?> sqlStatementContext, final List<QueryResult> queryResults) throws SQLException {
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_in_or_encrypt.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dql/dataset/db/select_aggregation_projection_with_subquery.xml
similarity index 83%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/select_in_or_encrypt.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dql/dataset/db/select_aggregation_projection_with_subquery.xml
index c94e22c7..dc443ee 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/select_in_or_encrypt.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dql/dataset/db/select_aggregation_projection_with_subquery.xml
@@ -17,10 +17,7 @@
 
 <dataset>
     <metadata>
-        <column name="user_id" />
-        <column name="pwd" />
-        <column name="status" />
+        <column name="order_id_sharding_avg" />
     </metadata>
-    <row values="10, a10, init_read" />
-    <row values="11, b11, init_read" />
+    <row values="1010.0000" />
 </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_in_or_encrypt.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dql/dataset/db/select_shorthand_projection_with_subquery.xml
similarity index 86%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/select_in_or_encrypt.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dql/dataset/db/select_shorthand_projection_with_subquery.xml
index c94e22c7..be184c9 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/select_in_or_encrypt.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dql/dataset/db/select_shorthand_projection_with_subquery.xml
@@ -17,10 +17,8 @@
 
 <dataset>
     <metadata>
+        <column name="order_id_sharding" />
         <column name="user_id" />
-        <column name="pwd" />
-        <column name="status" />
     </metadata>
-    <row values="10, a10, init_read" />
-    <row values="11, b11, init_read" />
+    <row values="1010, 10" />
 </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_in_or_encrypt.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/select_aggregation_projection_with_subquery.xml
similarity index 83%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/select_in_or_encrypt.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/select_aggregation_projection_with_subquery.xml
index c94e22c7..dc443ee 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/select_in_or_encrypt.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/select_aggregation_projection_with_subquery.xml
@@ -17,10 +17,7 @@
 
 <dataset>
     <metadata>
-        <column name="user_id" />
-        <column name="pwd" />
-        <column name="status" />
+        <column name="order_id_sharding_avg" />
     </metadata>
-    <row values="10, a10, init_read" />
-    <row values="11, b11, init_read" />
+    <row values="1010.0000" />
 </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_encrypt.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/select_encrypt.xml
index c9e5a4f..d318242 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/select_encrypt.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/select_encrypt.xml
@@ -36,90 +36,6 @@
     <row values="11, 11001, b11, init_read" />
     <row values="12, 12001, c12, init_read" />
     <row values="13, 13001, d13, init_read" />
-    <row values="14, 14001, e14, init_read" />
-    <row values="15, 15001, f15, init_read" />
-    <row values="16, 16001, g16, init_read" />
-    <row values="17, 17001, h17, init_read" />
-    <row values="18, 18001, i18, init_read" />
-    <row values="19, 19001, j19, init_read" />
-    <row values="20, 10002, a20, init_read" />
-    <row values="21, 11002, b21, init_read" />
-    <row values="22, 12002, c22, init_read" />
-    <row values="23, 13002, d23, init_read" />
-    <row values="24, 14002, e24, init_read" />
-    <row values="25, 15002, f25, init_read" />
-    <row values="26, 16002, g26, init_read" />
-    <row values="27, 17002, h27, init_read" />
-    <row values="28, 18002, i28, init_read" />
-    <row values="29, 19002, j29, init_read" />
-    <row values="30, 10003, a30, init_read" />
-    <row values="31, 11003, b31, init_read" />
-    <row values="32, 12003, c32, init_read" />
-    <row values="33, 13003, d33, init_read" />
-    <row values="34, 14003, e34, init_read" />
-    <row values="35, 15003, f35, init_read" />
-    <row values="36, 16003, g36, init_read" />
-    <row values="37, 17003, h37, init_read" />
-    <row values="38, 18003, i38, init_read" />
-    <row values="39, 19003, j39, init_read" />
-    <row values="40, 10004, a40, init_read" />
-    <row values="41, 11004, b41, init_read" />
-    <row values="42, 12004, c42, init_read" />
-    <row values="43, 13004, d43, init_read" />
-    <row values="44, 14004, e44, init_read" />
-    <row values="45, 15004, f45, init_read" />
-    <row values="46, 16004, g46, init_read" />
-    <row values="47, 17004, h47, init_read" />
-    <row values="48, 18004, i48, init_read" />
-    <row values="49, 19004, j49, init_read" />
-    <row values="50, 10005, a50, init_read" />
-    <row values="51, 11005, b51, init_read" />
-    <row values="52, 12005, c52, init_read" />
-    <row values="53, 13005, d53, init_read" />
-    <row values="54, 14005, e54, init_read" />
-    <row values="55, 15005, f55, init_read" />
-    <row values="56, 16005, g56, init_read" />
-    <row values="57, 17005, h57, init_read" />
-    <row values="58, 18005, i58, init_read" />
-    <row values="59, 19005, j59, init_read" />
-    <row values="60, 10006, a60, init_read" />
-    <row values="61, 11006, b61, init_read" />
-    <row values="62, 12006, c62, init_read" />
-    <row values="63, 13006, d63, init_read" />
-    <row values="64, 14006, e64, init_read" />
-    <row values="65, 15006, f65, init_read" />
-    <row values="66, 16006, g66, init_read" />
-    <row values="67, 17006, h67, init_read" />
-    <row values="68, 18006, i68, init_read" />
-    <row values="69, 19006, j69, init_read" />
-    <row values="70, 10007, a70, init_read" />
-    <row values="71, 11007, b71, init_read" />
-    <row values="72, 12007, c72, init_read" />
-    <row values="73, 13007, d73, init_read" />
-    <row values="74, 14007, e74, init_read" />
-    <row values="75, 15007, f75, init_read" />
-    <row values="76, 16007, g76, init_read" />
-    <row values="77, 17007, h77, init_read" />
-    <row values="78, 18007, i78, init_read" />
-    <row values="79, 19007, j79, init_read" />
-    <row values="80, 10008, a80, init_read" />
-    <row values="81, 11008, b81, init_read" />
-    <row values="82, 12008, c82, init_read" />
-    <row values="83, 13008, d83, init_read" />
-    <row values="84, 14008, e84, init_read" />
-    <row values="85, 15008, f85, init_read" />
-    <row values="86, 16008, g86, init_read" />
-    <row values="87, 17008, h87, init_read" />
-    <row values="88, 18008, i88, init_read" />
-    <row values="89, 19008, j89, init_read" />
-    <row values="90, 10009, a90, init_read" />
-    <row values="91, 11009, b91, init_read" />
-    <row values="92, 12009, c92, init_read" />
-    <row values="93, 13009, d93, init_read" />
-    <row values="94, 14009, e94, init_read" />
-    <row values="95, 15009, f95, init_read" />
-    <row values="96, 16009, g96, init_read" />
-    <row values="97, 17009, h97, init_read" />
-    <row values="98, 18009, i98, init_read" />
-    <row values="99, 19009, j99, init_read" />
+    <row values="14, 14001, a14, init_read" />
+    <row values="15, 15001, b15, init_read" />
 </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_in_or_encrypt.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/select_in_or_encrypt.xml
index c94e22c7..efe03a2 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/select_in_or_encrypt.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/select_in_or_encrypt.xml
@@ -18,9 +18,10 @@
 <dataset>
     <metadata>
         <column name="user_id" />
+        <column name="address_id" />
         <column name="pwd" />
         <column name="status" />
     </metadata>
-    <row values="10, a10, init_read" />
-    <row values="11, b11, init_read" />
+    <row values="10, 10001, a10, init_read" />
+    <row values="11, 11001, b11, init_read" />
 </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_in_or_encrypt.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/select_shorthand_projection_with_subquery.xml
similarity index 86%
copy from shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/select_in_or_encrypt.xml
copy to shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/select_shorthand_projection_with_subquery.xml
index c94e22c7..be184c9 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/select_in_or_encrypt.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/select_shorthand_projection_with_subquery.xml
@@ -17,10 +17,8 @@
 
 <dataset>
     <metadata>
+        <column name="order_id_sharding" />
         <column name="user_id" />
-        <column name="pwd" />
-        <column name="status" />
     </metadata>
-    <row values="10, a10, init_read" />
-    <row values="11, b11, init_read" />
+    <row values="1010, 10" />
 </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 364127e..caf3b16 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
@@ -494,8 +494,7 @@
     <test-case sql="SELECT * FROM t_broadcast_table" scenario-types="db,tbl,dbtbl_with_readwrite_splitting,readwrite_splitting">
         <assertion expected-data-file="select_for_broadcast_table.xml"/>
     </test-case>
-    <!--TODO #9625 fix 'select *' of dbtbl_with_readwrite_splitting_and_encrypt -->
-    <test-case sql="SELECT * FROM t_user" scenario-types="encrypt">
+    <test-case sql="SELECT * FROM t_user WHERE user_id &lt;= 15 ORDER BY user_id" scenario-types="encrypt,dbtbl_with_readwrite_splitting_and_encrypt">
         <assertion expected-data-file="select_encrypt.xml"/>
     </test-case>
     
@@ -510,8 +509,7 @@
     <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">
         <assertion expected-data-file="select_in_encrypt_without_pwd.xml"/>
     </test-case>
-    <!--TODO #9625 fix 'select *' of dbtbl_with_readwrite_splitting_and_encrypt -->
-    <test-case sql="SELECT * FROM t_user WHERE pwd in ('a10', 'b11') OR user_id = 10" scenario-types="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">
         <assertion expected-data-file="select_in_or_encrypt.xml"/>
     </test-case>
     
@@ -616,4 +614,11 @@
         <assertion expected-data-file="select_sql_by_id_across_single_and_sharding_tables_alias.xml"/>
     </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">
+        <assertion expected-data-file="select_shorthand_projection_with_subquery.xml"/>
+    </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" db-types="MySQL">
+        <assertion expected-data-file="select_aggregation_projection_with_subquery.xml"/>
+    </test-case>
 </integration-test-cases>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/db/show_algorithms.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/db/show_algorithms.xml
index 016a6ca..51bcdec 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/db/show_algorithms.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/db/show_algorithms.xml
@@ -22,6 +22,6 @@
         <column name="props" />
     </metadata>
     <row values="standard_test| STANDARD_TEST| " />
-    <row values="db_inline_order_id| INLINE| algorithm-expression=db_${order_id_sharding % 2}.t_order_federate_sharding" />
-    <row values="db_inline_item_id| INLINE| algorithm-expression=db_${db_inline_item_id % 2}.t_order_item_federate_sharding" />
+    <row values="db_inline_order_id| INLINE| algorithm-expression=ds_${order_id_sharding % 2}" />
+    <row values="db_inline_item_id| INLINE| algorithm-expression=ds_${db_inline_item_id % 2}" />
 </dataset>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/db/show_rules.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/db/show_rules.xml
index c9793bc..6169773 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/db/show_rules.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/db/show_rules.xml
@@ -35,6 +35,6 @@
     <row values="t_order| ds_${0..9}.t_order| | STANDARD_TEST| user_id| STANDARD_TEST| | | | | | | | " />
     <row values="t_order_item| ds_${0..9}.t_order_item| | STANDARD_TEST| user_id| STANDARD_TEST| | | | | | item_id| CONSTANT| " />
     <row values="t_order_details| ds_${0..9}.t_order_details| | STANDARD_TEST| user_id| STANDARD_TEST| | | | | | | " />
-    <row values="t_order_federate_sharding| ds_${0..1}.t_order_federate_sharding| | INLINE| order_id_sharding| INLINE| algorithm-expression=db_${order_id_sharding % 2}.t_order_federate_sharding| | | | | | | " />
-    <row values="t_order_item_federate_sharding| ds_${0..1}.t_order_item_federate_sharding| | INLINE| item_id| INLINE| algorithm-expression=db_${db_inline_item_id % 2}.t_order_item_federate_sharding| | | | | | | " />
+    <row values="t_order_federate_sharding| ds_${0..1}.t_order_federate_sharding| | INLINE| order_id_sharding| INLINE| algorithm-expression=ds_${order_id_sharding % 2}| | | | | | | " />
+    <row values="t_order_item_federate_sharding| ds_${0..1}.t_order_item_federate_sharding| | INLINE| item_id| INLINE| algorithm-expression=ds_${db_inline_item_id % 2}| | | | | | | " />
 </dataset>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/db/h2/proxy/conf/config-db.yaml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/db/h2/proxy/conf/config-db.yaml
index 542ca75..7ced0f2 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/db/h2/proxy/conf/config-db.yaml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/db/h2/proxy/conf/config-db.yaml
@@ -156,11 +156,11 @@ rules:
     db_inline_order_id:
       type: INLINE
       props:
-        algorithm-expression: db_${order_id_sharding % 2}.t_order_federate_sharding
+        algorithm-expression: ds_${order_id_sharding % 2}
     db_inline_item_id:
       type: INLINE
       props:
-        algorithm-expression: db_${db_inline_item_id % 2}.t_order_item_federate_sharding
+        algorithm-expression: ds_${db_inline_item_id % 2}
 
   keyGenerators:
       constant:
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/db/mysql/proxy/conf/config-db.yaml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/db/mysql/proxy/conf/config-db.yaml
index ea2d9a5..d5159c7 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/db/mysql/proxy/conf/config-db.yaml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/db/mysql/proxy/conf/config-db.yaml
@@ -156,11 +156,11 @@ rules:
     db_inline_order_id:
       type: INLINE
       props:
-        algorithm-expression: db_${order_id_sharding % 2}.t_order_federate_sharding
+        algorithm-expression: ds_${order_id_sharding % 2}
     db_inline_item_id:
       type: INLINE
       props:
-        algorithm-expression: db_${db_inline_item_id % 2}.t_order_item_federate_sharding
+        algorithm-expression: ds_${db_inline_item_id % 2}
 
   keyGenerators:
       constant:
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/db/postgresql/proxy/conf/config-db.yaml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/db/postgresql/proxy/conf/config-db.yaml
index df84e03..75a67da 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/db/postgresql/proxy/conf/config-db.yaml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/docker/db/postgresql/proxy/conf/config-db.yaml
@@ -156,11 +156,11 @@ rules:
     db_inline_order_id:
       type: INLINE
       props:
-        algorithm-expression: db_${order_id_sharding % 2}.t_order_federate_sharding
+        algorithm-expression: ds_${order_id_sharding % 2}
     db_inline_item_id:
       type: INLINE
       props:
-        algorithm-expression: db_${db_inline_item_id % 2}.t_order_item_federate_sharding
+        algorithm-expression: ds_${db_inline_item_id % 2}
 
   keyGenerators:
       constant:
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/db/rules.yaml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/db/rules.yaml
index af9aa4a..ff2d3d2 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/db/rules.yaml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/env/db/rules.yaml
@@ -64,11 +64,11 @@ rules:
     db_inline_order_id:
       type: INLINE
       props:
-        algorithm-expression: db_${order_id_sharding % 2}.t_order_federate_sharding
+        algorithm-expression: db_${order_id_sharding % 2}
     db_inline_item_id:
       type: INLINE
       props:
-        algorithm-expression: db_${db_inline_item_id % 2}.t_order_item_federate_sharding
+        algorithm-expression: db_${db_inline_item_id % 2}
 
   keyGenerators:
     constant: