int numBucketsInRangeForGroup = 0;
// Execute each aggregation function over the applicable subset of buckets
// in bucketsByTime.
for (int i = 0; i < mAggregateExprs.size(); i++) {
BucketIterator aggIterator = new BucketIterator(i, loTime, closeTime, bucketsByTime);
AliasedExpr aliasExpr = mAggregateExprs.get(i);
FnCallExpr fnCall = (FnCallExpr) aliasExpr.getExpr();
Object result = fnCall.finishWindow(new IterableIterator(aggIterator));
numBucketsInRangeForGroup += aggIterator.getYieldCount();
record.put(aliasExpr.getAvroLabel(), result);
}
// If there are no buckets in bucketsByTime that are in our time range,
// we should not emit anything for this group. Just silently continue.
if (0 == numBucketsInRangeForGroup) {