public class DoubleGroupByColumnSelectorStrategy extends Object implements GroupByColumnSelectorStrategy
GROUP_BY_MISSING_VALUE
Constructor and Description |
---|
DoubleGroupByColumnSelectorStrategy() |
Modifier and Type | Method and Description |
---|---|
boolean |
checkRowIndexAndAddValueToGroupingKey(int keyBufferPosition,
Object rowObj,
int rowValIdx,
ByteBuffer keyBuffer)
If rowValIdx is less than the size of rowObj (haven't handled all of the row values):
First, read the value at rowValIdx from a rowObj and write that value to the keyBuffer at keyBufferPosition.
|
int |
getGroupingKeySize()
Return the size, in bytes, of this dimension's values in the grouping key.
|
Object |
getOnlyValue(ColumnValueSelector selector)
Retrieve a single object using the
ColumnValueSelector . |
void |
initColumnValues(ColumnValueSelector selector,
int columnIndex,
Object[] values)
Retrieve a row object from the
ColumnValueSelector and put it in valuess at columnIndex. |
void |
initGroupingKeyColumnValue(int keyBufferPosition,
int columnIndex,
Object rowObj,
ByteBuffer keyBuffer,
int[] stack)
Read the first value within a row values object (e.
|
void |
processValueFromGroupingKey(GroupByColumnSelectorPlus selectorPlus,
ByteBuffer key,
Map<String,Object> resultMap)
Read a value from a grouping key and add it to the group by query result map, using the output name specified
in a DimensionSpec.
|
void |
writeToKeyBuffer(int keyBufferPosition,
Object obj,
ByteBuffer keyBuffer)
Write a given object to the keyBuffer at keyBufferPosition.
|
public int getGroupingKeySize()
GroupByColumnSelectorStrategy
getGroupingKeySize
in interface GroupByColumnSelectorStrategy
public void processValueFromGroupingKey(GroupByColumnSelectorPlus selectorPlus, ByteBuffer key, Map<String,Object> resultMap)
GroupByColumnSelectorStrategy
processValueFromGroupingKey
in interface GroupByColumnSelectorStrategy
selectorPlus
- dimension info containing the key offset, value selector, and dimension speckey
- grouping keyresultMap
- result map for the group by query being servedpublic void initColumnValues(ColumnValueSelector selector, int columnIndex, Object[] values)
GroupByColumnSelectorStrategy
ColumnValueSelector
and put it in valuess at columnIndex.initColumnValues
in interface GroupByColumnSelectorStrategy
selector
- Value selector for a column.columnIndex
- Index of the column within the row values arrayvalues
- Row values array, one index per columnpublic Object getOnlyValue(ColumnValueSelector selector)
GroupByColumnSelectorStrategy
ColumnValueSelector
. The reading column must have a single value.getOnlyValue
in interface GroupByColumnSelectorStrategy
selector
- Value selector for a columnpublic void writeToKeyBuffer(int keyBufferPosition, Object obj, ByteBuffer keyBuffer)
GroupByColumnSelectorStrategy
writeToKeyBuffer
in interface GroupByColumnSelectorStrategy
keyBufferPosition
- starting offset for this column's value within the grouping keyobj
- row value object retrieved from GroupByColumnSelectorStrategy.getOnlyValue(ColumnValueSelector)
keyBuffer
- grouping keypublic void initGroupingKeyColumnValue(int keyBufferPosition, int columnIndex, Object rowObj, ByteBuffer keyBuffer, int[] stack)
GroupByColumnSelectorStrategy
IndexedInts
, as the value in
a dictionary-encoded string column) and write that value to the keyBuffer at keyBufferPosition. If the row size is
0 (e. g. IndexedInts.size()
), write GroupByColumnSelectorStrategy.GROUP_BY_MISSING_VALUE
instead.
If the size of the row is > 0, write 1 to stack[] at columnIndex, otherwise write 0.initGroupingKeyColumnValue
in interface GroupByColumnSelectorStrategy
keyBufferPosition
- Starting offset for this column's value within the grouping key.columnIndex
- Index of the column within the row values arrayrowObj
- Row value object for this columnkeyBuffer
- grouping keystack
- array containing the current within-row value index for each columnpublic boolean checkRowIndexAndAddValueToGroupingKey(int keyBufferPosition, Object rowObj, int rowValIdx, ByteBuffer keyBuffer)
GroupByColumnSelectorStrategy
checkRowIndexAndAddValueToGroupingKey
in interface GroupByColumnSelectorStrategy
keyBufferPosition
- Starting offset for this column's value within the grouping key.rowObj
- Row value object for this column (e.g., IndexedInts)rowValIdx
- Index of the current value being grouped on within the rowkeyBuffer
- grouping keyCopyright © 2011–2018. All rights reserved.