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 784fdfef8ce Fix sonar issue. (#25839)
784fdfef8ce is described below

commit 784fdfef8ceca41f008480b814e73b46cf9d83fd
Author: Chuxin Chen <[email protected]>
AuthorDate: Mon May 22 16:45:41 2023 +0800

    Fix sonar issue. (#25839)
---
 .../ddlgenerator/AbstractPostgreSQLDDLAdapter.java | 28 +++++++++++++++++++---
 .../PostgreSQLConstraintsPropertiesAppender.java   |  9 +++----
 .../PostgreSQLTablePropertiesLoader.java           | 15 ++++--------
 3 files changed, 32 insertions(+), 20 deletions(-)

diff --git 
a/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ddlgenerator/AbstractPostgreSQLDDLAdapter.java
 
b/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ddlgenerator/AbstractPostgreSQLDDLAdapter.java
index 2bf9d448867..c09068c4de4 100644
--- 
a/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ddlgenerator/AbstractPostgreSQLDDLAdapter.java
+++ 
b/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ddlgenerator/AbstractPostgreSQLDDLAdapter.java
@@ -20,8 +20,8 @@ package 
org.apache.shardingsphere.data.pipeline.postgresql.ddlgenerator;
 import lombok.AccessLevel;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
-import lombok.SneakyThrows;
 import 
org.apache.shardingsphere.data.pipeline.postgresql.util.PostgreSQLPipelineFreemarkerManager;
+import 
org.apache.shardingsphere.infra.util.exception.external.sql.type.wrapper.SQLWrapperException;
 
 import java.sql.Array;
 import java.sql.Connection;
@@ -51,16 +51,17 @@ public abstract class AbstractPostgreSQLDDLAdapter {
     
     private final int minorVersion;
     
-    @SneakyThrows(SQLException.class)
     protected Collection<Map<String, Object>> executeByTemplate(final 
Map<String, Object> params, final String path) {
         try (
                 Statement statement = connection.createStatement();
                 ResultSet resultSet = 
statement.executeQuery(PostgreSQLPipelineFreemarkerManager.getSQLByVersion(params,
 path, majorVersion, minorVersion))) {
             return getRows(resultSet);
+        } catch (final SQLException ex) {
+            throw new SQLWrapperException(ex);
         }
     }
     
-    protected Collection<Map<String, Object>> getRows(final ResultSet 
resultSet) throws SQLException {
+    private Collection<Map<String, Object>> getRows(final ResultSet resultSet) 
throws SQLException {
         ResultSetMetaData metaData = resultSet.getMetaData();
         Collection<Map<String, Object>> result = new LinkedList<>();
         while (resultSet.next()) {
@@ -73,6 +74,27 @@ public abstract class AbstractPostgreSQLDDLAdapter {
         return result;
     }
     
+    protected Map<String, Object> executeByTemplateForSingleRow(final 
Map<String, Object> params, final String path) {
+        try (
+                Statement statement = connection.createStatement();
+                ResultSet resultSet = 
statement.executeQuery(PostgreSQLPipelineFreemarkerManager.getSQLByVersion(params,
 path, majorVersion, minorVersion))) {
+            return getSingleRow(resultSet);
+        } catch (final SQLException ex) {
+            throw new SQLWrapperException(ex);
+        }
+    }
+    
+    private Map<String, Object> getSingleRow(final ResultSet resultSet) throws 
SQLException {
+        ResultSetMetaData metaData = resultSet.getMetaData();
+        Map<String, Object> result = new LinkedHashMap<>();
+        if (resultSet.next()) {
+            for (int i = 1; i <= metaData.getColumnCount(); i++) {
+                result.put(metaData.getColumnName(i), resultSet.getObject(i));
+            }
+        }
+        return result;
+    }
+    
     protected void formatSecurityLabels(final Map<String, Object> data) throws 
SQLException {
         if (null == data.get("seclabels")) {
             return;
diff --git 
a/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ddlgenerator/PostgreSQLConstraintsPropertiesAppender.java
 
b/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ddlgenerator/PostgreSQLConstraintsPropertiesAppender.java
index de3f8a23871..4ede2a9d1d0 100644
--- 
a/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ddlgenerator/PostgreSQLConstraintsPropertiesAppender.java
+++ 
b/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ddlgenerator/PostgreSQLConstraintsPropertiesAppender.java
@@ -200,12 +200,9 @@ public final class PostgreSQLConstraintsPropertiesAppender 
extends AbstractPostg
     private void setRemoteName(final Map<String, Object> foreignKey, final 
Collection<Map<String, Object>> columns) {
         Map<String, Object> params = new HashMap<>();
         params.put("tid", columns.iterator().next().get("references"));
-        Collection<Map<String, Object>> parents = executeByTemplate(params, 
"component/foreign_key/%s/get_parent.ftl");
-        for (Map<String, Object> each : parents) {
-            foreignKey.put("remote_schema", each.get("schema"));
-            foreignKey.put("remote_table", each.get("table"));
-            break;
-        }
+        Map<String, Object> parents = executeByTemplateForSingleRow(params, 
"component/foreign_key/%s/get_parent.ftl");
+        foreignKey.put("remote_schema", parents.get("schema"));
+        foreignKey.put("remote_table", parents.get("table"));
     }
     
     private Collection<Map<String, Object>> getForeignKeysCols(final Long tid, 
final Map<String, Object> foreignKeyProps) {
diff --git 
a/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ddlgenerator/PostgreSQLTablePropertiesLoader.java
 
b/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ddlgenerator/PostgreSQLTablePropertiesLoader.java
index 3f5f3ef1583..8839100883d 100644
--- 
a/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ddlgenerator/PostgreSQLTablePropertiesLoader.java
+++ 
b/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ddlgenerator/PostgreSQLTablePropertiesLoader.java
@@ -57,24 +57,24 @@ public final class PostgreSQLTablePropertiesLoader extends 
AbstractPostgreSQLDDL
     private void fetchDataBaseId(final Map<String, Object> context) throws 
SQLException {
         Map<String, Object> params = new LinkedHashMap<>();
         params.put("databaseName", getConnection().getCatalog());
-        appendFirstRow(executeByTemplate(params, 
"component/table/%s/get_database_id.ftl"), context);
+        context.putAll(executeByTemplateForSingleRow(params, 
"component/table/%s/get_database_id.ftl"));
     }
     
     private void fetchTableId(final Map<String, Object> context) {
         Map<String, Object> params = new LinkedHashMap<>();
         params.put("schemaName", schemaName);
         params.put("tableName", tableName);
-        appendFirstRow(executeByTemplate(params, 
"component/table/%s/get_table_id.ftl"), context);
+        context.putAll(executeByTemplateForSingleRow(params, 
"component/table/%s/get_table_id.ftl"));
     }
     
     private void fetchSchemaId(final Map<String, Object> context) {
         Map<String, Object> params = new LinkedHashMap<>();
         params.put("schemaName", schemaName);
-        appendFirstRow(executeByTemplate(params, 
"component/table/%s/get_schema_id.ftl"), context);
+        context.putAll(executeByTemplateForSingleRow(params, 
"component/table/%s/get_schema_id.ftl"));
     }
     
     private void fetchTableProperties(final Map<String, Object> context) 
throws SQLException {
-        appendFirstRow(executeByTemplate(context, 
"component/table/%s/properties.ftl"), context);
+        context.putAll(executeByTemplateForSingleRow(context, 
"component/table/%s/properties.ftl"));
         updateAutovacuumProperties(context);
         checkRlspolicySupport(context);
         formatSecurityLabels(context);
@@ -136,11 +136,4 @@ public final class PostgreSQLTablePropertiesLoader extends 
AbstractPostgreSQLDDL
         }
         return false;
     }
-    
-    private void appendFirstRow(final Collection<Map<String, Object>> rows, 
final Map<String, Object> context) {
-        for (Map<String, Object> each : rows) {
-            context.putAll(each);
-            break;
-        }
-    }
 }

Reply via email to