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

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


The following commit(s) were added to refs/heads/master by this push:
     new ec218d4  Batch insert return id (#10651)
ec218d4 is described below

commit ec218d434ba236fe6ff58d947c618c7e7a6f6f81
Author: zhaojinchao <[email protected]>
AuthorDate: Fri Jul 2 09:25:59 2021 +0800

    Batch insert return id (#10651)
    
    * load auto generate
    
    * remove import
    
    * modify test
    
    * modify ut
    
    * remove pasword
    
    * reset password
    
    * close statement
    
    * add Statement.RETURN_GENERATED_KEYS add ut
    
    Co-authored-by: zhaojinchao <[email protected]>
---
 .../schema/builder/loader/ColumnMetaDataLoader.java        | 12 +++++-------
 .../jdbc/core/statement/EncryptPreparedStatementTest.java  | 14 +++++++++++++-
 2 files changed, 18 insertions(+), 8 deletions(-)

diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/ColumnMetaDataLoader.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/ColumnMetaDataLoader.java
index 9d961c8..3055fa7 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/ColumnMetaDataLoader.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/ColumnMetaDataLoader.java
@@ -49,7 +49,7 @@ public final class ColumnMetaDataLoader {
     
     /**
      * Load column meta data list.
-     * 
+     *
      * @param connection connection
      * @param tableNamePattern table name pattern
      * @param databaseType database type
@@ -77,14 +77,12 @@ public final class ColumnMetaDataLoader {
             }
         }
         try (Statement statement = connection.createStatement(); ResultSet 
resultSet = statement.executeQuery(generateEmptyResultSQL(tableNamePattern, 
databaseType))) {
-            for (String each : columnNames) {
-                
isCaseSensitives.add(resultSet.getMetaData().isCaseSensitive(resultSet.findColumn(each)));
+            for (int i = 0; i < columnNames.size(); i++) {
+                
isCaseSensitives.add(resultSet.getMetaData().isCaseSensitive(resultSet.findColumn(columnNames.get(i))));
+                result.add(new ColumnMetaData(columnNames.get(i), 
columnTypes.get(i), isPrimaryKeys.get(i),
+                        resultSet.getMetaData().isAutoIncrement(i + 1), 
isCaseSensitives.get(i)));
             }
         }
-        for (int i = 0; i < columnNames.size(); i++) {
-            // TODO load auto generated from database meta data
-            result.add(new ColumnMetaData(columnNames.get(i), 
columnTypes.get(i), isPrimaryKeys.get(i), false, isCaseSensitives.get(i)));
-        }
         return result;
     }
     
diff --git 
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/statement/EncryptPreparedStatementTest.java
 
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/statement/EncryptPreparedStatementTest.java
index af3de74..34ec176 100644
--- 
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/statement/EncryptPreparedStatementTest.java
+++ 
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/statement/EncryptPreparedStatementTest.java
@@ -95,6 +95,18 @@ public final class EncryptPreparedStatementTest extends 
AbstractShardingSphereDa
     }
     
     @Test
+    public void assertInsertWithBatchExecuteWithGeneratedKeys() throws 
SQLException {
+        try (PreparedStatement statement = 
getEncryptConnection().prepareStatement(INSERT_GENERATED_KEY_SQL, 
Statement.RETURN_GENERATED_KEYS)) {
+            statement.setObject(1, 'b');
+            statement.addBatch();
+            statement.setObject(1, 'c');
+            statement.addBatch();
+            statement.executeBatch();
+        }
+        assertResultSet(3, 2, "encryptValue", "assistedEncryptValue");
+    }
+    
+    @Test
     public void assertDeleteWithExecute() throws SQLException {
         try (PreparedStatement statement = 
getEncryptConnection().prepareStatement(DELETE_SQL)) {
             statement.setObject(1, 'a');
@@ -219,7 +231,7 @@ public final class EncryptPreparedStatementTest extends 
AbstractShardingSphereDa
             assertThat(metaData.getColumnCount(), is(3));
             for (int i = 0; i < metaData.getColumnCount(); i++) {
                 assertThat(metaData.getColumnLabel(1), is("id"));
-                assertThat(metaData.getColumnLabel(2), is("plain_pwd")); 
+                assertThat(metaData.getColumnLabel(2), is("plain_pwd"));
                 assertThat(metaData.getColumnLabel(3), is("plain_pwd2"));
             }
         }

Reply via email to