You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by su...@apache.org on 2023/05/17 08:52:33 UTC
[shardingsphere] branch master updated: Extract assignments out of expression (#25732)
This is an automated email from the ASF dual-hosted git repository.
sunnianjun 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 75ef0266528 Extract assignments out of expression (#25732)
75ef0266528 is described below
commit 75ef026652822c7813eaf18cdd14bce871517e2d
Author: 吴伟杰 <wu...@apache.org>
AuthorDate: Wed May 17 16:52:25 2023 +0800
Extract assignments out of expression (#25732)
* Extract assignment out of expr in ShardingSpherePreparedStatement
* Extract assignment out of expr in PostgreSQLAggregatedCommandPacket
* Extract assignment out of expr in ShardingRouteCacheableChecker
---
.../extended/PostgreSQLAggregatedCommandPacket.java | 3 ++-
.../cache/checker/ShardingRouteCacheableChecker.java | 17 ++++++++++-------
.../core/statement/ShardingSpherePreparedStatement.java | 10 ++++++----
3 files changed, 18 insertions(+), 12 deletions(-)
diff --git a/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/PostgreSQLAggregatedCommandPacket.java b/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/PostgreSQLAggregatedCommandPacket.java
index a5cbb79f226..8e9ab0de2d3 100644
--- a/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/PostgreSQLAggregatedCommandPacket.java
+++ b/db-protocol/postgresql/src/main/java/org/apache/shardingsphere/db/protocol/postgresql/packet/command/query/extended/PostgreSQLAggregatedCommandPacket.java
@@ -94,7 +94,8 @@ public final class PostgreSQLAggregatedCommandPacket extends PostgreSQLCommandPa
}
this.firstBindIndex = firstBindIndex;
this.lastExecuteIndex = lastExecuteIndex;
- if (this.containsBatchedStatements = firstStatementBindTimes == firstStatementExecuteTimes && firstStatementBindTimes >= 3) {
+ containsBatchedStatements = firstStatementBindTimes == firstStatementExecuteTimes && firstStatementBindTimes >= 3;
+ if (containsBatchedStatements) {
ensureRandomAccessible(packets);
}
}
diff --git a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/cache/checker/ShardingRouteCacheableChecker.java b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/cache/checker/ShardingRouteCacheableChecker.java
index 31eb67b43be..d4b62020bfd 100644
--- a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/cache/checker/ShardingRouteCacheableChecker.java
+++ b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/cache/checker/ShardingRouteCacheableChecker.java
@@ -118,11 +118,12 @@ public final class ShardingRouteCacheableChecker {
private ShardingRouteCacheableCheckResult checkInsertCacheable(final InsertStatementContext statementContext, final List<Object> params, final ShardingSphereDatabase database) {
Collection<String> tableNames = statementContext.getTablesContext().getTableNames();
- boolean isShardingTable;
if (1 != tableNames.size() || null != statementContext.getInsertSelectContext() || null != statementContext.getOnDuplicateKeyUpdateValueContext()
- || statementContext.getGeneratedKeyContext().map(GeneratedKeyContext::isGenerated).orElse(false)
- || (isShardingTable = shardingRule.isAllShardingTables(tableNames)) && containsNonCacheableShardingAlgorithm(tableNames)
- || !isShardingTable && !shardingRule.isAllBroadcastTables(tableNames)) {
+ || statementContext.getGeneratedKeyContext().map(GeneratedKeyContext::isGenerated).orElse(false)) {
+ return new ShardingRouteCacheableCheckResult(false, Collections.emptyList());
+ }
+ boolean isShardingTable = shardingRule.isAllShardingTables(tableNames);
+ if (isShardingTable && containsNonCacheableShardingAlgorithm(tableNames) || !isShardingTable && !shardingRule.isAllBroadcastTables(tableNames)) {
return new ShardingRouteCacheableCheckResult(false, Collections.emptyList());
}
Collection<InsertValuesSegment> values = statementContext.getSqlStatement().getValues();
@@ -145,9 +146,11 @@ public final class ShardingRouteCacheableChecker {
private ShardingRouteCacheableCheckResult checkUpdateOrDeleteCacheable(final SQLStatementContext statementContext, final List<Object> params, final ShardingSphereDatabase database) {
Collection<String> tableNames = statementContext.getTablesContext().getTableNames();
- boolean isShardingTable;
- if (1 != tableNames.size() || (isShardingTable = shardingRule.isAllShardingTables(tableNames)) && containsNonCacheableShardingAlgorithm(tableNames)
- || !isShardingTable && !shardingRule.isAllBroadcastTables(tableNames)) {
+ if (1 != tableNames.size()) {
+ return new ShardingRouteCacheableCheckResult(false, Collections.emptyList());
+ }
+ boolean isShardingTable = shardingRule.isAllShardingTables(tableNames);
+ if (isShardingTable && containsNonCacheableShardingAlgorithm(tableNames) || !isShardingTable && !shardingRule.isAllBroadcastTables(tableNames)) {
return new ShardingRouteCacheableCheckResult(false, Collections.emptyList());
}
List<ShardingCondition> shardingConditions = new WhereClauseShardingConditionEngine(database, shardingRule, timeServiceRule).createShardingConditions(statementContext, params);
diff --git a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
index 493b34088fc..704167d98c3 100644
--- a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
+++ b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
@@ -268,8 +268,9 @@ public final class ShardingSpherePreparedStatement extends AbstractPreparedState
List<QueryResult> queryResults = executeQuery0();
MergedResult mergedResult = mergeQuery(queryResults);
List<ResultSet> resultSets = getResultSets();
- Map<String, Integer> columnLabelAndIndexMap = null != this.columnLabelAndIndexMap ? this.columnLabelAndIndexMap
- : (this.columnLabelAndIndexMap = ShardingSphereResultSetUtils.createColumnLabelAndIndexMap(sqlStatementContext, resultSets.get(0).getMetaData()));
+ if (null == columnLabelAndIndexMap) {
+ columnLabelAndIndexMap = ShardingSphereResultSetUtils.createColumnLabelAndIndexMap(sqlStatementContext, resultSets.get(0).getMetaData());
+ }
result = new ShardingSphereResultSet(resultSets, mergedResult, this, transparentStatement, executionContext, columnLabelAndIndexMap);
// CHECKSTYLE:OFF
} catch (final Exception ex) {
@@ -547,8 +548,9 @@ public final class ShardingSpherePreparedStatement extends AbstractPreparedState
return currentResultSet;
}
MergedResult mergedResult = mergeQuery(getQueryResults(resultSets));
- Map<String, Integer> columnLabelAndIndexMap = null != this.columnLabelAndIndexMap ? this.columnLabelAndIndexMap
- : (this.columnLabelAndIndexMap = ShardingSphereResultSetUtils.createColumnLabelAndIndexMap(sqlStatementContext, resultSets.get(0).getMetaData()));
+ if (null == columnLabelAndIndexMap) {
+ columnLabelAndIndexMap = ShardingSphereResultSetUtils.createColumnLabelAndIndexMap(sqlStatementContext, resultSets.get(0).getMetaData());
+ }
currentResultSet = new ShardingSphereResultSet(resultSets, mergedResult, this, transparentStatement, executionContext, columnLabelAndIndexMap);
}
return currentResultSet;