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;
- }
- }
}