public abstract static class GroupByQueryEngineV2.GroupByEngineIterator<KeyType> extends Object implements Iterator<ResultRow>, Closeable
| Modifier and Type | Field and Description |
|---|---|
protected boolean |
allowMultiValueGrouping |
protected boolean |
allSingleValueDims |
protected ByteBuffer |
buffer |
protected Cursor |
cursor |
protected CloseableGrouperIterator<KeyType,ResultRow> |
delegate |
protected GroupByColumnSelectorPlus[] |
dims |
protected Grouper.KeySerde<ByteBuffer> |
keySerde |
protected long |
maxSelectorFootprint |
protected GroupByQuery |
query |
protected GroupByQueryConfig |
querySpecificConfig |
protected org.joda.time.DateTime |
timestamp |
| Constructor and Description |
|---|
GroupByEngineIterator(GroupByQuery query,
GroupByQueryConfig querySpecificConfig,
DruidProcessingConfig processingConfig,
Cursor cursor,
ByteBuffer buffer,
org.joda.time.DateTime fudgeTimestamp,
GroupByColumnSelectorPlus[] dims,
boolean allSingleValueDims) |
| Modifier and Type | Method and Description |
|---|---|
protected abstract void |
aggregateMultiValueDims(Grouper<KeyType> grouper)
Grouping dimensions can be multi-valued, and thus the given grouper should handle them properly during
aggregation.
|
protected abstract void |
aggregateSingleValueDims(Grouper<KeyType> grouper)
Grouping dimensions are all single-valued, and thus the given grouper don't have to worry about multi-valued
dimensions.
|
protected void |
checkIfMultiValueGroupingIsAllowed(String dimName)
Throws
UnexpectedMultiValueDimensionException if "allowMultiValueGrouping" is false. |
void |
close() |
protected int |
getSingleValue(IndexedInts indexedInts) |
boolean |
hasNext() |
protected abstract Grouper<KeyType> |
newGrouper()
Create a new grouper.
|
ResultRow |
next() |
protected abstract void |
putToRow(KeyType key,
ResultRow resultRow)
Add the key to the result row.
|
void |
remove() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitforEachRemainingprotected final GroupByQuery query
protected final GroupByQueryConfig querySpecificConfig
protected final Cursor cursor
protected final ByteBuffer buffer
protected final Grouper.KeySerde<ByteBuffer> keySerde
protected final GroupByColumnSelectorPlus[] dims
protected final org.joda.time.DateTime timestamp
@Nullable protected CloseableGrouperIterator<KeyType,ResultRow> delegate
protected final boolean allSingleValueDims
protected final boolean allowMultiValueGrouping
protected final long maxSelectorFootprint
public GroupByEngineIterator(GroupByQuery query, GroupByQueryConfig querySpecificConfig, DruidProcessingConfig processingConfig, Cursor cursor, ByteBuffer buffer, @Nullable org.joda.time.DateTime fudgeTimestamp, GroupByColumnSelectorPlus[] dims, boolean allSingleValueDims)
public void close()
close in interface Closeableclose in interface AutoCloseableprotected abstract void aggregateSingleValueDims(Grouper<KeyType> grouper)
protected abstract void aggregateMultiValueDims(Grouper<KeyType> grouper)
protected abstract void putToRow(KeyType key, ResultRow resultRow)
protected int getSingleValue(IndexedInts indexedInts)
protected void checkIfMultiValueGroupingIsAllowed(String dimName)
UnexpectedMultiValueDimensionException if "allowMultiValueGrouping" is false.Copyright © 2011–2022 The Apache Software Foundation. All rights reserved.