This is an automated email from the ASF dual-hosted git repository.
yx9o 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 0d95caf0da5 Fix sonar issues (#28560)
0d95caf0da5 is described below
commit 0d95caf0da5e702a064c8f7e600a4670990ca621
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Sep 24 00:25:16 2023 +0800
Fix sonar issues (#28560)
* Refactor ShardingRule
* Fix sonar issue on ShardingIndexReviser
* Fix sonar issue on MySQLComStmtPrepareExecutor
* For code format
---
.../metadata/reviser/index/ShardingIndexReviser.java | 13 ++++++-------
.../shardingsphere/sharding/rule/ShardingRule.java | 18 +++++++++---------
.../binary/prepare/MySQLComStmtPrepareExecutor.java | 7 +++----
3 files changed, 18 insertions(+), 20 deletions(-)
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/metadata/reviser/index/ShardingIndexReviser.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/metadata/reviser/index/ShardingIndexReviser.java
index 00c6b9e86b3..676050cc7b1 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/metadata/reviser/index/ShardingIndexReviser.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/metadata/reviser/index/ShardingIndexReviser.java
@@ -19,7 +19,6 @@ package
org.apache.shardingsphere.sharding.metadata.reviser.index;
import lombok.RequiredArgsConstructor;
import
org.apache.shardingsphere.infra.database.core.metadata.data.model.IndexMetaData;
-import org.apache.shardingsphere.infra.datanode.DataNode;
import
org.apache.shardingsphere.infra.metadata.database.schema.reviser.index.IndexReviser;
import org.apache.shardingsphere.sharding.rule.ShardingRule;
import org.apache.shardingsphere.sharding.rule.TableRule;
@@ -36,13 +35,13 @@ public final class ShardingIndexReviser implements
IndexReviser<ShardingRule> {
@Override
public Optional<IndexMetaData> revise(final String tableName, final
IndexMetaData originalMetaData, final ShardingRule rule) {
- for (DataNode each : tableRule.getActualDataNodes()) {
- IndexMetaData result = new
IndexMetaData(getLogicIndex(originalMetaData.getName(), each.getTableName()));
- result.getColumns().addAll(originalMetaData.getColumns());
- result.setUnique(originalMetaData.isUnique());
- return Optional.of(result);
+ if (tableRule.getActualDataNodes().isEmpty()) {
+ return Optional.empty();
}
- return Optional.empty();
+ IndexMetaData result = new
IndexMetaData(getLogicIndex(originalMetaData.getName(),
tableRule.getActualDataNodes().iterator().next().getTableName()));
+ result.getColumns().addAll(originalMetaData.getColumns());
+ result.setUnique(originalMetaData.isUnique());
+ return Optional.of(result);
}
private String getLogicIndex(final String actualIndexName, final String
actualTableName) {
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java
index cd35c79d082..2b38f3e591e 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java
@@ -692,6 +692,15 @@ public final class ShardingRule implements DatabaseRule,
DataNodeContainedRule,
.orElseGet(Collections::emptyMap);
}
+ /**
+ * Is sharding cache enabled.
+ *
+ * @return is sharding cache enabled
+ */
+ public boolean isShardingCacheEnabled() {
+ return null != shardingCache;
+ }
+
@Override
public Map<String, Collection<DataNode>> getAllDataNodes() {
return shardingTableDataNodes;
@@ -784,13 +793,4 @@ public final class ShardingRule implements DatabaseRule,
DataNodeContainedRule,
BinaryOperationExpression binaryExpression =
(BinaryOperationExpression) expression;
return binaryExpression.getLeft() instanceof ColumnSegment &&
binaryExpression.getRight() instanceof ColumnSegment &&
"=".equals(binaryExpression.getOperator());
}
-
- /**
- * Is sharding cache enabled.
- *
- * @return is sharding cache enabled
- */
- public boolean isShardingCacheEnabled() {
- return null != shardingCache;
- }
}
diff --git
a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/prepare/MySQLComStmtPrepareExecutor.java
b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/prepare/MySQLComStmtPrepareExecutor.java
index 70ff9f74e08..1c6d7989936 100644
---
a/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/prepare/MySQLComStmtPrepareExecutor.java
+++
b/proxy/frontend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/prepare/MySQLComStmtPrepareExecutor.java
@@ -56,7 +56,6 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.LinkedList;
-import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.concurrent.CopyOnWriteArrayList;
@@ -99,7 +98,7 @@ public final class MySQLComStmtPrepareExecutor implements
CommandExecutor {
private Collection<DatabasePacket> createPackets(final SQLStatementContext
sqlStatementContext, final int statementId, final MySQLServerPreparedStatement
serverPreparedStatement) {
Collection<DatabasePacket> result = new LinkedList<>();
- List<Projection> projections = getProjections(sqlStatementContext);
+ Collection<Projection> projections =
getProjections(sqlStatementContext);
int parameterCount =
sqlStatementContext.getSqlStatement().getParameterCount();
result.add(new MySQLComStmtPrepareOKPacket(statementId,
projections.size(), parameterCount, 0));
int characterSet =
connectionSession.getAttributeMap().attr(MySQLConstants.MYSQL_CHARACTER_SET_ATTRIBUTE_KEY).get().getId();
@@ -108,14 +107,14 @@ public final class MySQLComStmtPrepareExecutor implements
CommandExecutor {
result.addAll(createParameterColumnDefinition41Packets(sqlStatementContext,
characterSet, serverPreparedStatement));
result.add(new MySQLEofPacket(statusFlags));
}
- if (!projections.isEmpty()) {
+ if (!projections.isEmpty() && sqlStatementContext instanceof
SelectStatementContext) {
result.addAll(createProjectionColumnDefinition41Packets((SelectStatementContext)
sqlStatementContext, characterSet));
result.add(new MySQLEofPacket(statusFlags));
}
return result;
}
- private List<Projection> getProjections(final SQLStatementContext
sqlStatementContext) {
+ private Collection<Projection> getProjections(final SQLStatementContext
sqlStatementContext) {
return sqlStatementContext instanceof SelectStatementContext ?
((SelectStatementContext)
sqlStatementContext).getProjectionsContext().getExpandProjections() :
Collections.emptyList();
}