public class SingleStringInputDeferredEvaluationExpressionDimensionVectorSelector extends Object implements SingleValueDimensionVectorSelector
SingleValueDimensionVectorSelector decorator that directly exposes the underlying dictionary ids in
getRowVector(), saving expression computation until lookupName(int) is called. This allows for
performing operations like grouping on the native dictionary ids, and deferring expression evaluation until
after, which can dramatically reduce the total number of evaluations.CARDINALITY_UNKNOWN| Constructor and Description |
|---|
SingleStringInputDeferredEvaluationExpressionDimensionVectorSelector(SingleValueDimensionVectorSelector selector,
Expr expression) |
| Modifier and Type | Method and Description |
|---|---|
int |
getCurrentVectorSize()
Returns the current vector size for this cursor.
|
int |
getMaxVectorSize()
Returns the maximum vector size for this cursor.
|
int[] |
getRowVector()
Get the current vector.
|
int |
getValueCardinality()
Value cardinality is the cardinality of the different occurring values.
|
IdLookup |
idLookup()
Returns
IdLookup if available for this DimensionSelector, or null. |
String |
lookupName(int id)
Returns the value for a particular dictionary id as a Java String.
|
boolean |
nameLookupPossibleInAdvance()
Returns true if it is possible to
DimensionDictionarySelector.lookupName(int) by ids from 0 to DimensionDictionarySelector.getValueCardinality()
before the rows with those ids are returned. |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitlookupNameUtf8, supportsLookupNameUtf8public SingleStringInputDeferredEvaluationExpressionDimensionVectorSelector(SingleValueDimensionVectorSelector selector, Expr expression)
public int getValueCardinality()
DimensionDictionarySelectorgetValueCardinality in interface DimensionDictionarySelectorDimensionDictionarySelector.CARDINALITY_UNKNOWN if unknown.@Nullable public String lookupName(int id)
DimensionDictionarySelectorjava.lang.String, always use this method. It will be at least as fast
as calling DimensionDictionarySelector.lookupNameUtf8(int) and decoding the bytes. However, if you want UTF-8 bytes, then check if
DimensionDictionarySelector.supportsLookupNameUtf8() returns true, and if it does, use DimensionDictionarySelector.lookupNameUtf8(int) instead.lookupName in interface DimensionDictionarySelectorid - id to lookup the dictionary value forpublic boolean nameLookupPossibleInAdvance()
DimensionDictionarySelectorDimensionDictionarySelector.lookupName(int) by ids from 0 to DimensionDictionarySelector.getValueCardinality()
before the rows with those ids are returned.
Returns false if DimensionDictionarySelector.lookupName(int) could be called with ids, returned from the most recent row (or row
vector) returned by this DimensionSelector, but not earlier. If DimensionDictionarySelector.getValueCardinality() of this
selector additionally returns DimensionDictionarySelector.CARDINALITY_UNKNOWN, lookupName() couldn't be called with
ids, returned by not the most recent row (or row vector), i. e. names for ids couldn't be looked up "later". If
DimensionDictionarySelector.getValueCardinality() returns a non-negative number, lookupName() could be called with any ids,
returned from rows (or row vectors) returned since the creation of this DimensionSelector.
If DimensionDictionarySelector.lookupName(int) is called with an ineligible id, result is undefined: exception could be thrown, or
null returned, or some other random value.
nameLookupPossibleInAdvance in interface DimensionDictionarySelector@Nullable public IdLookup idLookup()
DimensionDictionarySelectorIdLookup if available for this DimensionSelector, or null.idLookup in interface DimensionDictionarySelectorpublic int[] getRowVector()
SingleValueDimensionVectorSelectorgetRowVector in interface SingleValueDimensionVectorSelectorpublic int getMaxVectorSize()
VectorSizeInspectorgetMaxVectorSize in interface VectorSizeInspectorpublic int getCurrentVectorSize()
VectorSizeInspectorVectorSizeInspector.getMaxVectorSize().getCurrentVectorSize in interface VectorSizeInspectorCopyright © 2011–2023 The Apache Software Foundation. All rights reserved.