for( Projectable p:this.dsToFuncsMapping.get(datasetID) )
{
if( p instanceof GroupFunction )
{
BigTupleList aggregatedResult = ((GroupFunction)p).getResult();
if( aggregatedResult.size() ==1 )
{
Tuple aggResult = aggregatedResult.getFirst();
String name = p.getInputColumns()[0].getInputColumnName();
combinedValue.insert(name, aggResult.get(0));
}
else if( aggregatedResult.size()>1 )
throw new IllegalArgumentException(p.toString()+" is a group function that generates " +
"more than one rows ("+aggregatedResult.size()+") per key, so it is not combinable.");
}
}
DataJoinKey outKey = new DataJoinKey(datasetID, key);
DataJoinValue outValue = new DataJoinValue(datasetID, combinedValue);