@Override public void merge(AggregationBuffer agg, Object partial) throws HiveException { if (partial != null) { MaxAgg maxagg = (MaxAgg) agg; List<Object> objects; if (partial instanceof Object[]) { objects = Arrays.asList((Object[]) partial); } else if (partial instanceof LazyBinaryStruct) { objects = ((LazyBinaryStruct) partial).getFieldsAsList(); } else { throw new HiveException("Invalid type: " + partial.getClass().getName()); } if (maxagg.objects == null) { int length = objects.size(); maxagg.objects = new Object[length]; for (int i = 0; i < length; i++) { maxagg.objects[i] = ObjectInspectorUtils.copyToStandardObject(objects.get(i), inputOIs[i]); } } } }
@Override public void reset(AggregationBuffer agg) throws HiveException { MaxAgg maxagg = (MaxAgg) agg; maxagg.objects = null; }