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

chengzhang 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 5736aab5bdf Add WithAvailable interface and encrypt with, combine, 
insert select support checker (#34175)
5736aab5bdf is described below

commit 5736aab5bdfa1b344db4f5f02a8d7616fe5a5fd8
Author: Zhengqiang Duan <duanzhengqi...@apache.org>
AuthorDate: Fri Dec 27 13:40:13 2024 +0800

    Add WithAvailable interface and encrypt with, combine, insert select 
support checker (#34175)
    
    * Add WithAvailable interface and encrypt with support checker
    
    * Add combine and insert select checker
    
    * update release note and doc
    
    * remove unsupported test case
---
 RELEASE-NOTES.md                                   |  1 +
 .../content/features/encrypt/appendix.cn.md        |  2 +
 .../content/features/encrypt/appendix.en.md        |  2 +
 .../sql/EncryptSupportedSQLCheckersBuilder.java    |  8 ++-
 .../EncryptCombineClauseSupportedChecker.java      | 63 ++++++++++++++++++++
 .../EncryptInsertSelectSupportedChecker.java       | 51 ++++++++++++++++
 .../with/EncryptWithClauseSupportedChecker.java    | 51 ++++++++++++++++
 .../EncryptCombineClauseSupportedCheckerTest.java  | 67 ++++++++++++++++++++++
 .../EncryptInsertSelectSupportedCheckerTest.java   | 67 ++++++++++++++++++++++
 .../EncryptWithClauseSupportedCheckerTest.java     | 67 ++++++++++++++++++++++
 .../statement/dml/DeleteStatementContext.java      | 14 ++++-
 .../statement/dml/InsertStatementContext.java      |  9 ++-
 .../statement/dml/SelectStatementContext.java      | 19 ++++--
 .../statement/dml/UpdateStatementContext.java      | 10 +++-
 .../infra/binder/context/type/WithAvailable.java   | 35 +++++++++++
 .../dataset/encrypt/insert_select_user_table.xml   | 60 -------------------
 .../tbl/batch_insert_all_into_order_table.xml      | 48 ----------------
 .../tbl/batch_insert_into_order_with_select.xml    | 51 ----------------
 .../tbl/insert_into_order_table_with_select.xml    | 50 ----------------
 .../test/resources/cases/dml/e2e-dml-insert.xml    | 18 +-----
 20 files changed, 455 insertions(+), 238 deletions(-)

diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md
index 37de7afcafb..09a98277429 100644
--- a/RELEASE-NOTES.md
+++ b/RELEASE-NOTES.md
@@ -46,6 +46,7 @@
 1. SQL Binder: Support truncate table sql bind and add test case - 
[#34162](https://github.com/apache/shardingsphere/pull/34162)
 1. SQL Binder: Support create view, alter view, drop view sql bind logic - 
[#34167](https://github.com/apache/shardingsphere/pull/34167)
 1. Transaction: Support savepoint/release savepoint TCL statements in jdbc 
adapter -[#34173](https://github.com/apache/shardingsphere/pull/34173)
+1. Kernel: Add WithAvailable interface and encrypt with, combine, insert 
select support checker - 
[#34175](https://github.com/apache/shardingsphere/pull/34175)
 
 ### Bug Fixes
 
diff --git a/docs/document/content/features/encrypt/appendix.cn.md 
b/docs/document/content/features/encrypt/appendix.cn.md
index 43adc4bce47..c1ab43bb03d 100644
--- a/docs/document/content/features/encrypt/appendix.cn.md
+++ b/docs/document/content/features/encrypt/appendix.cn.md
@@ -9,6 +9,8 @@ weight = 3
 - 加密字段无法支持比较操作,如:大于、小于、ORDER BY、BETWEEN 等;
 - 加密字段无法支持计算操作,如:AVG、SUM 以及计算表达式;
 - 不支持子查询中包含加密字段,并且外层投影使用星号的 SQL;
+- 不支持 WITH 语句中包含加密列;
+- 不支持 INSERT SELECT 语句中包含加密列;
 - 不支持 UNION、INTERSECT、EXCEPT 等集合运算语句中包含加密列。
 
 其他:
diff --git a/docs/document/content/features/encrypt/appendix.en.md 
b/docs/document/content/features/encrypt/appendix.en.md
index a729ee62cc4..e347d56a0e4 100644
--- a/docs/document/content/features/encrypt/appendix.en.md
+++ b/docs/document/content/features/encrypt/appendix.en.md
@@ -9,6 +9,8 @@ Unsupported SQL:
 - Comparison operations are not supported for encrypted fields, such as 
GREATER THAN, LESS THAN, ORDER BY, BETWEEN.
 - Calculation operations are not supported for encrypted fields, such as AVG, 
SUM, and computation expressions.
 - SQL that contains encrypt column in subquery and uses asterisks for outer 
projection is not supported.
+- SQL that contains encrypt column in WITH is not supported.
+- SQL that contains encrypt column in INSERT SELECT is not supported.
 - SQL that contains encrypt column in UNION, INTERSECT, and EXCEPT statements 
is not supported.
 
 Other:
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/checker/sql/EncryptSupportedSQLCheckersBuilder.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/checker/sql/EncryptSupportedSQLCheckersBuilder.java
index fce03c66f10..a74b1d0c64d 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/checker/sql/EncryptSupportedSQLCheckersBuilder.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/checker/sql/EncryptSupportedSQLCheckersBuilder.java
@@ -17,10 +17,13 @@
 
 package org.apache.shardingsphere.encrypt.checker.sql;
 
+import 
org.apache.shardingsphere.encrypt.checker.sql.combine.EncryptCombineClauseSupportedChecker;
+import 
org.apache.shardingsphere.encrypt.checker.sql.insert.EncryptInsertSelectSupportedChecker;
 import 
org.apache.shardingsphere.encrypt.checker.sql.orderby.EncryptOrderByItemSupportedChecker;
 import 
org.apache.shardingsphere.encrypt.checker.sql.predicate.EncryptPredicateColumnSupportedChecker;
 import 
org.apache.shardingsphere.encrypt.checker.sql.projection.EncryptInsertSelectProjectionSupportedChecker;
 import 
org.apache.shardingsphere.encrypt.checker.sql.projection.EncryptSelectProjectionSupportedChecker;
+import 
org.apache.shardingsphere.encrypt.checker.sql.with.EncryptWithClauseSupportedChecker;
 import org.apache.shardingsphere.encrypt.constant.EncryptOrder;
 import org.apache.shardingsphere.encrypt.rule.EncryptRule;
 import org.apache.shardingsphere.infra.checker.SupportedSQLChecker;
@@ -40,7 +43,10 @@ public final class EncryptSupportedSQLCheckersBuilder 
implements SupportedSQLChe
                 new EncryptSelectProjectionSupportedChecker(),
                 new EncryptInsertSelectProjectionSupportedChecker(),
                 new EncryptPredicateColumnSupportedChecker(),
-                new EncryptOrderByItemSupportedChecker());
+                new EncryptOrderByItemSupportedChecker(),
+                new EncryptWithClauseSupportedChecker(),
+                new EncryptCombineClauseSupportedChecker(),
+                new EncryptInsertSelectSupportedChecker());
     }
     
     @Override
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/checker/sql/combine/EncryptCombineClauseSupportedChecker.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/checker/sql/combine/EncryptCombineClauseSupportedChecker.java
new file mode 100644
index 00000000000..d1ae2995bfb
--- /dev/null
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/checker/sql/combine/EncryptCombineClauseSupportedChecker.java
@@ -0,0 +1,63 @@
+/*
+ * 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.
+ */
+
+package org.apache.shardingsphere.encrypt.checker.sql.combine;
+
+import 
org.apache.shardingsphere.encrypt.exception.syntax.UnsupportedEncryptSQLException;
+import org.apache.shardingsphere.encrypt.rule.EncryptRule;
+import org.apache.shardingsphere.infra.annotation.HighFrequencyInvocation;
+import 
org.apache.shardingsphere.infra.binder.context.extractor.SQLStatementContextExtractor;
+import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
+import 
org.apache.shardingsphere.infra.binder.context.statement.dml.SelectStatementContext;
+import org.apache.shardingsphere.infra.checker.SupportedSQLChecker;
+import 
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
+import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
+import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
+
+import java.util.Collection;
+
+/**
+ * Combine clause supported checker for encrypt.
+ */
+@HighFrequencyInvocation
+public final class EncryptCombineClauseSupportedChecker implements 
SupportedSQLChecker<SQLStatementContext, EncryptRule> {
+    
+    @Override
+    public boolean isCheck(final SQLStatementContext sqlStatementContext) {
+        if (isContainsCombine(sqlStatementContext)) {
+            return true;
+        }
+        for (SelectStatementContext each : 
SQLStatementContextExtractor.getAllSubqueryContexts(sqlStatementContext)) {
+            if (isContainsCombine(each)) {
+                return true;
+            }
+        }
+        return false;
+    }
+    
+    private static boolean isContainsCombine(final SQLStatementContext 
sqlStatementContext) {
+        return sqlStatementContext instanceof SelectStatementContext && 
((SelectStatementContext) sqlStatementContext).isContainsCombine();
+    }
+    
+    @Override
+    public void check(final EncryptRule rule, final ShardingSphereDatabase 
database, final ShardingSphereSchema currentSchema, final SQLStatementContext 
sqlStatementContext) {
+        Collection<String> tableNames = 
SQLStatementContextExtractor.getTableNames(database, sqlStatementContext);
+        for (String each : tableNames) {
+            
ShardingSpherePreconditions.checkState(!rule.findEncryptTable(each).isPresent(),
 () -> new UnsupportedEncryptSQLException("COMBINE"));
+        }
+    }
+}
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/checker/sql/insert/EncryptInsertSelectSupportedChecker.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/checker/sql/insert/EncryptInsertSelectSupportedChecker.java
new file mode 100644
index 00000000000..a5746d2e3fa
--- /dev/null
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/checker/sql/insert/EncryptInsertSelectSupportedChecker.java
@@ -0,0 +1,51 @@
+/*
+ * 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.
+ */
+
+package org.apache.shardingsphere.encrypt.checker.sql.insert;
+
+import 
org.apache.shardingsphere.encrypt.exception.syntax.UnsupportedEncryptSQLException;
+import org.apache.shardingsphere.encrypt.rule.EncryptRule;
+import org.apache.shardingsphere.infra.annotation.HighFrequencyInvocation;
+import 
org.apache.shardingsphere.infra.binder.context.extractor.SQLStatementContextExtractor;
+import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
+import 
org.apache.shardingsphere.infra.binder.context.statement.dml.InsertStatementContext;
+import org.apache.shardingsphere.infra.checker.SupportedSQLChecker;
+import 
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
+import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
+import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
+
+import java.util.Collection;
+
+/**
+ * Insert select supported checker for encrypt.
+ */
+@HighFrequencyInvocation
+public final class EncryptInsertSelectSupportedChecker implements 
SupportedSQLChecker<InsertStatementContext, EncryptRule> {
+    
+    @Override
+    public boolean isCheck(final SQLStatementContext sqlStatementContext) {
+        return sqlStatementContext instanceof InsertStatementContext && 
((InsertStatementContext) 
sqlStatementContext).getSqlStatement().getInsertSelect().isPresent();
+    }
+    
+    @Override
+    public void check(final EncryptRule rule, final ShardingSphereDatabase 
database, final ShardingSphereSchema currentSchema, final 
InsertStatementContext sqlStatementContext) {
+        Collection<String> tableNames = 
SQLStatementContextExtractor.getTableNames(database, sqlStatementContext);
+        for (String each : tableNames) {
+            
ShardingSpherePreconditions.checkState(!rule.findEncryptTable(each).isPresent(),
 () -> new UnsupportedEncryptSQLException("INSERT ... SELECT ..."));
+        }
+    }
+}
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/checker/sql/with/EncryptWithClauseSupportedChecker.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/checker/sql/with/EncryptWithClauseSupportedChecker.java
new file mode 100644
index 00000000000..7b0687eeaf4
--- /dev/null
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/checker/sql/with/EncryptWithClauseSupportedChecker.java
@@ -0,0 +1,51 @@
+/*
+ * 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.
+ */
+
+package org.apache.shardingsphere.encrypt.checker.sql.with;
+
+import 
org.apache.shardingsphere.encrypt.exception.syntax.UnsupportedEncryptSQLException;
+import org.apache.shardingsphere.encrypt.rule.EncryptRule;
+import org.apache.shardingsphere.infra.annotation.HighFrequencyInvocation;
+import 
org.apache.shardingsphere.infra.binder.context.extractor.SQLStatementContextExtractor;
+import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
+import org.apache.shardingsphere.infra.binder.context.type.WithAvailable;
+import org.apache.shardingsphere.infra.checker.SupportedSQLChecker;
+import 
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
+import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
+import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
+
+import java.util.Collection;
+
+/**
+ * With clause supported checker for encrypt.
+ */
+@HighFrequencyInvocation
+public final class EncryptWithClauseSupportedChecker implements 
SupportedSQLChecker<SQLStatementContext, EncryptRule> {
+    
+    @Override
+    public boolean isCheck(final SQLStatementContext sqlStatementContext) {
+        return sqlStatementContext instanceof WithAvailable && 
((WithAvailable) sqlStatementContext).getWith().isPresent();
+    }
+    
+    @Override
+    public void check(final EncryptRule rule, final ShardingSphereDatabase 
database, final ShardingSphereSchema currentSchema, final SQLStatementContext 
sqlStatementContext) {
+        Collection<String> tableNames = 
SQLStatementContextExtractor.getTableNames(database, sqlStatementContext);
+        for (String each : tableNames) {
+            
ShardingSpherePreconditions.checkState(!rule.findEncryptTable(each).isPresent(),
 () -> new UnsupportedEncryptSQLException("WITH"));
+        }
+    }
+}
diff --git 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/checker/sql/combine/EncryptCombineClauseSupportedCheckerTest.java
 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/checker/sql/combine/EncryptCombineClauseSupportedCheckerTest.java
new file mode 100644
index 00000000000..58b5bbe032d
--- /dev/null
+++ 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/checker/sql/combine/EncryptCombineClauseSupportedCheckerTest.java
@@ -0,0 +1,67 @@
+/*
+ * 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.
+ */
+
+package org.apache.shardingsphere.encrypt.checker.sql.combine;
+
+import 
org.apache.shardingsphere.encrypt.exception.syntax.UnsupportedEncryptSQLException;
+import 
org.apache.shardingsphere.encrypt.rewrite.token.generator.fixture.EncryptGeneratorFixtureBuilder;
+import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
+import 
org.apache.shardingsphere.infra.binder.context.statement.dml.SelectStatementContext;
+import org.junit.jupiter.api.Test;
+
+import java.util.Collections;
+
+import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+class EncryptCombineClauseSupportedCheckerTest {
+    
+    @Test
+    void assertIsCheck() {
+        SelectStatementContext sqlStatementContext = 
mock(SelectStatementContext.class, RETURNS_DEEP_STUBS);
+        when(sqlStatementContext.isContainsCombine()).thenReturn(true);
+        assertTrue(new 
EncryptCombineClauseSupportedChecker().isCheck(sqlStatementContext));
+    }
+    
+    @Test
+    void assertIsCheckWithoutCombineClause() {
+        assertFalse(new 
EncryptCombineClauseSupportedChecker().isCheck(mock(SQLStatementContext.class)));
+    }
+    
+    @Test
+    void assertCheckWithoutEncryptTable() {
+        assertDoesNotThrow(() -> new EncryptCombineClauseSupportedChecker()
+                .check(EncryptGeneratorFixtureBuilder.createEncryptRule(), 
null, null, mockSelectStatementContext("t_order")));
+    }
+    
+    @Test
+    void assertCheckWithEncryptTable() {
+        assertThrows(UnsupportedEncryptSQLException.class, () -> new 
EncryptCombineClauseSupportedChecker()
+                .check(EncryptGeneratorFixtureBuilder.createEncryptRule(), 
null, null, mockSelectStatementContext("t_user")));
+    }
+    
+    private SQLStatementContext mockSelectStatementContext(final String 
tableName) {
+        SelectStatementContext result = mock(SelectStatementContext.class, 
RETURNS_DEEP_STUBS);
+        
when(result.getTablesContext().getTableNames()).thenReturn(Collections.singleton(tableName));
+        return result;
+    }
+}
diff --git 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/checker/sql/insert/EncryptInsertSelectSupportedCheckerTest.java
 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/checker/sql/insert/EncryptInsertSelectSupportedCheckerTest.java
new file mode 100644
index 00000000000..fc3dd9beb83
--- /dev/null
+++ 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/checker/sql/insert/EncryptInsertSelectSupportedCheckerTest.java
@@ -0,0 +1,67 @@
+/*
+ * 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.
+ */
+
+package org.apache.shardingsphere.encrypt.checker.sql.insert;
+
+import 
org.apache.shardingsphere.encrypt.exception.syntax.UnsupportedEncryptSQLException;
+import 
org.apache.shardingsphere.encrypt.rewrite.token.generator.fixture.EncryptGeneratorFixtureBuilder;
+import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
+import 
org.apache.shardingsphere.infra.binder.context.statement.dml.InsertStatementContext;
+import org.junit.jupiter.api.Test;
+
+import java.util.Collections;
+
+import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+class EncryptInsertSelectSupportedCheckerTest {
+    
+    @Test
+    void assertIsCheck() {
+        InsertStatementContext sqlStatementContext = 
mock(InsertStatementContext.class, RETURNS_DEEP_STUBS);
+        
when(sqlStatementContext.getSqlStatement().getInsertSelect().isPresent()).thenReturn(true);
+        assertTrue(new 
EncryptInsertSelectSupportedChecker().isCheck(sqlStatementContext));
+    }
+    
+    @Test
+    void assertIsCheckWithoutCombineClause() {
+        assertFalse(new 
EncryptInsertSelectSupportedChecker().isCheck(mock(SQLStatementContext.class)));
+    }
+    
+    @Test
+    void assertCheckWithoutEncryptTable() {
+        assertDoesNotThrow(() -> new EncryptInsertSelectSupportedChecker()
+                .check(EncryptGeneratorFixtureBuilder.createEncryptRule(), 
null, null, mockInsertStatementContext("t_order")));
+    }
+    
+    @Test
+    void assertCheckWithEncryptTable() {
+        assertThrows(UnsupportedEncryptSQLException.class, () -> new 
EncryptInsertSelectSupportedChecker()
+                .check(EncryptGeneratorFixtureBuilder.createEncryptRule(), 
null, null, mockInsertStatementContext("t_user")));
+    }
+    
+    private InsertStatementContext mockInsertStatementContext(final String 
tableName) {
+        InsertStatementContext result = mock(InsertStatementContext.class, 
RETURNS_DEEP_STUBS);
+        
when(result.getTablesContext().getTableNames()).thenReturn(Collections.singleton(tableName));
+        return result;
+    }
+}
diff --git 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/checker/sql/with/EncryptWithClauseSupportedCheckerTest.java
 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/checker/sql/with/EncryptWithClauseSupportedCheckerTest.java
new file mode 100644
index 00000000000..31489bebfc4
--- /dev/null
+++ 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/checker/sql/with/EncryptWithClauseSupportedCheckerTest.java
@@ -0,0 +1,67 @@
+/*
+ * 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.
+ */
+
+package org.apache.shardingsphere.encrypt.checker.sql.with;
+
+import 
org.apache.shardingsphere.encrypt.exception.syntax.UnsupportedEncryptSQLException;
+import 
org.apache.shardingsphere.encrypt.rewrite.token.generator.fixture.EncryptGeneratorFixtureBuilder;
+import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
+import 
org.apache.shardingsphere.infra.binder.context.statement.dml.SelectStatementContext;
+import org.junit.jupiter.api.Test;
+
+import java.util.Collections;
+
+import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+class EncryptWithClauseSupportedCheckerTest {
+    
+    @Test
+    void assertIsCheck() {
+        SelectStatementContext sqlStatementContext = 
mock(SelectStatementContext.class, RETURNS_DEEP_STUBS);
+        when(sqlStatementContext.getWith().isPresent()).thenReturn(true);
+        assertTrue(new 
EncryptWithClauseSupportedChecker().isCheck(sqlStatementContext));
+    }
+    
+    @Test
+    void assertIsCheckWithoutWithAvailable() {
+        assertFalse(new 
EncryptWithClauseSupportedChecker().isCheck(mock(SQLStatementContext.class)));
+    }
+    
+    @Test
+    void assertCheckWithoutEncryptTable() {
+        assertDoesNotThrow(() -> new EncryptWithClauseSupportedChecker()
+                .check(EncryptGeneratorFixtureBuilder.createEncryptRule(), 
null, null, mockSelectStatementContext("t_order")));
+    }
+    
+    @Test
+    void assertCheckWithEncryptTable() {
+        assertThrows(UnsupportedEncryptSQLException.class, () -> new 
EncryptWithClauseSupportedChecker()
+                .check(EncryptGeneratorFixtureBuilder.createEncryptRule(), 
null, null, mockSelectStatementContext("t_user")));
+    }
+    
+    private SQLStatementContext mockSelectStatementContext(final String 
tableName) {
+        SelectStatementContext result = mock(SelectStatementContext.class, 
RETURNS_DEEP_STUBS);
+        
when(result.getTablesContext().getTableNames()).thenReturn(Collections.singleton(tableName));
+        return result;
+    }
+}
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/DeleteStatementContext.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/DeleteStatementContext.java
index d5a01ab9b1e..a7bdfb95a38 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/DeleteStatementContext.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/DeleteStatementContext.java
@@ -22,25 +22,28 @@ import 
org.apache.shardingsphere.infra.binder.context.segment.table.TablesContex
 import 
org.apache.shardingsphere.infra.binder.context.statement.CommonSQLStatementContext;
 import org.apache.shardingsphere.infra.binder.context.type.TableAvailable;
 import org.apache.shardingsphere.infra.binder.context.type.WhereAvailable;
+import org.apache.shardingsphere.infra.binder.context.type.WithAvailable;
+import 
org.apache.shardingsphere.sql.parser.statement.core.extractor.ColumnExtractor;
+import 
org.apache.shardingsphere.sql.parser.statement.core.extractor.ExpressionExtractor;
 import 
org.apache.shardingsphere.sql.parser.statement.core.extractor.TableExtractor;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.column.ColumnSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.BinaryOperationExpression;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.predicate.WhereSegment;
+import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.WithSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.dml.DeleteStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.core.extractor.ColumnExtractor;
-import 
org.apache.shardingsphere.sql.parser.statement.core.extractor.ExpressionExtractor;
 
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.Map;
+import java.util.Optional;
 
 /**
  * Delete statement context.
  */
 @Getter
-public final class DeleteStatementContext extends CommonSQLStatementContext 
implements TableAvailable, WhereAvailable {
+public final class DeleteStatementContext extends CommonSQLStatementContext 
implements TableAvailable, WhereAvailable, WithAvailable {
     
     private final TablesContext tablesContext;
     
@@ -103,4 +106,9 @@ public final class DeleteStatementContext extends 
CommonSQLStatementContext impl
     public Collection<BinaryOperationExpression> getJoinConditions() {
         return joinConditions;
     }
+    
+    @Override
+    public Optional<WithSegment> getWith() {
+        return getSqlStatement().getWithSegment();
+    }
 }
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/InsertStatementContext.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/InsertStatementContext.java
index 4b8de3e31b5..a2a30fbea34 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/InsertStatementContext.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/InsertStatementContext.java
@@ -29,6 +29,7 @@ import 
org.apache.shardingsphere.infra.binder.context.segment.table.TablesContex
 import 
org.apache.shardingsphere.infra.binder.context.statement.CommonSQLStatementContext;
 import org.apache.shardingsphere.infra.binder.context.type.TableAvailable;
 import org.apache.shardingsphere.infra.binder.context.type.WhereAvailable;
+import org.apache.shardingsphere.infra.binder.context.type.WithAvailable;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeRegistry;
 import 
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
 import 
org.apache.shardingsphere.infra.exception.dialect.exception.syntax.database.NoDatabaseSelectedException;
@@ -48,6 +49,7 @@ import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.Bina
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.ExpressionSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.subquery.SubquerySegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.predicate.WhereSegment;
+import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.WithSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.dml.InsertStatement;
 
@@ -65,7 +67,7 @@ import java.util.concurrent.atomic.AtomicInteger;
 /**
  * Insert SQL statement context.
  */
-public final class InsertStatementContext extends CommonSQLStatementContext 
implements TableAvailable, ParameterAware, WhereAvailable {
+public final class InsertStatementContext extends CommonSQLStatementContext 
implements TableAvailable, ParameterAware, WhereAvailable, WithAvailable {
     
     private final ShardingSphereMetaData metaData;
     
@@ -331,4 +333,9 @@ public final class InsertStatementContext extends 
CommonSQLStatementContext impl
     public Collection<BinaryOperationExpression> getJoinConditions() {
         return null == insertSelectContext ? Collections.emptyList() : 
insertSelectContext.getSelectStatementContext().getJoinConditions();
     }
+    
+    @Override
+    public Optional<WithSegment> getWith() {
+        return getSqlStatement().getWithSegment();
+    }
 }
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/SelectStatementContext.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/SelectStatementContext.java
index 36d9a28221d..45540103877 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/SelectStatementContext.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/SelectStatementContext.java
@@ -40,6 +40,7 @@ import 
org.apache.shardingsphere.infra.binder.context.segment.table.TablesContex
 import 
org.apache.shardingsphere.infra.binder.context.statement.CommonSQLStatementContext;
 import org.apache.shardingsphere.infra.binder.context.type.TableAvailable;
 import org.apache.shardingsphere.infra.binder.context.type.WhereAvailable;
+import org.apache.shardingsphere.infra.binder.context.type.WithAvailable;
 import 
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
 import 
org.apache.shardingsphere.infra.exception.dialect.exception.syntax.database.NoDatabaseSelectedException;
 import 
org.apache.shardingsphere.infra.exception.dialect.exception.syntax.database.UnknownDatabaseException;
@@ -48,6 +49,11 @@ import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.infra.rule.attribute.table.TableMapperRuleAttribute;
 import 
org.apache.shardingsphere.sql.parser.statement.core.enums.ParameterMarkerType;
 import org.apache.shardingsphere.sql.parser.statement.core.enums.SubqueryType;
+import 
org.apache.shardingsphere.sql.parser.statement.core.extractor.ColumnExtractor;
+import 
org.apache.shardingsphere.sql.parser.statement.core.extractor.ExpressionExtractor;
+import 
org.apache.shardingsphere.sql.parser.statement.core.extractor.SubqueryExtractor;
+import 
org.apache.shardingsphere.sql.parser.statement.core.extractor.TableExtractor;
+import 
org.apache.shardingsphere.sql.parser.statement.core.extractor.WhereExtractor;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.column.ColumnSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.BinaryOperationExpression;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.ExpressionSegment;
@@ -59,17 +65,13 @@ import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.order.ite
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.order.item.OrderByItemSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.order.item.TextOrderByItemSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.predicate.WhereSegment;
+import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.WithSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.JoinTableSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SubqueryTableSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.core.extractor.ColumnExtractor;
-import 
org.apache.shardingsphere.sql.parser.statement.core.extractor.ExpressionExtractor;
 import org.apache.shardingsphere.sql.parser.statement.core.util.SQLUtils;
-import 
org.apache.shardingsphere.sql.parser.statement.core.extractor.SubqueryExtractor;
-import 
org.apache.shardingsphere.sql.parser.statement.core.extractor.TableExtractor;
-import 
org.apache.shardingsphere.sql.parser.statement.core.extractor.WhereExtractor;
 import 
org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
 
 import java.util.Collection;
@@ -86,7 +88,7 @@ import java.util.stream.Collectors;
  */
 @Getter
 @Setter
-public final class SelectStatementContext extends CommonSQLStatementContext 
implements TableAvailable, WhereAvailable, ParameterAware {
+public final class SelectStatementContext extends CommonSQLStatementContext 
implements TableAvailable, WhereAvailable, ParameterAware, WithAvailable {
     
     private final TablesContext tablesContext;
     
@@ -419,4 +421,9 @@ public final class SelectStatementContext extends 
CommonSQLStatementContext impl
     public void setUpParameters(final List<Object> params) {
         paginationContext = new 
PaginationContextEngine(getDatabaseType()).createPaginationContext(getSqlStatement(),
 projectionsContext, params, whereSegments);
     }
+    
+    @Override
+    public Optional<WithSegment> getWith() {
+        return getSqlStatement().getWithSegment();
+    }
 }
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/UpdateStatementContext.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/UpdateStatementContext.java
index b8f1ad79bdc..999c576a558 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/UpdateStatementContext.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/UpdateStatementContext.java
@@ -22,23 +22,26 @@ import 
org.apache.shardingsphere.infra.binder.context.segment.table.TablesContex
 import 
org.apache.shardingsphere.infra.binder.context.statement.CommonSQLStatementContext;
 import org.apache.shardingsphere.infra.binder.context.type.TableAvailable;
 import org.apache.shardingsphere.infra.binder.context.type.WhereAvailable;
+import org.apache.shardingsphere.infra.binder.context.type.WithAvailable;
 import 
org.apache.shardingsphere.sql.parser.statement.core.extractor.ColumnExtractor;
 import 
org.apache.shardingsphere.sql.parser.statement.core.extractor.ExpressionExtractor;
 import 
org.apache.shardingsphere.sql.parser.statement.core.extractor.TableExtractor;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.column.ColumnSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.BinaryOperationExpression;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.predicate.WhereSegment;
+import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.WithSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.dml.UpdateStatement;
 
 import java.util.Collection;
 import java.util.LinkedList;
+import java.util.Optional;
 
 /**
  * Update SQL statement context.
  */
 @Getter
-public final class UpdateStatementContext extends CommonSQLStatementContext 
implements TableAvailable, WhereAvailable {
+public final class UpdateStatementContext extends CommonSQLStatementContext 
implements TableAvailable, WhereAvailable, WithAvailable {
     
     private final TablesContext tablesContext;
     
@@ -76,4 +79,9 @@ public final class UpdateStatementContext extends 
CommonSQLStatementContext impl
     public Collection<ColumnSegment> getColumnSegments() {
         return columnSegments;
     }
+    
+    @Override
+    public Optional<WithSegment> getWith() {
+        return getSqlStatement().getWithSegment();
+    }
 }
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/type/WithAvailable.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/type/WithAvailable.java
new file mode 100644
index 00000000000..310c7b1380a
--- /dev/null
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/type/WithAvailable.java
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shardingsphere.infra.binder.context.type;
+
+import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.WithSegment;
+
+import java.util.Optional;
+
+/**
+ * With available.
+ */
+public interface WithAvailable {
+    
+    /**
+     * Get with segement.
+     *
+     * @return with segement
+     */
+    Optional<WithSegment> getWith();
+}
diff --git 
a/test/e2e/sql/src/test/resources/cases/dml/dataset/encrypt/insert_select_user_table.xml
 
b/test/e2e/sql/src/test/resources/cases/dml/dataset/encrypt/insert_select_user_table.xml
deleted file mode 100644
index f6b7dd5e98a..00000000000
--- 
a/test/e2e/sql/src/test/resources/cases/dml/dataset/encrypt/insert_select_user_table.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-<!--
-  ~ 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.t_user">
-        <column name="user_id" type="numeric" />
-        <column name="user_name_cipher" type="varchar" />
-        <column name="user_name_like" type="varchar" />
-        <column name="password_cipher" type="varchar" />
-        <column name="email_cipher" type="varchar" />
-        <column name="user_telephone_cipher" type="varchar" />
-        <column name="user_telephone_like" type="varchar" />
-        <column name="creation_date" type="datetime" />
-    </metadata>
-    <row data-node="encrypt.t_user" values="10, sVq8Lmm+j6bZE5EKSilJEQ==, 
yi`mht`m, aQol0b6th65d0aXe+zFPsQ==, 
WM0fHOH91JNWnHTkiqBdyNmzk4uJ7CCz4mB1va9Ya1M=, kLjLJIMnfyHT2nA+viaoaQ==, 
01454589811, 2017-08-08" />
-    <row data-node="encrypt.t_user" values="11, fQ7IzBxKVuNHtUF6h6WSBg==, 
mhth, wuhmEKgdgrWQYt+Ev0hgGA==, svATu3uWv9KfiloWJeWx3A==, 
0kDFxndQdzauFwL/wyCsNQ==, 01454589810, 2017-08-08" />
-    <row data-node="encrypt.t_user" values="12, AQRWSlufQPog/b64YRhu6Q==, 
x`mhxt, x7A+2jq9B6DSOSFtSOibdA==, nHJv9e6NiClIuGHOjHLvCAq2ZLhWcqfQ8/EQnIqMx+g=, 
a/SzSJLapt5iBXvF2c9ycw==, 01454589811, 2017-08-08" />
-    <row data-node="encrypt.t_user" values="13, 5NqS4YvpT+mHBFqZOZ3QDA==, 
yi`pmht, zi6b4xYRjjV+bBk2R4wB+w==, 
MLBZczLjriUXvg3aM5QPTxMJbLjNh8yeNrSNBek/VTw=, b6VVhG+F6ujG8IMUZJAIFg==, 
01454589814, 2017-08-08" />
-    <row data-node="encrypt.t_user" values="14, qeIY9od3u1KwhjihzLQUTQ==, 
yitph, 51UmlLAC+tUvdOAj8CjWfQ==, JCmeNdPyrKO5BW5zvhAA+g==, 
f995xinpZdKMVU5J5/yv3w==, 01454589815, 2017-08-08" />
-    <row data-node="encrypt.t_user" values="15, VbNUtguwtpeGhHGnPJ3aXg==, 
mha`, +3/5CVbqoKhg3sqznKTFFQ==, T+X+e3Q3+ZNIXXmg/80uxg==, 
GETj+S6DrO042E7NuBXLBQ==, 01454589814, 2017-08-08" />
-    <row data-node="encrypt.t_user" values="16, U0/Ao/w1u7L5avR3fAH2Og==, 
x`mhiht, jFfFMYxv02DjaFRuAoCDGw==, 
RNW/KRq5HeL2YTfAdXSyARMJbLjNh8yeNrSNBek/VTw=, +lbvjJwO7VO4HUKc0Mw0NA==, 
01454589815, 2017-08-08" />
-    <row data-node="encrypt.t_user" values="17, zb1sgBigoMi7JPSoY4bAVw==, 
yite`, VFIjocgjujJCJc6waWXqJA==, 1vF/ET3nBxt7T7vVfAndZQ==, 
wFvs5BH6OikgveBeTEBwsQ==, 01454589818, 2017-08-08" />
-    <row data-node="encrypt.t_user" values="18, rJzNIrFEnx296kW+N1YmMw==, 
ttmdq, LaODSKGyR7vZ1IvmBOe9vA==, 5u4GIQkJsWRmnJHWaHNSjg==, 
uwqm2O1Lv2tNTraJX1ym7Q==, 01454589819, 2017-08-08" />
-    <row data-node="encrypt.t_user" values="19, qHwpQ9kteL8VX6iTUhNdbQ==, 
yiptt`m, MyOShk4kjRnds7CZfU5NCw==, 
HmYCo7QBfJ2E0EvaGHBCOBMJbLjNh8yeNrSNBek/VTw=, YLNQuuUPMGA21nhKWPzzsg==, 
01454589818, 2017-08-08" />
-    <row data-node="encrypt.t_user" values="20, qCCmvf7OWRxbVbtLb0az1g==, upl, 
fzdTMkzpBvgNYmKSQAp8Fg==, gOoP4Mf0P4ISOJp6A4sRmg==, l4xa4HwOfs/jusoJon9Wzw==, 
01454589801, 2017-08-08" />
-    <row data-node="encrypt.t_user" values="21, IYJ1COaRQ0gSjWMC/UAeMg==, 
lpad, 1uEDMeYh2jstbOf6kx/cqw==, tikMAFiQ37u2VgWqUT38Eg==, 
rGpr30UXfczXjCjdvPN+BA==, 01454589800, 2017-08-08" />
-    <row data-node="encrypt.t_user" values="22, 7wvZZ7NVHgk6m1vB/sTC1Q==, 
idqqx, OirN3gvz9uBnrq88nfa1wQ==, T7K/Uz1O2m+3xvB0+c4nGQ==, 
7+fCU+VbQZKgLJXZPTTegA==, 01454589801, 2017-08-08" />
-    <row data-node="encrypt.t_user" values="23, SbVQWl8JbnxflCfGJ7KZdA==, 
i`ldt, hWVVYdkdTUTgm08haeq+tw==, Uk3ju6GteCD1qEHns5ZhKA==, 
DpnV86FZefwBRmIAVBh2gg==, 01454589804, 2017-08-08" />
-    <row data-node="encrypt.t_user" values="24, fx7OfSAYqVpjNa7LoKhXvw==, 
x`ed, N2W9ijAXNkBxhkvJiIwp0A==, lAAGItVLmb1H69++1MDrIA==, 
QrE62wAb8B+2cEPcs4Lm1Q==, 01454589805, 2017-08-08" />
-    <row data-node="encrypt.t_user" values="25, wH3/LdWShD9aCb8eCIm3Tg==, 
qptd, GDixtt6NzPOVv6H0dmov5g==, T1yfJSyVxumZUfkDnmUQxA==, 
iU+AsGczboCRfU+Zr7mcpw==, 01454589804, 2017-08-08" />
-    <row data-node="encrypt.t_user" values="26, GgJQTndbxyBZ2tECS8SmqQ==, 
apti, gLgVFLFIyyKwdQCXaw78Ag==, O+JIn9XZ3yq6RnKElHuqlA==, 
kwYlbu9aF7ndvMTcj8QBSg==, 01454589805, 2017-08-08" />
-    <row data-node="encrypt.t_user" values="27, lv8w8g32kuTXNvSUUypOig==, 
i`dl, 8i0YH2mn6kXSyvBjM5p+Yg==, gqRoJF5S66SvBalc2RCo1A==, 
2ob/3UYqRsZA5VdScnaWxQ==, 01454589808, 2017-08-08" />
-    <row data-node="encrypt.t_user" values="28, P9YCbFvWCIhcS99KyKH2zA==, 
ipqe`m, PRrI4z4FrWwLvcHPx9g4og==, y8q31Jj4PFSyZHiLVIxKEQq2ZLhWcqfQ8/EQnIqMx+g=, 
kDF2za26uOerlNYWYHRT2Q==, 01454589809, 2017-08-08" />
-    <row data-node="encrypt.t_user" values="29, 5wu9XvlJAVtjKijhxt6SQQ==, 
itmhd, O4pgkLgz34N+C4bIUOQVnA==, UH7ihg16J61Np/EYMQnXIA==, 
z2hbJQD4dRkVVITNxAac5Q==, 01454589808, 2017-08-08" />
-    <row data-node="encrypt.t_user" values="30, i50fpEe3j0VOy/Hbfmr5Bg==, 兹卜, 
MyOShk4kjRnds7CZfU5NCw==, WM0fHOH91JNWnHTkiqBdyNmzk4uJ7CCz4mB1va9Ya1M=, 
uRbQGcAhuXmxdIzRsgiy8g==, 09101401454, 2017-08-08" />
-    <row data-node="encrypt.t_user" values="31, wLXX1Gs7zl0PkyJRMIxmCQ==, 兹付, 
fzdTMkzpBvgNYmKSQAp8Fg==, cq1LN85LmWHrEtS4gN/ac9mzk4uJ7CCz4mB1va9Ya1M=, 
jDL+p5OyKQXfQ4H8JpNKJQ==, 09101401454, 2017-08-08" />
-    <row data-node="encrypt.t_user" values="32, 5NNYIZCq4Dxab0uKWXt93A==, 兹咔, 
1uEDMeYh2jstbOf6kx/cqw==, rehTd++DbFy3qYqeDJUjRRMJbLjNh8yeNrSNBek/VTw=, 
60fpnMdKCWeyKzxkdthn2Q==, 09101401454, 2017-08-08" />
-    <row data-node="encrypt.t_user" values="33, 8kgeyqYaHUMq6di5BVt3Ow==, 伴伌, 
OirN3gvz9uBnrq88nfa1wQ==, svATu3uWv9KfiloWJeWx3A==, 60fpnMdKCWeyKzxkdthn2Q==, 
09101401454, 2017-08-08" />
-    <row data-node="encrypt.t_user" values="34, THN1NIcHrqnfvPKR92lAKw==, 伴侁, 
ZSU1lmpj8cugQHD59QxPhQ==, KtMacpLCtRTSl+VeCPYrPwq2ZLhWcqfQ8/EQnIqMx+g=, 
60fpnMdKCWeyKzxkdthn2Q==, 09101401454, 2017-08-08" />
-    <row data-node="encrypt.t_user" values="35, R3tsv8yeGKXz7WXLYfjkPA==, 伈夸噥, 
31jh3gwg1fgDFnd6iYxU+Q==, ZsrMzd0mjJ9H3fxe4UNVfQsU49iKH47f2rb+/uKuo9M=, 
60fpnMdKCWeyKzxkdthn2Q==, 09101401454, 2017-08-08" />
-    <row data-node="encrypt.t_user" values="36, M2hIFm7Z/s4zGd+rPD1USA==, 伈僘噭, 
bO/8ha1eS/H8/3DugjdOAQ==, PyO5yO0W8v5cpLPhqASTHA==, 60fpnMdKCWeyKzxkdthn2Q==, 
09101401454, 2017-08-08" />
-    <row data-node="encrypt.t_user" values="37, aXS0VfnqHIAnOAtDjsF/9Q==, 伈嶱啴, 
bO/8ha1eS/H8/3DugjdOAQ==, fwyOxfHtLxNuSCFmghYiY0qMsgbpjg5UIo3xmJOLGu0=, 
60fpnMdKCWeyKzxkdthn2Q==, 09101401454, 2017-08-08" />
-    <row data-node="encrypt.t_user" values="38, 59/68izQEdnwNSueX1lPAA==, 伈乄, 
ilD/Tk7DUG4+EuznS1bNLg==, 2emhAeiXPr0kHbFrhYlM1dmzk4uJ7CCz4mB1va9Ya1M=, 
60fpnMdKCWeyKzxkdthn2Q==, 09101401454, 2017-08-08" />
-    <row data-node="encrypt.t_user" values="39, fn9LnNltUAOWO0F0iy0+Jw==, 伈妅, 
qe/WdUiSPP1RAsSSuejGJw==, zx2omwIbXHpEJeh8ta7HqQq2ZLhWcqfQ8/EQnIqMx+g=, 
60fpnMdKCWeyKzxkdthn2Q==, 09101401454, 2017-08-08" />
-    <row data-node="encrypt.t_user" values="40, fQ7IzBxKVuNHtUF6h6WSBg==, 
mhth, wuhmEKgdgrWQYt+Ev0hgGA==, svATu3uWv9KfiloWJeWx3A==, 
0kDFxndQdzauFwL/wyCsNQ==, 01454589810, 2017-08-08" />
-</dataset>
diff --git 
a/test/e2e/sql/src/test/resources/cases/dml/dataset/tbl/batch_insert_all_into_order_table.xml
 
b/test/e2e/sql/src/test/resources/cases/dml/dataset/tbl/batch_insert_all_into_order_table.xml
deleted file mode 100644
index 0d828f0bbef..00000000000
--- 
a/test/e2e/sql/src/test/resources/cases/dml/dataset/tbl/batch_insert_all_into_order_table.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<!--
-  ~ 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="tbl.t_order_${0..9}">
-        <column name="order_id" type="numeric" />
-        <column name="user_id" type="numeric" />
-        <column name="status" type="varchar" />
-        <column name="merchant_id" type="numeric" />
-        <column name="remark" type="varchar" />
-        <column name="creation_date" type="datetime" />
-    </metadata>
-    <row data-node="tbl.t_order_0" values="1000, 10, init, 1, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_1" values="1001, 10, init, 2, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_2" values="1002, 10, init, 3, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_3" values="1003, 10, init, 4, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_4" values="1004, 10, init, 5, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_5" values="1005, 10, init, 6, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_6" values="1006, 10, init, 7, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_7" values="1007, 10, init, 8, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_8" values="1008, 10, init, 9, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_9" values="999, 10, insertALL, 1, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_9" values="1009, 10, init, 10, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_0" values="1100, 11, init, 11, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_1" values="1101, 11, init, 12, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_2" values="1102, 11, init, 13, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_3" values="1103, 11, init, 14, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_4" values="1104, 11, init, 15, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_5" values="1105, 11, init, 16, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_6" values="1106, 11, init, 17, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_7" values="1107, 11, init, 18, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_8" values="1108, 11, init, 19, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_9" values="1109, 11, init, 20, test, 
2017-08-08" />
-</dataset>
diff --git 
a/test/e2e/sql/src/test/resources/cases/dml/dataset/tbl/batch_insert_into_order_with_select.xml
 
b/test/e2e/sql/src/test/resources/cases/dml/dataset/tbl/batch_insert_into_order_with_select.xml
deleted file mode 100644
index 2b8e29be71a..00000000000
--- 
a/test/e2e/sql/src/test/resources/cases/dml/dataset/tbl/batch_insert_into_order_with_select.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<!--
-  ~ 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="2">
-    <metadata data-nodes="tbl.t_order_${0..9}">
-        <column name="order_id" type="numeric" />
-        <column name="user_id" type="numeric" />
-        <column name="status" type="varchar" />
-        <column name="merchant_id" type="numeric" />
-        <column name="remark" type="varchar" />
-        <column name="creation_date" type="datetime" />
-    </metadata>
-    <row data-node="tbl.t_order_0" values="1000, 10, init, 1, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_1" values="1, 1, insert, 1, test, 2017-08-08" 
/>
-    <row data-node="tbl.t_order_1" values="1001, 10, init, 2, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_2" values="2, 2, insert, 2, test, 2017-08-08" 
/>
-    <row data-node="tbl.t_order_2" values="1002, 10, init, 3, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_3" values="1003, 10, init, 4, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_4" values="1004, 10, init, 5, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_5" values="1005, 10, init, 6, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_6" values="1006, 10, init, 7, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_7" values="1007, 10, init, 8, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_8" values="1008, 10, init, 9, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_9" values="1009, 10, init, 10, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_0" values="1100, 11, init, 11, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_1" values="1101, 11, init, 12, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_2" values="1102, 11, init, 13, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_3" values="1103, 11, init, 14, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_4" values="1104, 11, init, 15, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_5" values="1105, 11, init, 16, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_6" values="1106, 11, init, 17, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_7" values="1107, 11, init, 18, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_8" values="1108, 11, init, 19, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_8" values="998, 10, insertALL, 1, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_9" values="1109, 11, init, 20, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_9" values="999, 10, insertALL, 1, test, 
2017-08-08" />
-</dataset>
diff --git 
a/test/e2e/sql/src/test/resources/cases/dml/dataset/tbl/insert_into_order_table_with_select.xml
 
b/test/e2e/sql/src/test/resources/cases/dml/dataset/tbl/insert_into_order_table_with_select.xml
deleted file mode 100644
index 829a8182455..00000000000
--- 
a/test/e2e/sql/src/test/resources/cases/dml/dataset/tbl/insert_into_order_table_with_select.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<!--
-  ~ 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="2">
-    <metadata data-nodes="tbl.t_order_${0..9}">
-        <column name="order_id" type="numeric" />
-        <column name="user_id" type="numeric" />
-        <column name="status" type="varchar" />
-        <column name="merchant_id" type="numeric" />
-        <column name="remark" type="varchar" />
-        <column name="creation_date" type="datetime" />
-    </metadata>
-    <row data-node="tbl.t_order_0" values="1000, 10, init, 1, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_1" values="1, 1, insert, 1, test, 2017-08-08" 
/>
-    <row data-node="tbl.t_order_1" values="1001, 10, init, 2, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_2" values="2, 2, insert, 2, test, 2017-08-08" 
/>
-    <row data-node="tbl.t_order_2" values="1002, 10, init, 3, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_3" values="1003, 10, init, 4, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_4" values="1004, 10, init, 5, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_5" values="1005, 10, init, 6, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_6" values="1006, 10, init, 7, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_7" values="1007, 10, init, 8, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_8" values="1008, 10, init, 9, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_9" values="1009, 10, init, 10, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_0" values="1100, 11, init, 11, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_1" values="1101, 11, init, 12, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_2" values="1102, 11, init, 13, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_3" values="1103, 11, init, 14, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_4" values="1104, 11, init, 15, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_5" values="1105, 11, init, 16, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_6" values="1106, 11, init, 17, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_7" values="1107, 11, init, 18, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_8" values="1108, 11, init, 19, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_9" values="1109, 11, init, 20, test, 
2017-08-08" />
-    <row data-node="tbl.t_order_9" values="999, 10, insertALL, 1, test, 
2017-08-08" />
-</dataset>
diff --git a/test/e2e/sql/src/test/resources/cases/dml/e2e-dml-insert.xml 
b/test/e2e/sql/src/test/resources/cases/dml/e2e-dml-insert.xml
index 6e7f7a24d3c..d3a30fe3a08 100644
--- a/test/e2e/sql/src/test/resources/cases/dml/e2e-dml-insert.xml
+++ b/test/e2e/sql/src/test/resources/cases/dml/e2e-dml-insert.xml
@@ -93,26 +93,10 @@
         <assertion parameters="1:int, 1:int, 1:int" 
expected-data-file="insert_with_generate_key_column.xml" />
     </test-case>
     
-    <test-case sql="INSERT ALL INTO t_order (order_id, user_id, status, 
merchant_id, remark, creation_date) VALUES (?, ?, ?, 1, 'test', '2017-08-08') 
SELECT 1 FROM DUAL" db-types="Oracle" scenario-types="tbl">
-        <assertion parameters="999:int, 10:int, insertALL:String" 
expected-data-file="batch_insert_all_into_order_table.xml" />
-    </test-case>
-
-    <test-case sql="INSERT INTO t_order (order_id, user_id, status, 
merchant_id, remark, creation_date) SELECT ?, ?, ?, 1, 'test', '2017-08-08' 
FROM DUAL" db-types="Oracle" scenario-types="tbl">
-        <assertion parameters="999:int, 10:int, insertALL:String" 
expected-data-file="insert_into_order_table_with_select.xml" />
-    </test-case>
-
-    <test-case sql="INSERT INTO t_order (order_id, user_id, status, 
merchant_id, remark, creation_date) (SELECT ?, ?, ?, 1, 'test', '2017-08-08' 
UNION ALL SELECT ?, ?, ?, 1, 'test', '2017-08-08' FROM DUAL)" db-types="Oracle" 
scenario-types="tbl">
-        <assertion parameters="999:int, 10:int, insertALL:String, 998:int, 
10:int, insertALL:String" 
expected-data-file="batch_insert_into_order_with_select.xml" />
-    </test-case>
-    
-    <test-case sql="INSERT INTO t_user (user_id, user_name, password, email, 
telephone, creation_date) SELECT ?, user_name, password, email, telephone, 
creation_date FROM t_user where user_name = ? and user_id = ?" 
scenario-types="encrypt" db-types="MySQL">
-        <assertion parameters="40:int, lisi:String, 11:int" 
expected-data-file="insert_select_user_table.xml" />
-    </test-case>
-    
     <test-case sql="INSERT INTO t_order_item VALUES (?, ?, 1, 1, 
'2017-08-08')" scenario-types="db,tbl,dbtbl_with_readwrite_splitting">
         <assertion parameters="1:int, 1:int" 
expected-data-file="insert_without_generate_key_column.xml" 
expected-generated-key-data-file="insert_without_generate_key_column_generated_key_data.xml"
 />
     </test-case>
-    
+
     <test-case sql="INSERT INTO t_order_item (order_id, user_id, product_id, 
quantity, creation_date) VALUES (?, ?, 1, 1, '2017-08-08')" 
scenario-types="db,tbl,dbtbl_with_readwrite_splitting">
         <assertion parameters="1:int, 1:int" 
expected-data-file="insert_without_generate_key_column.xml" 
expected-generated-key-data-file="insert_without_generate_key_column_generated_key_data.xml"
 />
     </test-case>

Reply via email to