public static MeasureAggregator<?> create(String funcName, DataType dataType) { return MeasureTypeFactory.create(funcName, dataType).newAggregator(); }
public static long estimateSizeOf(MeasureAggregator[] aggrs) { // size of array, AggregationCacheMemSizeTest reports 4 for [0], 12 for [1], 12 for [2], 20 for [3] etc.. // Memory alignment to 8 bytes long est = (aggrs.length + 1) / 2 * 8L + 4 + (4 /* extra */); for (MeasureAggregator aggr : aggrs) { if (aggr != null) est += aggr.getMemBytesEstimate(); } return est; }
public void aggregate(Object[] values, int[] measures) { assert values.length == descLength; for (int i = 0; i < measures.length; i++) { aggs[measures[i]].aggregate(values[measures[i]]); } }
public BufferedMeasureCodec(MeasureDesc... measureDescs) { this.codec = new MeasureCodec(measureDescs); this.measureSizes = new int[codec.getMeasuresCount()]; }
@Override public MeasureIngester newIngester() { return origMeasureType.newIngester(); }
@Override public Object[] call(Object[] input1, Object[] input2) throws Exception { Object[] measureObjs = new Object[input1.length]; aggregators.aggregate(input1, input2, measureObjs); return measureObjs; } };
public void decode(ByteBuffer buf, Object[] result) { codec.decode(buf, result); }
public void collectStates(Object[] states) { for (int i = 0; i < descLength; i++) { states[i] = aggs[i].getState(); } } }
@Override public Map<String, Class<?>> getRewriteCalciteAggrFunctions() { return origMeasureType.getRewriteCalciteAggrFunctions(); } }
@Override public boolean needRewrite() { return origMeasureType.needRewrite(); }
@Override public MeasureAggregator newAggregator() { return origMeasureType.newAggregator(); }
public MeasureCodec(DataType... dataTypes) { init(dataTypes); }
public void reset() { for (int i = 0; i < aggs.length; i++) { aggs[i].reset(); } }
public BufferedMeasureCodec(String... dataTypes) { this.codec = new MeasureCodec(dataTypes); this.measureSizes = new int[codec.getMeasuresCount()]; }
public void aggregate(Object[] values1, Object[] values2, Object[] result) { assert values1.length == values2.length && values2.length == descLength && values1.length == result.length; for (int i = 0; i < descLength; i++) { result[i] = aggs[i].aggregate(values1[i], values2[i]); } }
public MeasureCodec(String... dataTypes) { init(dataTypes); }
public BufferedMeasureCodec(Collection<MeasureDesc> measureDescs) { this.codec = new MeasureCodec(measureDescs); this.measureSizes = new int[codec.getMeasuresCount()]; }
public void aggregate(Object[] values) { assert values.length == descLength; for (int i = 0; i < descLength; i++) { aggs[i].aggregate(values[i]); } }
public BufferedMeasureCodec(DataType... dataTypes) { this.codec = new MeasureCodec(dataTypes); this.measureSizes = new int[codec.getMeasuresCount()]; }
public void aggregate(Object[] values1, Object[] values2, Object[] result, boolean[] aggrMask) { assert values1.length == values2.length && values2.length == descLength && values1.length == result.length && result.length == aggrMask.length; for (int i = 0; i < descLength; i++) { if (aggrMask[i]) { result[i] = aggs[i].aggregate(values1[i], values2[i]); } } }