public override IList<int[]> Evaluate(GroupByRollupEvalContext context) { var result = new int[expressions.Count]; for (var i = 0; i < expressions.Count; i++) { int index = context.GetIndex(expressions[i]); result[i] = index; } Collections.SortInPlace(result); // find dups for (var i = 0; i < result.Length - 1; i++) { if (result[i] == result[i + 1]) { throw new GroupByRollupDuplicateException(new[] {result[i]}); } } return Collections.SingletonList(result); }
public override IList<int[]> Evaluate(GroupByRollupEvalContext context) { int index = context.GetIndex(expression); return Collections.SingletonList(new[] {index}); }