@Override protected void beforeDataSetLookup() { DataSetGroup group = dataSetHandler.getCurrentDataSetLookup().getLastGroupOp(); if (group != null && (group.getAggregationFunctions().isEmpty() || group.getColumnGroup() != null || group.getGroupFunctions().size() < 2)) { group.setColumnGroup(null); GroupFunction minFunction = group.getGroupFunctions().get(0); minFunction.setFunction(AggregateFunctionType.MIN); GroupFunction maxFunction = minFunction.cloneInstance(); maxFunction.setFunction(AggregateFunctionType.MAX); group.addGroupFunction(maxFunction); } }
@Override protected void beforeDataSetLookup() { DataSetGroup group = dataSetHandler.getCurrentDataSetLookup().getLastGroupOp(); if (group != null && (group.getAggregationFunctions().isEmpty() || group.getColumnGroup() != null || group.getGroupFunctions().size() < 2)) { group.setColumnGroup(null); GroupFunction minFunction = group.getGroupFunctions().get(0); minFunction.setFunction(AggregateFunctionType.MIN); GroupFunction maxFunction = minFunction.cloneInstance(); maxFunction.setFunction(AggregateFunctionType.MAX); group.addGroupFunction(maxFunction); } }
private DataSet _buildDataSet(InternalContext context) { DataSetOp lastOp = context.lastOperation; DataSetIndexNode index = context.index; DataSet dataSet = context.dataSet; if (lastOp instanceof DataSetGroup) { DataSetGroup gOp = (DataSetGroup) lastOp; ColumnGroup columnGroup = gOp.getColumnGroup(); if (columnGroup == null) { boolean hasAggregations = !gOp.getAggregationFunctions().isEmpty(); return _buildDataSet(context, gOp.getGroupFunctions(), hasAggregations); } else { if (gOp.isSelect() && gOp.getGroupFunctions().isEmpty()) { return dataSet.trim(index.getRows()); } else { return _buildDataSet(context, gOp); } } } if (lastOp instanceof DataSetFilter) { return dataSet.trim(index.getRows()); } if (lastOp instanceof DataSetSort) { return _filterDataSet(dataSet, index.getRows()); } return dataSet; }