Commit c90f7797 authored by terrymanu's avatar terrymanu
Browse files

refactor merger 2nd version

parent f6e87e37
Loading
Loading
Loading
Loading
+9 −9
Original line number Diff line number Diff line
@@ -17,11 +17,11 @@

package com.dangdang.ddframe.rdb.sharding.merger;

import com.dangdang.ddframe.rdb.sharding.merger.pipeline.coupling.GroupByCouplingResultSet;
import com.dangdang.ddframe.rdb.sharding.merger.pipeline.coupling.GroupByMemoryResultSet;
import com.dangdang.ddframe.rdb.sharding.merger.pipeline.coupling.LimitCouplingResultSet;
import com.dangdang.ddframe.rdb.sharding.merger.pipeline.reducer.IteratorReducerResultSet;
import com.dangdang.ddframe.rdb.sharding.merger.pipeline.reducer.StreamingOrderByReducerResultSet;
import com.dangdang.ddframe.rdb.sharding.merger.limit.LimitResultSet;
import com.dangdang.ddframe.rdb.sharding.merger.stream.GroupByStreamResultSet;
import com.dangdang.ddframe.rdb.sharding.merger.memory.GroupByMemoryResultSet;
import com.dangdang.ddframe.rdb.sharding.merger.stream.IteratorStreamResultSet;
import com.dangdang.ddframe.rdb.sharding.merger.stream.OrderByStreamResultSet;
import com.dangdang.ddframe.rdb.sharding.parsing.parser.statement.SQLStatement;
import lombok.AccessLevel;
import lombok.RequiredArgsConstructor;
@@ -66,7 +66,7 @@ public final class ResultSetFactory {
            result = buildStreamResultSet(resultSetMergeContext);
        }
        if (null != resultSetMergeContext.getSqlStatement().getLimit()) {
            result = new LimitCouplingResultSet(result, resultSetMergeContext.getSqlStatement());
            result = new LimitResultSet(result, resultSetMergeContext.getSqlStatement());
        }
        return result;
    }
@@ -78,12 +78,12 @@ public final class ResultSetFactory {
    private static ResultSet buildStreamResultSet(final ResultSetMergeContext resultSetMergeContext) throws SQLException {
        ResultSet result;
        if (resultSetMergeContext.getSqlStatement().getGroupByItems().isEmpty() && resultSetMergeContext.getSqlStatement().getOrderByItems().isEmpty()) {
            result = new IteratorReducerResultSet(resultSetMergeContext);
            result = new IteratorStreamResultSet(resultSetMergeContext);
        } else {
            result = new StreamingOrderByReducerResultSet(resultSetMergeContext);
            result = new OrderByStreamResultSet(resultSetMergeContext);
        }
        if (!resultSetMergeContext.getSqlStatement().getGroupByItems().isEmpty() || !resultSetMergeContext.getSqlStatement().getAggregationSelectItems().isEmpty()) {
            result = new GroupByCouplingResultSet(result, resultSetMergeContext);
            result = new GroupByStreamResultSet(result, resultSetMergeContext);
        }
        return result;
    }
+2 −2
Original line number Diff line number Diff line
@@ -17,7 +17,7 @@

package com.dangdang.ddframe.rdb.sharding.merger;

import com.dangdang.ddframe.rdb.sharding.merger.resultset.delegate.AbstractDelegateResultSet;
import com.dangdang.ddframe.rdb.sharding.merger.stream.AbstractStreamResultSet;
import lombok.Getter;

import java.sql.ResultSet;
@@ -50,7 +50,7 @@ public final class ShardingResultSets {
        return result;
    }
    
    private static final class FilteredResultSet extends AbstractDelegateResultSet {
    private static final class FilteredResultSet extends AbstractStreamResultSet {
        
        private FilteredResultSet(final ResultSet resultSetWhenNextOnce) throws SQLException {
            super(Collections.singletonList(resultSetWhenNextOnce));
+4 −4
Original line number Diff line number Diff line
@@ -15,9 +15,9 @@
 * </p>
 */

package com.dangdang.ddframe.rdb.sharding.merger.pipeline.coupling;
package com.dangdang.ddframe.rdb.sharding.merger.limit;

import com.dangdang.ddframe.rdb.sharding.merger.resultset.delegate.AbstractDelegateResultSet;
import com.dangdang.ddframe.rdb.sharding.merger.stream.AbstractStreamResultSet;
import com.dangdang.ddframe.rdb.sharding.parsing.parser.context.limit.Limit;
import com.dangdang.ddframe.rdb.sharding.parsing.parser.statement.SQLStatement;

@@ -31,13 +31,13 @@ import java.util.Collections;
 * @author gaohongtao
 * @author zhangliang
 */
public final class LimitCouplingResultSet extends AbstractDelegateResultSet {
public final class LimitResultSet extends AbstractStreamResultSet {
    
    private final Limit limit;
    
    private int rowNumber;
    
    public LimitCouplingResultSet(final ResultSet resultSet, final SQLStatement sqlStatement) throws SQLException {
    public LimitResultSet(final ResultSet resultSet, final SQLStatement sqlStatement) throws SQLException {
        super(Collections.singletonList(resultSet));
        limit = sqlStatement.getLimit();
    }
+2 −2
Original line number Diff line number Diff line
@@ -15,9 +15,9 @@
 * </p>
 */

package com.dangdang.ddframe.rdb.sharding.merger.resultset.memory;
package com.dangdang.ddframe.rdb.sharding.merger.memory;

import com.dangdang.ddframe.rdb.sharding.merger.resultset.memory.row.ResultSetRow;
import com.dangdang.ddframe.rdb.sharding.merger.memory.row.ResultSetRow;
import com.dangdang.ddframe.rdb.sharding.merger.util.ResultSetUtil;
import com.dangdang.ddframe.rdb.sharding.util.SQLUtil;
import com.google.common.base.Optional;
+1 −1
Original line number Diff line number Diff line
@@ -15,7 +15,7 @@
 * </p>
 */

package com.dangdang.ddframe.rdb.sharding.merger.resultset.memory;
package com.dangdang.ddframe.rdb.sharding.merger.memory;

import com.dangdang.ddframe.rdb.sharding.jdbc.adapter.AbstractResultSetAdapter;

Loading