Commit bb4aeae0 authored by terrymanu's avatar terrymanu
Browse files

refactor ExecuteResponseUnit

parent 6686f5e1
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import io.shardingsphere.proxy.backend.common.jdbc.execute.response.ExecuteRespo
import io.shardingsphere.proxy.backend.common.jdbc.execute.response.ExecuteUpdateResponse;
import io.shardingsphere.proxy.backend.common.jdbc.execute.response.unit.ExecuteQueryResponseUnit;
import io.shardingsphere.proxy.backend.common.jdbc.execute.response.unit.ExecuteResponseUnit;
import io.shardingsphere.proxy.backend.common.jdbc.execute.response.unit.ExecuteUpdateResponseUnit;

import java.sql.Connection;
import java.sql.ResultSet;
@@ -107,7 +108,7 @@ public abstract class ConnectionStrictlyExecuteEngine extends JDBCExecuteEngine
    
    private ExecuteResponse getExecuteQueryResponse(
            final ExecuteQueryResponseUnit firstExecuteResponseUnit, final Collection<ExecuteResponseUnit> firstExecuteResponseUnits, final List<Future<Collection<ExecuteResponseUnit>>> futureList) {
        ExecuteQueryResponse result = new ExecuteQueryResponse(firstExecuteResponseUnit.getCommandResponsePackets());
        ExecuteQueryResponse result = new ExecuteQueryResponse(firstExecuteResponseUnit.getQueryResponsePackets());
        for (ExecuteResponseUnit each : firstExecuteResponseUnits) {
            result.getQueryResults().add(((ExecuteQueryResponseUnit) each).getQueryResult());
        }
@@ -131,7 +132,7 @@ public abstract class ConnectionStrictlyExecuteEngine extends JDBCExecuteEngine
        for (Future<Collection<ExecuteResponseUnit>> each : futureList) {
            try {
                for (ExecuteResponseUnit executeResponse : each.get()) {
                    result.getPackets().add(executeResponse.getCommandResponsePackets().getHeadPacket());
                    result.getPackets().add(((ExecuteUpdateResponseUnit) executeResponse).getCommandResponsePackets().getHeadPacket());
                }
            } catch (final InterruptedException | ExecutionException ex) {
                throw new ShardingException(ex.getMessage(), ex);
+2 −1
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@
package io.shardingsphere.proxy.backend.common.jdbc.execute.response;

import io.shardingsphere.proxy.backend.common.jdbc.execute.response.unit.ExecuteResponseUnit;
import io.shardingsphere.proxy.backend.common.jdbc.execute.response.unit.ExecuteUpdateResponseUnit;
import io.shardingsphere.proxy.transport.common.packet.DatabasePacket;
import io.shardingsphere.proxy.transport.mysql.packet.command.reponse.CommandResponsePackets;
import io.shardingsphere.proxy.transport.mysql.packet.generic.OKPacket;
@@ -43,7 +44,7 @@ public final class ExecuteUpdateResponse implements ExecuteResponse {
    
    public ExecuteUpdateResponse(final Collection<ExecuteResponseUnit> responseUnits) {
        for (ExecuteResponseUnit each : responseUnits) {
            packets.add(each.getCommandResponsePackets().getHeadPacket());
            packets.add(((ExecuteUpdateResponseUnit) each).getCommandResponsePackets().getHeadPacket());
        }
    }
    
+1 −6
Original line number Diff line number Diff line
@@ -28,15 +28,10 @@ import lombok.RequiredArgsConstructor;
 * @author zhangliang
 */
@RequiredArgsConstructor
@Getter
public final class ExecuteQueryResponseUnit implements ExecuteResponseUnit {
    
    private final QueryResponsePackets queryResponsePackets;
    
    @Getter
    private final QueryResult queryResult;
    
    @Override
    public QueryResponsePackets getCommandResponsePackets() {
        return queryResponsePackets;
    }
}
+0 −9
Original line number Diff line number Diff line
@@ -17,19 +17,10 @@

package io.shardingsphere.proxy.backend.common.jdbc.execute.response.unit;

import io.shardingsphere.proxy.transport.mysql.packet.command.reponse.CommandResponsePackets;

/**
 * Execute response unit.
 * 
 * @author zhangliang
 */
public interface ExecuteResponseUnit {
    
    /**
     * Get command response packets.
     * 
     * @return command response packets
     */
    CommandResponsePackets getCommandResponsePackets();
}
+5 −4
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ import io.shardingsphere.proxy.backend.common.jdbc.execute.response.ExecuteRespo
import io.shardingsphere.proxy.backend.common.jdbc.execute.response.ExecuteUpdateResponse;
import io.shardingsphere.proxy.backend.common.jdbc.execute.response.unit.ExecuteQueryResponseUnit;
import io.shardingsphere.proxy.backend.common.jdbc.execute.response.unit.ExecuteResponseUnit;
import io.shardingsphere.proxy.backend.common.jdbc.execute.response.unit.ExecuteUpdateResponseUnit;

import java.sql.ResultSet;
import java.sql.SQLException;
@@ -57,7 +58,7 @@ public abstract class MemoryStrictlyExecuteEngine extends JDBCExecuteEngine {
        List<Future<ExecuteResponseUnit>> futureList = asyncExecute(isReturnGeneratedKeys, Lists.newArrayList(executionUnits));
        ExecuteResponseUnit firstResponseUnit = syncExecute(isReturnGeneratedKeys, firstSQLExecutionUnit);
        return firstResponseUnit instanceof ExecuteQueryResponseUnit
                ? getExecuteQueryResponse((ExecuteQueryResponseUnit) firstResponseUnit, futureList) : getExecuteUpdateResponse(firstResponseUnit, futureList);
                ? getExecuteQueryResponse((ExecuteQueryResponseUnit) firstResponseUnit, futureList) : getExecuteUpdateResponse((ExecuteUpdateResponseUnit) firstResponseUnit, futureList);
    }
    
    private List<Future<ExecuteResponseUnit>> asyncExecute(final boolean isReturnGeneratedKeys, final Collection<SQLExecutionUnit> sqlExecutionUnits) {
@@ -83,7 +84,7 @@ public abstract class MemoryStrictlyExecuteEngine extends JDBCExecuteEngine {
    }
    
    private ExecuteResponse getExecuteQueryResponse(final ExecuteQueryResponseUnit firstResponseUnit, final List<Future<ExecuteResponseUnit>> futureList) {
        ExecuteQueryResponse result = new ExecuteQueryResponse(firstResponseUnit.getCommandResponsePackets());
        ExecuteQueryResponse result = new ExecuteQueryResponse(firstResponseUnit.getQueryResponsePackets());
        result.getQueryResults().add(firstResponseUnit.getQueryResult());
        for (Future<ExecuteResponseUnit> each : futureList) {
            try {
@@ -95,11 +96,11 @@ public abstract class MemoryStrictlyExecuteEngine extends JDBCExecuteEngine {
        return result;
    }
    
    private ExecuteResponse getExecuteUpdateResponse(final ExecuteResponseUnit firstResponseUnit, final List<Future<ExecuteResponseUnit>> futureList) {
    private ExecuteResponse getExecuteUpdateResponse(final ExecuteUpdateResponseUnit firstResponseUnit, final List<Future<ExecuteResponseUnit>> futureList) {
        ExecuteUpdateResponse result = new ExecuteUpdateResponse(firstResponseUnit.getCommandResponsePackets().getHeadPacket());
        for (Future<ExecuteResponseUnit> each : futureList) {
            try {
                result.getPackets().add(each.get().getCommandResponsePackets().getHeadPacket());
                result.getPackets().add(((ExecuteUpdateResponseUnit) each.get()).getCommandResponsePackets().getHeadPacket());
            } catch (final InterruptedException | ExecutionException ex) {
                throw new ShardingException(ex.getMessage(), ex);
            }