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

tuichenchuxin 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 b5f8d4e3f12 Refactor AdditionalDMLE2EIT test logic (#28473)
b5f8d4e3f12 is described below

commit b5f8d4e3f1225b0c2aa6829487b2715e46ff15e9
Author: Zhengqiang Duan <[email protected]>
AuthorDate: Wed Sep 20 17:26:58 2023 +0800

    Refactor AdditionalDMLE2EIT test logic (#28473)
---
 .../e2e/engine/type/dml/AdditionalDMLE2EIT.java    | 24 +++++++++++++---------
 1 file changed, 14 insertions(+), 10 deletions(-)

diff --git 
a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/dml/AdditionalDMLE2EIT.java
 
b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/dml/AdditionalDMLE2EIT.java
index c4c8b83df64..8835d4492c9 100644
--- 
a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/dml/AdditionalDMLE2EIT.java
+++ 
b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/dml/AdditionalDMLE2EIT.java
@@ -51,7 +51,7 @@ class AdditionalDMLE2EIT extends BaseDMLE2EIT {
         if (null == testParam.getTestCaseContext()) {
             return;
         }
-        if (isPostgreSQLOrOpenGauss(testParam.getDatabaseType().getType())) {
+        if (isPostgreSQLOrOpenGauss(testParam.getDatabaseType().getType()) || 
isOracleInsertStatement(testParam.getDatabaseType().getType(), 
testParam.getTestCaseContext().getTestCase().getSql())) {
             return;
         }
         SingleE2EContainerComposer containerComposer = new 
SingleE2EContainerComposer(testParam);
@@ -65,6 +65,11 @@ class AdditionalDMLE2EIT extends BaseDMLE2EIT {
         assertDataSet(testParam, containerComposer, actualUpdateCount);
     }
     
+    // TODO support oracle insert statement return auto generated keys
+    private boolean isOracleInsertStatement(final String databaseType, final 
String sql) {
+        return "Oracle".equals(databaseType) && 
sql.toUpperCase().startsWith("INSERT");
+    }
+    
     private boolean isPostgreSQLOrOpenGauss(final String databaseType) {
         return "PostgreSQL".equals(databaseType) || 
"openGauss".equals(databaseType);
     }
@@ -72,7 +77,7 @@ class AdditionalDMLE2EIT extends BaseDMLE2EIT {
     private int executeUpdateForStatementWithAutoGeneratedKeys(final 
AssertionTestParameter testParam,
                                                                final 
SingleE2EContainerComposer containerComposer, final Connection connection) 
throws SQLException {
         try (Statement statement = connection.createStatement()) {
-            int result = 
statement.executeUpdate(String.format(containerComposer.getSQL(), 
containerComposer.getAssertion().getSQLValues().toArray()), 
Statement.RETURN_GENERATED_KEYS);
+            int result = statement.executeUpdate(containerComposer.getSQL(), 
Statement.RETURN_GENERATED_KEYS);
             assertGeneratedKeys(testParam, containerComposer, 
statement.getGeneratedKeys());
             return result;
         }
@@ -112,7 +117,7 @@ class AdditionalDMLE2EIT extends BaseDMLE2EIT {
     
     private int executeUpdateForStatementWithColumnIndexes(final 
SingleE2EContainerComposer containerComposer, final Connection connection) 
throws SQLException {
         try (Statement statement = connection.createStatement()) {
-            return 
statement.executeUpdate(String.format(containerComposer.getSQL(), 
containerComposer.getAssertion().getSQLValues().toArray()), new int[]{1});
+            return statement.executeUpdate(containerComposer.getSQL(), new 
int[]{1});
         }
     }
     
@@ -147,7 +152,7 @@ class AdditionalDMLE2EIT extends BaseDMLE2EIT {
     
     private int executeUpdateForStatementWithColumnNames(final 
SingleE2EContainerComposer containerComposer, final Connection connection) 
throws SQLException {
         try (Statement statement = connection.createStatement()) {
-            return 
statement.executeUpdate(String.format(containerComposer.getSQL(), 
containerComposer.getAssertion().getSQLValues().toArray()));
+            return statement.executeUpdate(containerComposer.getSQL());
         }
     }
     
@@ -184,7 +189,7 @@ class AdditionalDMLE2EIT extends BaseDMLE2EIT {
     
     private int executeForStatementWithoutAutoGeneratedKeys(final 
SingleE2EContainerComposer containerComposer, final Connection connection) 
throws SQLException {
         try (Statement statement = connection.createStatement()) {
-            
assertFalse(statement.execute(String.format(containerComposer.getSQL(), 
containerComposer.getAssertion().getSQLValues().toArray()), 
Statement.NO_GENERATED_KEYS), "Not a DML statement.");
+            assertFalse(statement.execute(containerComposer.getSQL(), 
Statement.NO_GENERATED_KEYS), "Not a DML statement.");
             return statement.getUpdateCount();
         }
     }
@@ -207,7 +212,7 @@ class AdditionalDMLE2EIT extends BaseDMLE2EIT {
         if (null == testParam.getTestCaseContext()) {
             return;
         }
-        if (isPostgreSQLOrOpenGauss(testParam.getDatabaseType().getType())) {
+        if (isPostgreSQLOrOpenGauss(testParam.getDatabaseType().getType()) || 
isOracleInsertStatement(testParam.getDatabaseType().getType(), 
testParam.getTestCaseContext().getTestCase().getSql())) {
             return;
         }
         SingleE2EContainerComposer containerComposer = new 
SingleE2EContainerComposer(testParam);
@@ -224,8 +229,7 @@ class AdditionalDMLE2EIT extends BaseDMLE2EIT {
     private int executeForStatementWithAutoGeneratedKeys(final 
AssertionTestParameter testParam,
                                                          final 
SingleE2EContainerComposer containerComposer, final Connection connection) 
throws SQLException {
         try (Statement statement = connection.createStatement()) {
-            assertFalse(statement.execute(
-                    String.format(containerComposer.getSQL(), 
containerComposer.getAssertion().getSQLValues().toArray()), 
Statement.RETURN_GENERATED_KEYS), "Not a DML statement.");
+            assertFalse(statement.execute(containerComposer.getSQL(), 
Statement.RETURN_GENERATED_KEYS), "Not a DML statement.");
             assertGeneratedKeys(testParam, containerComposer, 
statement.getGeneratedKeys());
             return statement.getUpdateCount();
         }
@@ -265,7 +269,7 @@ class AdditionalDMLE2EIT extends BaseDMLE2EIT {
     
     private int executeForStatementWithColumnIndexes(final 
SingleE2EContainerComposer containerComposer, final Connection connection) 
throws SQLException {
         try (Statement statement = connection.createStatement()) {
-            
assertFalse(statement.execute(String.format(containerComposer.getSQL(), 
containerComposer.getAssertion().getSQLValues().toArray()), new int[]{1}), "Not 
a DML statement.");
+            assertFalse(statement.execute(containerComposer.getSQL(), new 
int[]{1}), "Not a DML statement.");
             return statement.getUpdateCount();
         }
     }
@@ -302,7 +306,7 @@ class AdditionalDMLE2EIT extends BaseDMLE2EIT {
     
     private int executeForStatementWithColumnNames(final 
SingleE2EContainerComposer containerComposer, final Connection connection) 
throws SQLException {
         try (Statement statement = connection.createStatement()) {
-            
assertFalse(statement.execute(String.format(containerComposer.getSQL(), 
containerComposer.getAssertion().getSQLValues().toArray()), new 
String[]{"TODO"}), "Not a DML statement.");
+            assertFalse(statement.execute(containerComposer.getSQL(), new 
String[]{"TODO"}), "Not a DML statement.");
             return statement.getUpdateCount();
         }
     }

Reply via email to