public class SingleStringInputCachingExpressionColumnValueSelector extends Object implements ColumnValueSelector<ExprEval>
ExpressionColumnValueSelector
, but caches results for the first CACHE_SIZE dictionary IDs of
a string column. Must only be used on selectors with dictionaries.Modifier and Type | Class and Description |
---|---|
static class |
SingleStringInputCachingExpressionColumnValueSelector.LruEvalCache |
EMPTY_ARRAY
Constructor and Description |
---|
SingleStringInputCachingExpressionColumnValueSelector(DimensionSelector selector,
Expr expression) |
Modifier and Type | Method and Description |
---|---|
Class<ExprEval> |
classOfObject() |
double |
getDouble() |
float |
getFloat() |
long |
getLong() |
ExprEval |
getObject() |
void |
inspectRuntimeShape(RuntimeShapeInspector inspector)
Implementations of this method should call
inspector.visit() with all fields of this class, which meet two
conditions:
1. |
boolean |
isNull()
Returns true if the primitive long, double, or float value returned by this selector should be treated as null.
|
public SingleStringInputCachingExpressionColumnValueSelector(DimensionSelector selector, Expr expression)
public void inspectRuntimeShape(RuntimeShapeInspector inspector)
HotLoopCallee
inspector.visit()
with all fields of this class, which meet two
conditions:
1. They are used in methods of this class, annotated with CalledFromHotLoop
2. They are either:
a. Nullable objects
b. Instances of HotLoopCallee
c. Objects, which don't always have a specific class in runtime. For example, a field of type Set
could be HashSet
or TreeSet
in runtime, depending on how
this instance (the instance on which inspectRuntimeShape() is called) is configured.
d. ByteBuffer or similar objects, where byte order matters
e. boolean flags, affecting branch taking
f. Arrays of objects, meeting any of conditions a-e.inspectRuntimeShape
in interface HotLoopCallee
public double getDouble()
getDouble
in interface BaseDoubleColumnValueSelector
public float getFloat()
getFloat
in interface BaseFloatColumnValueSelector
public long getLong()
getLong
in interface BaseLongColumnValueSelector
@Nullable public ExprEval getObject()
getObject
in interface BaseObjectColumnValueSelector<ExprEval>
public Class<ExprEval> classOfObject()
classOfObject
in interface BaseObjectColumnValueSelector<ExprEval>
public boolean isNull()
BaseNullableColumnValueSelector
BaseLongColumnValueSelector.getLong()
, BaseDoubleColumnValueSelector.getDouble()
and BaseFloatColumnValueSelector.getFloat()
must check this method first, or else they may improperly
use placeholder values returned by the primitive get methods.
Users of BaseObjectColumnValueSelector.getObject()
should not call this method. Instead, call "getObject"
and check if it is null.isNull
in interface BaseNullableColumnValueSelector
Copyright © 2011–2021 The Apache Software Foundation. All rights reserved.