@SuppressWarnings("deprecation")
public static GenericUDAFEvaluator getGenericUDAFEvaluator(String name,
List<TypeInfo> argumentTypeInfos, boolean isDistinct,
boolean isAllColumns) throws SemanticException {
GenericUDAFResolver udafResolver = getGenericUDAFResolver(name);
if (udafResolver == null) {
return null;
}
TypeInfo[] parameters = new TypeInfo[argumentTypeInfos.size()];
for (int i = 0; i < parameters.length; i++) {
parameters[i] = argumentTypeInfos.get(i);
}
GenericUDAFEvaluator udafEvaluator = null;
if (udafResolver instanceof GenericUDAFResolver2) {
GenericUDAFParameterInfo paramInfo =
new SimpleGenericUDAFParameterInfo(
parameters, isDistinct, isAllColumns);
udafEvaluator =
((GenericUDAFResolver2) udafResolver).getEvaluator(paramInfo);
} else {
udafEvaluator = udafResolver.getEvaluator(parameters);
}
return udafEvaluator;
}