Search in sources :

Example 1 with IndexColumn

use of com.dangdang.ddframe.rdb.sharding.parser.result.merger.IndexColumn in project sharding-jdbc by dangdangdotcom.

the class ResultSetMergeContext method getAllFocusedColumns.

private List<IndexColumn> getAllFocusedColumns() {
    List<IndexColumn> result = new LinkedList<>();
    result.addAll(mergeContext.getGroupByColumns());
    result.addAll(mergeContext.getOrderByColumns());
    LinkedList<AggregationColumn> allAggregationColumns = Lists.newLinkedList(mergeContext.getAggregationColumns());
    while (!allAggregationColumns.isEmpty()) {
        AggregationColumn firstElement = allAggregationColumns.poll();
        result.add(firstElement);
        if (!firstElement.getDerivedColumns().isEmpty()) {
            allAggregationColumns.addAll(firstElement.getDerivedColumns());
        }
    }
    return result;
}
Also used : AggregationColumn(com.dangdang.ddframe.rdb.sharding.parser.result.merger.AggregationColumn) LinkedList(java.util.LinkedList) IndexColumn(com.dangdang.ddframe.rdb.sharding.parser.result.merger.IndexColumn)

Aggregations

AggregationColumn (com.dangdang.ddframe.rdb.sharding.parser.result.merger.AggregationColumn)1 IndexColumn (com.dangdang.ddframe.rdb.sharding.parser.result.merger.IndexColumn)1 LinkedList (java.util.LinkedList)1