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: 吴伟杰 <[email protected]>
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;

Reply via email to