Package org.apache.druid.math.expr
Interface Expr.InputBindingInspector
-
- All Known Subinterfaces:
ApplyFunction.IndexableFoldLambdaBinding
,ApplyFunction.IndexableMapLambdaObjectBinding
,ColumnIndexSelector
,ColumnInspector
,ColumnSelector
,ColumnSelectorFactory
,Expr.ObjectBinding
,Expr.VectorInputBinding
,Expr.VectorInputBindingInspector
,QueryableIndex
,StorageAdapter
,VectorColumnSelectorFactory
- All Known Implementing Classes:
AllNullColumnSelectorFactory
,ApplyFunction.CartesianFoldLambdaBinding
,ApplyFunction.CartesianMapLambdaBinding
,ApplyFunction.FoldLambdaBinding
,ApplyFunction.LambdaInputBindingInspector
,ApplyFunction.MapLambdaBinding
,ApplyFunction.SettableLambdaBinding
,ColumnCache
,ColumnSelectorColumnIndexSelector
,DefaultColumnSelectorFactoryMaker.ColumnAccessorBasedColumnSelectorFactory
,DeprecatedQueryableIndexColumnSelector
,ExpressionLambdaAggregatorInputBindings
,ExpressionVectorInputBinding
,FilteredStorageAdapter
,FrameColumnSelectorFactory
,FrameQueryableIndex
,FrameStorageAdapter
,HashJoinSegmentStorageAdapter
,IncrementalIndex
,IncrementalIndexStorageAdapter
,IndexedTableColumnSelectorFactory
,InputBindings.BestEffortInputBindings
,LookupColumnSelectorFactory
,MultiColumnSelectorFactory
,OnheapIncrementalIndex
,QueryableIndexColumnSelectorFactory
,QueryableIndexStorageAdapter
,QueryableIndexVectorColumnSelectorFactory
,RowBasedColumnSelectorFactory
,RowBasedStorageAdapter
,RowSignature
,SettableObjectBinding
,SimpleQueryableIndex
,SingleInputBindings
,UnnestStorageAdapter
,VirtualizedColumnInspector
,VirtualizedColumnSelectorFactory
- Enclosing interface:
- Expr
public static interface Expr.InputBindingInspector
Mechanism to supply input types for the bindings which will backIdentifierExpr
, to use in the aid of inferring the output type of an expression withExpr.getOutputType(org.apache.druid.math.expr.Expr.InputBindingInspector)
. A null value means that either the binding doesn't exist, or, that the type information is unavailable.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default boolean
areNumeric(List<Expr> args)
Check if all providedExpr
can infer the output type asTypeSignature.isNumeric()
with a value of true (or null, which is not a type) There must be at least one expression with a computable numeric output type for this method to return true.default boolean
areNumeric(Expr... args)
Check if all providedExpr
can infer the output type asTypeSignature.isNumeric()
with a value of true (or null, which is not a type) There must be at least one expression with a computable numeric output type for this method to return true.default boolean
areSameTypes(List<Expr> args)
Check if all arguments are the same type (or null, which is not a type) This method should only be used ifgetType(java.lang.String)
produces accurate information for all bindings (no null value for type unless the input binding does not exist and so the input is always null)default boolean
areSameTypes(Expr... args)
Check if all arguments are the same type (or null, which is not a type) This method should only be used ifgetType(java.lang.String)
produces accurate information for all bindings (no null value for type unless the input binding does not exist and so the input is always null)default boolean
areScalar(List<Expr> args)
Check if all providedExpr
can infer the output type asTypeSignature.isPrimitive()
(non-array) with a value of true (or null, which is not a type) There must be at least one expression with a computable scalar output type for this method to return true.default boolean
areScalar(Expr... args)
Check if all providedExpr
can infer the output type asTypeSignature.isPrimitive()
(non-array) with a value of true (or null, which is not a type) There must be at least one expression with a computable scalar output type for this method to return true.default boolean
canVectorize(List<Expr> args)
Check if every providedExpr
computesExpr.canVectorize(InputBindingInspector)
to a value of truedefault boolean
canVectorize(Expr... args)
Check if every providedExpr
computesExpr.canVectorize(InputBindingInspector)
to a value of trueExpressionType
getType(String name)
Get theExpressionType
from the backing store for a given identifier (this is likely a column, but could be other things depending on the backing adapter)
-
-
-
Method Detail
-
getType
@Nullable ExpressionType getType(String name)
Get theExpressionType
from the backing store for a given identifier (this is likely a column, but could be other things depending on the backing adapter)
-
areNumeric
default boolean areNumeric(List<Expr> args)
Check if all providedExpr
can infer the output type asTypeSignature.isNumeric()
with a value of true (or null, which is not a type) There must be at least one expression with a computable numeric output type for this method to return true. This method should only be used ifgetType(java.lang.String)
produces accurate information for all bindings (no null value for type unless the input binding does not exist and so the input is always null)
-
areNumeric
default boolean areNumeric(Expr... args)
Check if all providedExpr
can infer the output type asTypeSignature.isNumeric()
with a value of true (or null, which is not a type) There must be at least one expression with a computable numeric output type for this method to return true. This method should only be used ifgetType(java.lang.String)
produces accurate information for all bindings (no null value for type unless the input binding does not exist and so the input is always null)
-
areSameTypes
default boolean areSameTypes(List<Expr> args)
Check if all arguments are the same type (or null, which is not a type) This method should only be used ifgetType(java.lang.String)
produces accurate information for all bindings (no null value for type unless the input binding does not exist and so the input is always null)
-
areSameTypes
default boolean areSameTypes(Expr... args)
Check if all arguments are the same type (or null, which is not a type) This method should only be used ifgetType(java.lang.String)
produces accurate information for all bindings (no null value for type unless the input binding does not exist and so the input is always null)
-
areScalar
default boolean areScalar(List<Expr> args)
Check if all providedExpr
can infer the output type asTypeSignature.isPrimitive()
(non-array) with a value of true (or null, which is not a type) There must be at least one expression with a computable scalar output type for this method to return true. This method should only be used ifgetType(java.lang.String)
produces accurate information for all bindings (no null value for type unless the input binding does not exist and so the input is always null)
-
areScalar
default boolean areScalar(Expr... args)
Check if all providedExpr
can infer the output type asTypeSignature.isPrimitive()
(non-array) with a value of true (or null, which is not a type) There must be at least one expression with a computable scalar output type for this method to return true. This method should only be used ifgetType(java.lang.String)
produces accurate information for all bindings (no null value for type unless the input binding does not exist and so the input is always null)
-
canVectorize
default boolean canVectorize(List<Expr> args)
Check if every providedExpr
computesExpr.canVectorize(InputBindingInspector)
to a value of true
-
canVectorize
default boolean canVectorize(Expr... args)
Check if every providedExpr
computesExpr.canVectorize(InputBindingInspector)
to a value of true
-
-