/** * Get an aggregator using the default set of tags for the final result. The tags will * be extracted based on the exact matches for the underlying query. */ default Aggregator aggregator() { return aggregator(query().exactTags(), true); }
/** * Evaluate the data expression over the input. * * @param input * Set of data values. The data will get filtered based on the query, that does * not need to be done in advance. * @return * Aggregated data values. */ default Iterable<TagsValuePair> eval(Iterable<TagsValuePair> input) { Aggregator aggr = aggregator(); for (TagsValuePair p : input) { aggr.update(p); } return aggr.result(); }
private Iterable<TagsValuePair> evalNoCheck(DataExpr expr, Iterable<TagsValuePair> input) { DataExpr.Aggregator aggr = expr.aggregator(expr.query().exactTags(), false); for (TagsValuePair p : input) { aggr.update(p); } return aggr.result(); }