Loading sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/merger/resultset/memory/row/AbstractResultSetRow.java +1 −2 Original line number Diff line number Diff line Loading @@ -45,8 +45,7 @@ public abstract class AbstractResultSetRow implements ResultSetRow { return result; } @Override public final void setCell(final int columnIndex, final Object value) { protected final void setCell(final int columnIndex, final Object value) { data[columnIndex - 1] = value; } Loading sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/merger/resultset/memory/row/GroupByResultSetRow.java +22 −21 Original line number Diff line number Diff line Loading @@ -17,8 +17,8 @@ package com.dangdang.ddframe.rdb.sharding.merger.resultset.memory.row; import com.dangdang.ddframe.rdb.sharding.merger.pipeline.coupling.aggregation.AggregationUnit; import com.dangdang.ddframe.rdb.sharding.merger.pipeline.coupling.aggregation.AggregationUnitFactory; import com.dangdang.ddframe.rdb.sharding.merger.resultset.memory.row.aggregation.AggregationUnit; import com.dangdang.ddframe.rdb.sharding.merger.resultset.memory.row.aggregation.AggregationUnitFactory; import com.dangdang.ddframe.rdb.sharding.parsing.parser.context.OrderItem; import com.dangdang.ddframe.rdb.sharding.parsing.parser.context.selectitem.AggregationSelectItem; import com.google.common.base.Function; Loading @@ -31,6 +31,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Map.Entry; /** * 具有分组功能的数据行对象. Loading @@ -46,11 +47,11 @@ public final class GroupByResultSetRow extends AbstractResultSetRow { private final Map<AggregationSelectItem, AggregationUnit> aggregationUnitMap; public GroupByResultSetRow(final ResultSet resultSet, final List<OrderItem> groupByList, final List<AggregationSelectItem> aggregationColumns) throws SQLException { public GroupByResultSetRow(final ResultSet resultSet, final List<OrderItem> groupByList, final List<AggregationSelectItem> aggregationSelectItems) throws SQLException { super(resultSet); this.resultSet = resultSet; this.groupByList = groupByList; aggregationUnitMap = Maps.toMap(aggregationColumns, new Function<AggregationSelectItem, AggregationUnit>() { aggregationUnitMap = Maps.toMap(aggregationSelectItems, new Function<AggregationSelectItem, AggregationUnit>() { @Override public AggregationUnit apply(final AggregationSelectItem input) { Loading @@ -59,15 +60,29 @@ public final class GroupByResultSetRow extends AbstractResultSetRow { }); } /** * 获取分组值. * * @return 分组值集合 * @throws SQLException SQL异常 */ public List<Object> getGroupValues() throws SQLException { List<Object> result = new ArrayList<>(groupByList.size()); for (OrderItem each : groupByList) { result.add(resultSet.getObject(each.getIndex())); } return result; } /** * 处理聚合函数结果集. * * @throws SQLException SQL异常 */ public void aggregate() throws SQLException { for (Map.Entry<AggregationSelectItem, AggregationUnit> each : aggregationUnitMap.entrySet()) { each.getValue().merge(getAggregationValues( each.getKey().getDerivedAggregationSelectItems().isEmpty() ? Collections.singletonList(each.getKey()) : each.getKey().getDerivedAggregationSelectItems())); for (Entry<AggregationSelectItem, AggregationUnit> entry : aggregationUnitMap.entrySet()) { entry.getValue().merge( getAggregationValues(entry.getKey().getDerivedAggregationSelectItems().isEmpty() ? Collections.singletonList(entry.getKey()) : entry.getKey().getDerivedAggregationSelectItems())); } } Loading @@ -89,18 +104,4 @@ public final class GroupByResultSetRow extends AbstractResultSetRow { setCell(each.getIndex(), aggregationUnitMap.get(each).getResult()); } } /** * 获取分组值. * * @return 分组值集合 * @throws SQLException SQL异常 */ public List<Object> getGroupValues() throws SQLException { List<Object> result = new ArrayList<>(groupByList.size()); for (OrderItem each : groupByList) { result.add(resultSet.getObject(each.getIndex())); } return result; } } sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/merger/resultset/memory/row/ResultSetRow.java +0 −8 Original line number Diff line number Diff line Loading @@ -26,14 +26,6 @@ package com.dangdang.ddframe.rdb.sharding.merger.resultset.memory.row; */ public interface ResultSetRow { /** * 设置数据行数据. * * @param columnIndex 列索引, 与JDBC保持一致, 从1开始计数 * @param value 数据行数据 */ void setCell(int columnIndex, Object value); /** * 通过列索引访问数据行数据. * Loading sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/merger/pipeline/coupling/aggregation/AccumulationAggregationUnit.java→sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/merger/resultset/memory/row/aggregation/AccumulationAggregationUnit.java +1 −1 Original line number Diff line number Diff line Loading @@ -15,7 +15,7 @@ * </p> */ package com.dangdang.ddframe.rdb.sharding.merger.pipeline.coupling.aggregation; package com.dangdang.ddframe.rdb.sharding.merger.resultset.memory.row.aggregation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; Loading sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/merger/pipeline/coupling/aggregation/AggregationUnit.java→sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/merger/resultset/memory/row/aggregation/AggregationUnit.java +1 −1 Original line number Diff line number Diff line Loading @@ -15,7 +15,7 @@ * </p> */ package com.dangdang.ddframe.rdb.sharding.merger.pipeline.coupling.aggregation; package com.dangdang.ddframe.rdb.sharding.merger.resultset.memory.row.aggregation; import java.util.List; Loading Loading
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/merger/resultset/memory/row/AbstractResultSetRow.java +1 −2 Original line number Diff line number Diff line Loading @@ -45,8 +45,7 @@ public abstract class AbstractResultSetRow implements ResultSetRow { return result; } @Override public final void setCell(final int columnIndex, final Object value) { protected final void setCell(final int columnIndex, final Object value) { data[columnIndex - 1] = value; } Loading
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/merger/resultset/memory/row/GroupByResultSetRow.java +22 −21 Original line number Diff line number Diff line Loading @@ -17,8 +17,8 @@ package com.dangdang.ddframe.rdb.sharding.merger.resultset.memory.row; import com.dangdang.ddframe.rdb.sharding.merger.pipeline.coupling.aggregation.AggregationUnit; import com.dangdang.ddframe.rdb.sharding.merger.pipeline.coupling.aggregation.AggregationUnitFactory; import com.dangdang.ddframe.rdb.sharding.merger.resultset.memory.row.aggregation.AggregationUnit; import com.dangdang.ddframe.rdb.sharding.merger.resultset.memory.row.aggregation.AggregationUnitFactory; import com.dangdang.ddframe.rdb.sharding.parsing.parser.context.OrderItem; import com.dangdang.ddframe.rdb.sharding.parsing.parser.context.selectitem.AggregationSelectItem; import com.google.common.base.Function; Loading @@ -31,6 +31,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Map.Entry; /** * 具有分组功能的数据行对象. Loading @@ -46,11 +47,11 @@ public final class GroupByResultSetRow extends AbstractResultSetRow { private final Map<AggregationSelectItem, AggregationUnit> aggregationUnitMap; public GroupByResultSetRow(final ResultSet resultSet, final List<OrderItem> groupByList, final List<AggregationSelectItem> aggregationColumns) throws SQLException { public GroupByResultSetRow(final ResultSet resultSet, final List<OrderItem> groupByList, final List<AggregationSelectItem> aggregationSelectItems) throws SQLException { super(resultSet); this.resultSet = resultSet; this.groupByList = groupByList; aggregationUnitMap = Maps.toMap(aggregationColumns, new Function<AggregationSelectItem, AggregationUnit>() { aggregationUnitMap = Maps.toMap(aggregationSelectItems, new Function<AggregationSelectItem, AggregationUnit>() { @Override public AggregationUnit apply(final AggregationSelectItem input) { Loading @@ -59,15 +60,29 @@ public final class GroupByResultSetRow extends AbstractResultSetRow { }); } /** * 获取分组值. * * @return 分组值集合 * @throws SQLException SQL异常 */ public List<Object> getGroupValues() throws SQLException { List<Object> result = new ArrayList<>(groupByList.size()); for (OrderItem each : groupByList) { result.add(resultSet.getObject(each.getIndex())); } return result; } /** * 处理聚合函数结果集. * * @throws SQLException SQL异常 */ public void aggregate() throws SQLException { for (Map.Entry<AggregationSelectItem, AggregationUnit> each : aggregationUnitMap.entrySet()) { each.getValue().merge(getAggregationValues( each.getKey().getDerivedAggregationSelectItems().isEmpty() ? Collections.singletonList(each.getKey()) : each.getKey().getDerivedAggregationSelectItems())); for (Entry<AggregationSelectItem, AggregationUnit> entry : aggregationUnitMap.entrySet()) { entry.getValue().merge( getAggregationValues(entry.getKey().getDerivedAggregationSelectItems().isEmpty() ? Collections.singletonList(entry.getKey()) : entry.getKey().getDerivedAggregationSelectItems())); } } Loading @@ -89,18 +104,4 @@ public final class GroupByResultSetRow extends AbstractResultSetRow { setCell(each.getIndex(), aggregationUnitMap.get(each).getResult()); } } /** * 获取分组值. * * @return 分组值集合 * @throws SQLException SQL异常 */ public List<Object> getGroupValues() throws SQLException { List<Object> result = new ArrayList<>(groupByList.size()); for (OrderItem each : groupByList) { result.add(resultSet.getObject(each.getIndex())); } return result; } }
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/merger/resultset/memory/row/ResultSetRow.java +0 −8 Original line number Diff line number Diff line Loading @@ -26,14 +26,6 @@ package com.dangdang.ddframe.rdb.sharding.merger.resultset.memory.row; */ public interface ResultSetRow { /** * 设置数据行数据. * * @param columnIndex 列索引, 与JDBC保持一致, 从1开始计数 * @param value 数据行数据 */ void setCell(int columnIndex, Object value); /** * 通过列索引访问数据行数据. * Loading
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/merger/pipeline/coupling/aggregation/AccumulationAggregationUnit.java→sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/merger/resultset/memory/row/aggregation/AccumulationAggregationUnit.java +1 −1 Original line number Diff line number Diff line Loading @@ -15,7 +15,7 @@ * </p> */ package com.dangdang.ddframe.rdb.sharding.merger.pipeline.coupling.aggregation; package com.dangdang.ddframe.rdb.sharding.merger.resultset.memory.row.aggregation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; Loading
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/merger/pipeline/coupling/aggregation/AggregationUnit.java→sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/merger/resultset/memory/row/aggregation/AggregationUnit.java +1 −1 Original line number Diff line number Diff line Loading @@ -15,7 +15,7 @@ * </p> */ package com.dangdang.ddframe.rdb.sharding.merger.pipeline.coupling.aggregation; package com.dangdang.ddframe.rdb.sharding.merger.resultset.memory.row.aggregation; import java.util.List; Loading