public <U, V> QueryComposer<Pair<U, V>> group(Select<T, U> select,
AggregateGroup<U, T, V> aggregate)
{
try {
if (transformer == null) return null;
QueryComposer cached = lookupQueryCache("group", select, aggregate);
if (cached != null) return cached;
SQLQuery<Pair<U,V>> newQuery = transformer.group(query.copy(), nextLambdaParamIndex, select, nextLambdaParamIndex + 1, aggregate, emSource);
List<ParameterLocation> paramLocSelect = new ArrayList<ParameterLocation>();
if (newQuery != null)
{