You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by du...@apache.org on 2023/06/26 10:59:03 UTC

[shardingsphere] branch master updated: Fix prepared stmt hint lost if sqlParseEnable is false. (#26583)

This is an automated email from the ASF dual-hosted git repository.

duanzhengqiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 8e91f528339 Fix prepared stmt hint lost if sqlParseEnable is false. (#26583)
8e91f528339 is described below

commit 8e91f52833996ea94b406c170a51afc539f09415
Author: Chuxin Chen <ch...@qq.com>
AuthorDate: Mon Jun 26 18:58:57 2023 +0800

    Fix prepared stmt hint lost if sqlParseEnable is false. (#26583)
---
 .../statement/ShardingSpherePreparedStatement.java |   5 +-
 .../sharding_and_encrypt/insert_into_t_order_0.xml | 328 +++++++++++++++++++++
 .../resources/cases/dml/dml-integration-insert.xml |   4 +
 3 files changed, 335 insertions(+), 2 deletions(-)

diff --git a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
index dfba1e03667..746c5f6f879 100644
--- a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
+++ b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
@@ -158,6 +158,8 @@ public final class ShardingSpherePreparedStatement extends AbstractPreparedState
     
     private boolean useFederation;
     
+    private final HintValueContext hintValueContext;
+    
     public ShardingSpherePreparedStatement(final ShardingSphereConnection connection, final String sql) throws SQLException {
         this(connection, sql, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY, ResultSet.HOLD_CURSORS_OVER_COMMIT, false, null);
     }
@@ -188,6 +190,7 @@ public final class ShardingSpherePreparedStatement extends AbstractPreparedState
         this.connection = connection;
         metaDataContexts = connection.getContextManager().getMetaDataContexts();
         SQLParserRule sqlParserRule = metaDataContexts.getMetaData().getGlobalRuleMetaData().getSingleRule(SQLParserRule.class);
+        hintValueContext = sqlParserRule.isSqlCommentParseEnabled() ? new HintValueContext() : SQLHintUtils.extractHint(sql).orElseGet(HintValueContext::new);
         this.sql = sqlParserRule.isSqlCommentParseEnabled() ? sql : SQLHintUtils.removeHint(sql);
         statements = new ArrayList<>();
         parameterSets = new ArrayList<>();
@@ -555,8 +558,6 @@ public final class ShardingSpherePreparedStatement extends AbstractPreparedState
         if (sqlStatementContext instanceof ParameterAware) {
             ((ParameterAware) sqlStatementContext).setUpParameters(params);
         }
-        SQLParserRule sqlParserRule = metaDataContexts.getMetaData().getGlobalRuleMetaData().getSingleRule(SQLParserRule.class);
-        HintValueContext hintValueContext = sqlParserRule.isSqlCommentParseEnabled() ? new HintValueContext() : SQLHintUtils.extractHint(sql).orElseGet(HintValueContext::new);
         return new QueryContext(sqlStatementContext, sql, params, hintValueContext, true);
     }
     
diff --git a/test/e2e/sql/src/test/resources/cases/dml/dataset/sharding_and_encrypt/insert_into_t_order_0.xml b/test/e2e/sql/src/test/resources/cases/dml/dataset/sharding_and_encrypt/insert_into_t_order_0.xml
new file mode 100644
index 00000000000..a9d598019da
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/dml/dataset/sharding_and_encrypt/insert_into_t_order_0.xml
@@ -0,0 +1,328 @@
+<!--
+  ~ 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 update-count="1">
+    <metadata data-nodes="encrypt_ds_${0..9}.t_order_${0..9}">
+        <column name="order_id" type="int" />
+        <column name="user_id" type="int" />
+        <column name="status" type="varchar" />
+        <column name="merchant_id" type="int" />
+        <column name="remark" type="varchar" />
+        <column name="creation_date" type="Date" />
+    </metadata>
+    <row data-node="encrypt_ds_0.t_order_0" values="1, 1, ok, 1, mark, 2021-01-01" />
+    <row data-node="encrypt_ds_0.t_order_0" values="1000, 10, init, 1, test, 2017-08-08" />
+    <row data-node="encrypt_ds_0.t_order_1" values="1001, 10, init, 2, test, 2017-08-08" />
+    <row data-node="encrypt_ds_0.t_order_2" values="1002, 10, init, 3, test, 2017-08-08" />
+    <row data-node="encrypt_ds_0.t_order_3" values="1003, 10, init, 4, test, 2017-08-08" />
+    <row data-node="encrypt_ds_0.t_order_4" values="1004, 10, init, 5, test, 2017-08-08" />
+    <row data-node="encrypt_ds_0.t_order_5" values="1005, 10, init, 6, test, 2017-08-08" />
+    <row data-node="encrypt_ds_0.t_order_6" values="1006, 10, init, 7, test, 2017-08-08" />
+    <row data-node="encrypt_ds_0.t_order_7" values="1007, 10, init, 8, test, 2017-08-08" />
+    <row data-node="encrypt_ds_0.t_order_8" values="1008, 10, init, 9, test, 2017-08-08" />
+    <row data-node="encrypt_ds_0.t_order_9" values="1009, 10, init, 10, test, 2017-08-08" />
+    <row data-node="encrypt_ds_1.t_order_0" values="1100, 11, init, 11, test, 2017-08-08" />
+    <row data-node="encrypt_ds_1.t_order_1" values="1101, 11, init, 12, test, 2017-08-08" />
+    <row data-node="encrypt_ds_1.t_order_2" values="1102, 11, init, 13, test, 2017-08-08" />
+    <row data-node="encrypt_ds_1.t_order_3" values="1103, 11, init, 14, test, 2017-08-08" />
+    <row data-node="encrypt_ds_1.t_order_4" values="1104, 11, init, 15, test, 2017-08-08" />
+    <row data-node="encrypt_ds_1.t_order_5" values="1105, 11, init, 16, test, 2017-08-08" />
+    <row data-node="encrypt_ds_1.t_order_6" values="1106, 11, init, 17, test, 2017-08-08" />
+    <row data-node="encrypt_ds_1.t_order_7" values="1107, 11, init, 18, test, 2017-08-08" />
+    <row data-node="encrypt_ds_1.t_order_8" values="1108, 11, init, 19, test, 2017-08-08" />
+    <row data-node="encrypt_ds_1.t_order_9" values="1109, 11, init, 20, test, 2017-08-08" />
+    <row data-node="encrypt_ds_2.t_order_0" values="1200, 12, init, 1, test, 2017-08-08" />
+    <row data-node="encrypt_ds_2.t_order_1" values="1201, 12, init, 2, test, 2017-08-08" />
+    <row data-node="encrypt_ds_2.t_order_2" values="1202, 12, init, 3, test, 2017-08-08" />
+    <row data-node="encrypt_ds_2.t_order_3" values="1203, 12, init, 4, test, 2017-08-08" />
+    <row data-node="encrypt_ds_2.t_order_4" values="1204, 12, init, 5, test, 2017-08-08" />
+    <row data-node="encrypt_ds_2.t_order_5" values="1205, 12, init, 6, test, 2017-08-08" />
+    <row data-node="encrypt_ds_2.t_order_6" values="1206, 12, init, 7, test, 2017-08-08" />
+    <row data-node="encrypt_ds_2.t_order_7" values="1207, 12, init, 8, test, 2017-08-08" />
+    <row data-node="encrypt_ds_2.t_order_8" values="1208, 12, init, 9, test, 2017-08-08" />
+    <row data-node="encrypt_ds_2.t_order_9" values="1209, 12, init, 10, test, 2017-08-08" />
+    <row data-node="encrypt_ds_3.t_order_0" values="1300, 13, init, 11, test, 2017-08-08" />
+    <row data-node="encrypt_ds_3.t_order_1" values="1301, 13, init, 12, test, 2017-08-08" />
+    <row data-node="encrypt_ds_3.t_order_2" values="1302, 13, init, 13, test, 2017-08-08" />
+    <row data-node="encrypt_ds_3.t_order_3" values="1303, 13, init, 14, test, 2017-08-08" />
+    <row data-node="encrypt_ds_3.t_order_4" values="1304, 13, init, 15, test, 2017-08-08" />
+    <row data-node="encrypt_ds_3.t_order_5" values="1305, 13, init, 16, test, 2017-08-08" />
+    <row data-node="encrypt_ds_3.t_order_6" values="1306, 13, init, 17, test, 2017-08-08" />
+    <row data-node="encrypt_ds_3.t_order_7" values="1307, 13, init, 18, test, 2017-08-08" />
+    <row data-node="encrypt_ds_3.t_order_8" values="1308, 13, init, 19, test, 2017-08-08" />
+    <row data-node="encrypt_ds_3.t_order_9" values="1309, 13, init, 20, test, 2017-08-08" />
+    <row data-node="encrypt_ds_4.t_order_0" values="1400, 14, init, 1, test, 2017-08-08" />
+    <row data-node="encrypt_ds_4.t_order_1" values="1401, 14, init, 2, test, 2017-08-08" />
+    <row data-node="encrypt_ds_4.t_order_2" values="1402, 14, init, 3, test, 2017-08-08" />
+    <row data-node="encrypt_ds_4.t_order_3" values="1403, 14, init, 4, test, 2017-08-08" />
+    <row data-node="encrypt_ds_4.t_order_4" values="1404, 14, init, 5, test, 2017-08-08" />
+    <row data-node="encrypt_ds_4.t_order_5" values="1405, 14, init, 6, test, 2017-08-08" />
+    <row data-node="encrypt_ds_4.t_order_6" values="1406, 14, init, 7, test, 2017-08-08" />
+    <row data-node="encrypt_ds_4.t_order_7" values="1407, 14, init, 8, test, 2017-08-08" />
+    <row data-node="encrypt_ds_4.t_order_8" values="1408, 14, init, 9, test, 2017-08-08" />
+    <row data-node="encrypt_ds_4.t_order_9" values="1409, 14, init, 10, test, 2017-08-08" />
+    <row data-node="encrypt_ds_5.t_order_0" values="1500, 15, init, 11, test, 2017-08-08" />
+    <row data-node="encrypt_ds_5.t_order_1" values="1501, 15, init, 12, test, 2017-08-08" />
+    <row data-node="encrypt_ds_5.t_order_2" values="1502, 15, init, 13, test, 2017-08-08" />
+    <row data-node="encrypt_ds_5.t_order_3" values="1503, 15, init, 14, test, 2017-08-08" />
+    <row data-node="encrypt_ds_5.t_order_4" values="1504, 15, init, 15, test, 2017-08-08" />
+    <row data-node="encrypt_ds_5.t_order_5" values="1505, 15, init, 16, test, 2017-08-08" />
+    <row data-node="encrypt_ds_5.t_order_6" values="1506, 15, init, 17, test, 2017-08-08" />
+    <row data-node="encrypt_ds_5.t_order_7" values="1507, 15, init, 18, test, 2017-08-08" />
+    <row data-node="encrypt_ds_5.t_order_8" values="1508, 15, init, 19, test, 2017-08-08" />
+    <row data-node="encrypt_ds_5.t_order_9" values="1509, 15, init, 20, test, 2017-08-08" />
+    <row data-node="encrypt_ds_6.t_order_0" values="1600, 16, init, 1, test, 2017-08-08" />
+    <row data-node="encrypt_ds_6.t_order_1" values="1601, 16, init, 2, test, 2017-08-08" />
+    <row data-node="encrypt_ds_6.t_order_2" values="1602, 16, init, 3, test, 2017-08-08" />
+    <row data-node="encrypt_ds_6.t_order_3" values="1603, 16, init, 4, test, 2017-08-08" />
+    <row data-node="encrypt_ds_6.t_order_4" values="1604, 16, init, 5, test, 2017-08-08" />
+    <row data-node="encrypt_ds_6.t_order_5" values="1605, 16, init, 6, test, 2017-08-08" />
+    <row data-node="encrypt_ds_6.t_order_6" values="1606, 16, init, 7, test, 2017-08-08" />
+    <row data-node="encrypt_ds_6.t_order_7" values="1607, 16, init, 8, test, 2017-08-08" />
+    <row data-node="encrypt_ds_6.t_order_8" values="1608, 16, init, 9, test, 2017-08-08" />
+    <row data-node="encrypt_ds_6.t_order_9" values="1609, 16, init, 10, test, 2017-08-08" />
+    <row data-node="encrypt_ds_7.t_order_0" values="1700, 17, init, 11, test, 2017-08-08" />
+    <row data-node="encrypt_ds_7.t_order_1" values="1701, 17, init, 12, test, 2017-08-08" />
+    <row data-node="encrypt_ds_7.t_order_2" values="1702, 17, init, 13, test, 2017-08-08" />
+    <row data-node="encrypt_ds_7.t_order_3" values="1703, 17, init, 14, test, 2017-08-08" />
+    <row data-node="encrypt_ds_7.t_order_4" values="1704, 17, init, 15, test, 2017-08-08" />
+    <row data-node="encrypt_ds_7.t_order_5" values="1705, 17, init, 16, test, 2017-08-08" />
+    <row data-node="encrypt_ds_7.t_order_6" values="1706, 17, init, 17, test, 2017-08-08" />
+    <row data-node="encrypt_ds_7.t_order_7" values="1707, 17, init, 18, test, 2017-08-08" />
+    <row data-node="encrypt_ds_7.t_order_8" values="1708, 17, init, 19, test, 2017-08-08" />
+    <row data-node="encrypt_ds_7.t_order_9" values="1709, 17, init, 20, test, 2017-08-08" />
+    <row data-node="encrypt_ds_8.t_order_0" values="1800, 18, init, 1, test, 2017-08-08" />
+    <row data-node="encrypt_ds_8.t_order_1" values="1801, 18, init, 2, test, 2017-08-08" />
+    <row data-node="encrypt_ds_8.t_order_2" values="1802, 18, init, 3, test, 2017-08-08" />
+    <row data-node="encrypt_ds_8.t_order_3" values="1803, 18, init, 4, test, 2017-08-08" />
+    <row data-node="encrypt_ds_8.t_order_4" values="1804, 18, init, 5, test, 2017-08-08" />
+    <row data-node="encrypt_ds_8.t_order_5" values="1805, 18, init, 6, test, 2017-08-08" />
+    <row data-node="encrypt_ds_8.t_order_6" values="1806, 18, init, 7, test, 2017-08-08" />
+    <row data-node="encrypt_ds_8.t_order_7" values="1807, 18, init, 8, test, 2017-08-08" />
+    <row data-node="encrypt_ds_8.t_order_8" values="1808, 18, init, 9, test, 2017-08-08" />
+    <row data-node="encrypt_ds_8.t_order_9" values="1809, 18, init, 10, test, 2017-08-08" />
+    <row data-node="encrypt_ds_9.t_order_0" values="1900, 19, init, 11, test, 2017-08-08" />
+    <row data-node="encrypt_ds_9.t_order_1" values="1901, 19, init, 12, test, 2017-08-08" />
+    <row data-node="encrypt_ds_9.t_order_2" values="1902, 19, init, 13, test, 2017-08-08" />
+    <row data-node="encrypt_ds_9.t_order_3" values="1903, 19, init, 14, test, 2017-08-08" />
+    <row data-node="encrypt_ds_9.t_order_4" values="1904, 19, init, 15, test, 2017-08-08" />
+    <row data-node="encrypt_ds_9.t_order_5" values="1905, 19, init, 16, test, 2017-08-08" />
+    <row data-node="encrypt_ds_9.t_order_6" values="1906, 19, init, 17, test, 2017-08-08" />
+    <row data-node="encrypt_ds_9.t_order_7" values="1907, 19, init, 18, test, 2017-08-08" />
+    <row data-node="encrypt_ds_9.t_order_8" values="1908, 19, init, 19, test, 2017-08-08" />
+    <row data-node="encrypt_ds_9.t_order_9" values="1909, 19, init, 20, test, 2017-08-08" />
+    <row data-node="encrypt_ds_0.t_order_item_0" values="100000, 1000, 10, 1, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_0.t_order_item_0" values="100001, 1000, 10, 2, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_0.t_order_item_1" values="100100, 1001, 10, 3, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_0.t_order_item_1" values="100101, 1001, 10, 4, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_0.t_order_item_2" values="100200, 1002, 10, 5, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_0.t_order_item_2" values="100201, 1002, 10, 6, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_0.t_order_item_3" values="100300, 1003, 10, 7, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_0.t_order_item_3" values="100301, 1003, 10, 8, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_0.t_order_item_4" values="100400, 1004, 10, 9, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_0.t_order_item_4" values="100401, 1004, 10, 10, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_0.t_order_item_5" values="100500, 1005, 10, 1, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_0.t_order_item_5" values="100501, 1005, 10, 2, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_0.t_order_item_6" values="100600, 1006, 10, 3, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_0.t_order_item_6" values="100601, 1006, 10, 4, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_0.t_order_item_7" values="100700, 1007, 10, 5, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_0.t_order_item_7" values="100701, 1007, 10, 6, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_0.t_order_item_8" values="100800, 1008, 10, 7, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_0.t_order_item_8" values="100801, 1008, 10, 8, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_0.t_order_item_9" values="100900, 1009, 10, 9, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_0.t_order_item_9" values="100901, 1009, 10, 10, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_1.t_order_item_0" values="110000, 1100, 11, 1, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_1.t_order_item_0" values="110001, 1100, 11, 2, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_1.t_order_item_1" values="110100, 1101, 11, 3, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_1.t_order_item_1" values="110101, 1101, 11, 4, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_1.t_order_item_2" values="110200, 1102, 11, 5, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_1.t_order_item_2" values="110201, 1102, 11, 6, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_1.t_order_item_3" values="110300, 1103, 11, 7, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_1.t_order_item_3" values="110301, 1103, 11, 8, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_1.t_order_item_4" values="110400, 1104, 11, 9, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_1.t_order_item_4" values="110401, 1104, 11, 10, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_1.t_order_item_5" values="110500, 1105, 11, 1, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_1.t_order_item_5" values="110501, 1105, 11, 2, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_1.t_order_item_6" values="110600, 1106, 11, 3, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_1.t_order_item_6" values="110601, 1106, 11, 4, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_1.t_order_item_7" values="110700, 1107, 11, 5, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_1.t_order_item_7" values="110701, 1107, 11, 6, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_1.t_order_item_8" values="110800, 1108, 11, 7, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_1.t_order_item_8" values="110801, 1108, 11, 8, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_1.t_order_item_9" values="110900, 1109, 11, 9, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_1.t_order_item_9" values="110901, 1109, 11, 10, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_2.t_order_item_0" values="120000, 1200, 12, 1, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_2.t_order_item_0" values="120001, 1200, 12, 2, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_2.t_order_item_1" values="120100, 1201, 12, 3, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_2.t_order_item_1" values="120101, 1201, 12, 4, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_2.t_order_item_2" values="120200, 1202, 12, 5, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_2.t_order_item_2" values="120201, 1202, 12, 6, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_2.t_order_item_3" values="120300, 1203, 12, 7, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_2.t_order_item_3" values="120301, 1203, 12, 8, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_2.t_order_item_4" values="120400, 1204, 12, 9, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_2.t_order_item_4" values="120401, 1204, 12, 10, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_2.t_order_item_5" values="120500, 1205, 12, 1, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_2.t_order_item_5" values="120501, 1205, 12, 2, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_2.t_order_item_6" values="120600, 1206, 12, 3, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_2.t_order_item_6" values="120601, 1206, 12, 4, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_2.t_order_item_7" values="120700, 1207, 12, 5, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_2.t_order_item_7" values="120701, 1207, 12, 6, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_2.t_order_item_8" values="120800, 1208, 12, 7, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_2.t_order_item_8" values="120801, 1208, 12, 8, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_2.t_order_item_9" values="120900, 1209, 12, 9, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_2.t_order_item_9" values="120901, 1209, 12, 10, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_3.t_order_item_0" values="130000, 1300, 13, 1, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_3.t_order_item_0" values="130001, 1300, 13, 2, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_3.t_order_item_1" values="130100, 1301, 13, 3, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_3.t_order_item_1" values="130101, 1301, 13, 4, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_3.t_order_item_2" values="130200, 1302, 13, 5, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_3.t_order_item_2" values="130201, 1302, 13, 6, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_3.t_order_item_3" values="130300, 1303, 13, 7, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_3.t_order_item_3" values="130301, 1303, 13, 8, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_3.t_order_item_4" values="130400, 1304, 13, 9, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_3.t_order_item_4" values="130401, 1304, 13, 10, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_3.t_order_item_5" values="130500, 1305, 13, 1, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_3.t_order_item_5" values="130501, 1305, 13, 2, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_3.t_order_item_6" values="130600, 1306, 13, 3, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_3.t_order_item_6" values="130601, 1306, 13, 4, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_3.t_order_item_7" values="130700, 1307, 13, 5, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_3.t_order_item_7" values="130701, 1307, 13, 6, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_3.t_order_item_8" values="130800, 1308, 13, 7, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_3.t_order_item_8" values="130801, 1308, 13, 8, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_3.t_order_item_9" values="130900, 1309, 13, 9, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_3.t_order_item_9" values="130901, 1309, 13, 10, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_4.t_order_item_0" values="140000, 1400, 14, 1, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_4.t_order_item_0" values="140001, 1400, 14, 2, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_4.t_order_item_1" values="140100, 1401, 14, 3, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_4.t_order_item_1" values="140101, 1401, 14, 4, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_4.t_order_item_2" values="140200, 1402, 14, 5, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_4.t_order_item_2" values="140201, 1402, 14, 6, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_4.t_order_item_3" values="140300, 1403, 14, 7, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_4.t_order_item_3" values="140301, 1403, 14, 8, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_4.t_order_item_4" values="140400, 1404, 14, 9, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_4.t_order_item_4" values="140401, 1404, 14, 10, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_4.t_order_item_5" values="140500, 1405, 14, 1, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_4.t_order_item_5" values="140501, 1405, 14, 2, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_4.t_order_item_6" values="140600, 1406, 14, 3, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_4.t_order_item_6" values="140601, 1406, 14, 4, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_4.t_order_item_7" values="140700, 1407, 14, 5, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_4.t_order_item_7" values="140701, 1407, 14, 6, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_4.t_order_item_8" values="140800, 1408, 14, 7, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_4.t_order_item_8" values="140801, 1408, 14, 8, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_4.t_order_item_9" values="140900, 1409, 14, 9, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_4.t_order_item_9" values="140901, 1409, 14, 10, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_5.t_order_item_0" values="150000, 1500, 15, 1, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_5.t_order_item_0" values="150001, 1500, 15, 2, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_5.t_order_item_1" values="150100, 1501, 15, 3, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_5.t_order_item_1" values="150101, 1501, 15, 4, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_5.t_order_item_2" values="150200, 1502, 15, 5, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_5.t_order_item_2" values="150201, 1502, 15, 6, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_5.t_order_item_3" values="150300, 1503, 15, 7, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_5.t_order_item_3" values="150301, 1503, 15, 8, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_5.t_order_item_4" values="150400, 1504, 15, 9, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_5.t_order_item_4" values="150401, 1504, 15, 10, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_5.t_order_item_5" values="150500, 1505, 15, 1, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_5.t_order_item_5" values="150501, 1505, 15, 2, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_5.t_order_item_6" values="150600, 1506, 15, 3, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_5.t_order_item_6" values="150601, 1506, 15, 4, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_5.t_order_item_7" values="150700, 1507, 15, 5, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_5.t_order_item_7" values="150701, 1507, 15, 6, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_5.t_order_item_8" values="150800, 1508, 15, 7, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_5.t_order_item_8" values="150801, 1508, 15, 8, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_5.t_order_item_9" values="150900, 1509, 15, 9, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_5.t_order_item_9" values="150901, 1509, 15, 10, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_6.t_order_item_0" values="160000, 1600, 16, 1, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_6.t_order_item_0" values="160001, 1600, 16, 2, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_6.t_order_item_1" values="160100, 1601, 16, 3, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_6.t_order_item_1" values="160101, 1601, 16, 4, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_6.t_order_item_2" values="160200, 1602, 16, 5, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_6.t_order_item_2" values="160201, 1602, 16, 6, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_6.t_order_item_3" values="160300, 1603, 16, 7, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_6.t_order_item_3" values="160301, 1603, 16, 8, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_6.t_order_item_4" values="160400, 1604, 16, 9, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_6.t_order_item_4" values="160401, 1604, 16, 10, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_6.t_order_item_5" values="160500, 1605, 16, 1, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_6.t_order_item_5" values="160501, 1605, 16, 2, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_6.t_order_item_6" values="160600, 1606, 16, 3, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_6.t_order_item_6" values="160601, 1606, 16, 4, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_6.t_order_item_7" values="160700, 1607, 16, 5, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_6.t_order_item_7" values="160701, 1607, 16, 6, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_6.t_order_item_8" values="160800, 1608, 16, 7, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_6.t_order_item_8" values="160801, 1608, 16, 8, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_6.t_order_item_9" values="160900, 1609, 16, 9, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_6.t_order_item_9" values="160901, 1609, 16, 10, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_7.t_order_item_0" values="170000, 1700, 17, 1, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_7.t_order_item_0" values="170001, 1700, 17, 2, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_7.t_order_item_1" values="170100, 1701, 17, 3, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_7.t_order_item_1" values="170101, 1701, 17, 4, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_7.t_order_item_2" values="170200, 1702, 17, 5, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_7.t_order_item_2" values="170201, 1702, 17, 6, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_7.t_order_item_3" values="170300, 1703, 17, 7, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_7.t_order_item_3" values="170301, 1703, 17, 8, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_7.t_order_item_4" values="170400, 1704, 17, 9, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_7.t_order_item_4" values="170401, 1704, 17, 10, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_7.t_order_item_5" values="170500, 1705, 17, 1, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_7.t_order_item_5" values="170501, 1705, 17, 2, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_7.t_order_item_6" values="170600, 1706, 17, 3, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_7.t_order_item_6" values="170601, 1706, 17, 4, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_7.t_order_item_7" values="170700, 1707, 17, 5, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_7.t_order_item_7" values="170701, 1707, 17, 6, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_7.t_order_item_8" values="170800, 1708, 17, 7, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_7.t_order_item_8" values="170801, 1708, 17, 8, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_7.t_order_item_9" values="170900, 1709, 17, 9, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_7.t_order_item_9" values="170901, 1709, 17, 10, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_8.t_order_item_0" values="180000, 1800, 18, 1, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_8.t_order_item_0" values="180001, 1800, 18, 2, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_8.t_order_item_1" values="180100, 1801, 18, 3, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_8.t_order_item_1" values="180101, 1801, 18, 4, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_8.t_order_item_2" values="180200, 1802, 18, 5, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_8.t_order_item_2" values="180201, 1802, 18, 6, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_8.t_order_item_3" values="180300, 1803, 18, 7, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_8.t_order_item_3" values="180301, 1803, 18, 8, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_8.t_order_item_4" values="180400, 1804, 18, 9, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_8.t_order_item_4" values="180401, 1804, 18, 10, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_8.t_order_item_5" values="180500, 1805, 18, 1, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_8.t_order_item_5" values="180501, 1805, 18, 2, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_8.t_order_item_6" values="180600, 1806, 18, 3, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_8.t_order_item_6" values="180601, 1806, 18, 4, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_8.t_order_item_7" values="180700, 1807, 18, 5, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_8.t_order_item_7" values="180701, 1807, 18, 6, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_8.t_order_item_8" values="180800, 1808, 18, 7, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_8.t_order_item_8" values="180801, 1808, 18, 8, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_8.t_order_item_9" values="180900, 1809, 18, 9, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_8.t_order_item_9" values="180901, 1809, 18, 10, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_9.t_order_item_0" values="190000, 1900, 19, 1, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_9.t_order_item_0" values="190001, 1900, 19, 2, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_9.t_order_item_1" values="190100, 1901, 19, 3, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_9.t_order_item_1" values="190101, 1901, 19, 4, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_9.t_order_item_2" values="190200, 1902, 19, 5, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_9.t_order_item_2" values="190201, 1902, 19, 6, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_9.t_order_item_3" values="190300, 1903, 19, 7, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_9.t_order_item_3" values="190301, 1903, 19, 8, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_9.t_order_item_4" values="190400, 1904, 19, 9, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_9.t_order_item_4" values="190401, 1904, 19, 10, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_9.t_order_item_5" values="190500, 1905, 19, 1, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_9.t_order_item_5" values="190501, 1905, 19, 2, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_9.t_order_item_6" values="190600, 1906, 19, 3, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_9.t_order_item_6" values="190601, 1906, 19, 4, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_9.t_order_item_7" values="190700, 1907, 19, 5, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_9.t_order_item_7" values="190701, 1907, 19, 6, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_9.t_order_item_8" values="190800, 1908, 19, 7, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_9.t_order_item_8" values="190801, 1908, 19, 8, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_9.t_order_item_9" values="190900, 1909, 19, 9, 1, 2017-08-08" />
+    <row data-node="encrypt_ds_9.t_order_item_9" values="190901, 1909, 19, 10, 1, 2017-08-08" />
+</dataset>
diff --git a/test/e2e/sql/src/test/resources/cases/dml/dml-integration-insert.xml b/test/e2e/sql/src/test/resources/cases/dml/dml-integration-insert.xml
index 76ce4532ea2..ac14a145546 100644
--- a/test/e2e/sql/src/test/resources/cases/dml/dml-integration-insert.xml
+++ b/test/e2e/sql/src/test/resources/cases/dml/dml-integration-insert.xml
@@ -202,4 +202,8 @@
     <test-case sql="INSERT INTO t_data_type_bytea (id, val) VALUES (?, ?)" db-types="PostgreSQL,openGauss" scenario-types="passthrough">
         <assertion parameters="1:int, some values:bytes" expected-data-file="insert_bytea_values.xml"/>
     </test-case>
+    
+    <test-case sql="/* SHARDINGSPHERE_HINT: DATA_SOURCE_NAME=encrypt_ds_0 */INSERT INTO t_order_0 values (1, 1, 'ok', 1, 'mark', '2021-01-01')" db-types="MySQL,PostgreSQL" scenario-types="sharding_and_encrypt">
+        <assertion expected-data-file="insert_into_t_order_0.xml" />
+    </test-case>
 </integration-test-cases>