From 963de3315f35f3c08162e3a6e3e7f1593387ef61 Mon Sep 17 00:00:00 2001 From: terrymanu Date: Tue, 24 Jul 2018 00:39:12 +0800 Subject: [PATCH] refactor SQLPacketsBackendHandler --- .../proxy/backend/common/SQLPacketsBackendHandler.java | 9 +++------ .../proxy/backend/common/jdbc/JDBCBackendHandler.java | 6 +----- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/common/SQLPacketsBackendHandler.java b/sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/common/SQLPacketsBackendHandler.java index ce56edeaef..1adc65732d 100644 --- a/sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/common/SQLPacketsBackendHandler.java +++ b/sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/common/SQLPacketsBackendHandler.java @@ -53,6 +53,7 @@ import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; @@ -72,8 +73,6 @@ public final class SQLPacketsBackendHandler implements BackendHandler { private final DatabaseType databaseType; - private boolean isMerged; - private boolean hasMoreResultValueFlag; private final Map> channelsMap = Maps.newHashMap(); @@ -91,7 +90,6 @@ public final class SQLPacketsBackendHandler implements BackendHandler { public SQLPacketsBackendHandler(final CommandPacketRebuilder rebuilder, final DatabaseType databaseType) { this.rebuilder = rebuilder; this.databaseType = databaseType; - isMerged = false; hasMoreResultValueFlag = true; ruleRegistry = RuleRegistry.getInstance(); } @@ -197,7 +195,6 @@ public final class SQLPacketsBackendHandler implements BackendHandler { try { mergedResult = MergeEngineFactory.newInstance(ruleRegistry.getShardingRule(), queryResults, sqlStatement, ruleRegistry.getShardingMetaData()).merge(); - isMerged = true; } catch (final SQLException ex) { return new CommandResponsePackets(new ErrPacket(1, ex)); } @@ -206,8 +203,8 @@ public final class SQLPacketsBackendHandler implements BackendHandler { @Override public boolean hasMoreResultValue() throws SQLException { - if (!isMerged || !hasMoreResultValueFlag) { - for (Map.Entry> entry : channelsMap.entrySet()) { + if (null == mergedResult || !hasMoreResultValueFlag) { + for (Entry> entry : channelsMap.entrySet()) { for (Channel each : entry.getValue()) { ShardingProxyClient.getInstance().getPoolMap().get(entry.getKey()).release(each); } diff --git a/sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/common/jdbc/JDBCBackendHandler.java b/sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/common/jdbc/JDBCBackendHandler.java index 7ec483fee8..bc6cec451f 100644 --- a/sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/common/jdbc/JDBCBackendHandler.java +++ b/sharding-proxy/src/main/java/io/shardingsphere/proxy/backend/common/jdbc/JDBCBackendHandler.java @@ -72,8 +72,6 @@ public final class JDBCBackendHandler implements BackendHandler { private int currentSequenceId; - private boolean isMerged; - @Getter private boolean hasMoreResultValueFlag; @@ -82,7 +80,6 @@ public final class JDBCBackendHandler implements BackendHandler { this.executeEngine = executeEngine; ruleRegistry = RuleRegistry.getInstance(); backendConnection = executeEngine.getBackendConnection(); - isMerged = false; hasMoreResultValueFlag = true; } @@ -129,7 +126,6 @@ public final class JDBCBackendHandler implements BackendHandler { ruleRegistry.getShardingRule(), ((ExecuteQueryResponse) executeResponse).getQueryResults(), sqlStatement, ruleRegistry.getShardingMetaData()).merge(); QueryResponsePackets result = ((ExecuteQueryResponse) executeResponse).getQueryResponsePackets(); currentSequenceId = result.getPackets().size(); - isMerged = true; return result; } @@ -151,7 +147,7 @@ public final class JDBCBackendHandler implements BackendHandler { @Override public boolean hasMoreResultValue() throws SQLException { - if (!isMerged || !hasMoreResultValueFlag) { + if (null == mergedResult || !hasMoreResultValueFlag) { backendConnection.close(); return false; } -- GitLab