[
https://issues.apache.org/jira/browse/PHOENIX-944?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14179105#comment-14179105
]
Maryann Xue commented on PHOENIX-944:
-------------------------------------
Slightly changed as:
{code}
protected abstract ImmutableBytesWritable getGroupingKey(Tuple tuple,
ImmutableBytesWritable ptr);
protected abstract Tuple wrapKeyValueAsResult(KeyValue keyValue);
@Override
public Tuple next() throws SQLException {
Tuple result = resultIterator.next();
if (result == null) {
return null;
}
if (currentKey.getLength() == 0) {
getGroupingKey(result, currentKey);
}
Aggregator[] rowAggregators = aggregators.getAggregators();
aggregators.reset(rowAggregators);
while (true) {
aggregators.aggregate(rowAggregators, result);
Tuple nextResult = resultIterator.peek();
if (nextResult == null ||
currentKey.equals(getGroupingKey(nextResult, nextKey))) {
break;
}
result = resultIterator.next();
}
byte[] value = aggregators.toBytes(rowAggregators);
Tuple tuple = wrapKeyValueAsResult(KeyValueUtil.newKeyValue(currentKey,
SINGLE_COLUMN_FAMILY, SINGLE_COLUMN, AGG_TIMESTAMP, value, 0, value.length));
currentKey.set(nextKey.get(), nextKey.getOffset(), nextKey.getLength());
return tuple;
}
{code}
> Support derived tables in FROM clause that needs extra steps of client-side
> aggregation or other processing
> -----------------------------------------------------------------------------------------------------------
>
> Key: PHOENIX-944
> URL: https://issues.apache.org/jira/browse/PHOENIX-944
> Project: Phoenix
> Issue Type: Bug
> Affects Versions: 3.0.0, 4.0.0, 5.0.0
> Reporter: Maryann Xue
> Assignee: Maryann Xue
> Fix For: 3.0.0, 4.0.0, 5.0.0
>
> Attachments: 944.patch
>
> Original Estimate: 168h
> Remaining Estimate: 168h
>
> Groupby in both outer and inner queries cannot be flattened. We can apply an
> extra step of client-side aggregation to handle such cases.
> See DerivedTableIT.java for all those examples that are currently not
> supported.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)