public static class FunctionRegistry.InFactory extends Object implements FunctionRegistry.Factory
NumericExpression IN ArgList is an infix operator. The left
argument in the syntax must be provided as the first argument to this
factory. The ArgList must be provided as the [1...nargs] arguments to the
factory.
This optimizes IN/0 (foo IN()) as FALSE.
This optimizes IN/1 (foo IN(valueExpr) as SameTerm.
This optimizes expr IN Constants using a hash set over the constants.
| Modifier and Type | Class and Description |
|---|---|
static interface |
FunctionRegistry.InFactory.Annotations |
| Constructor and Description |
|---|
FunctionRegistry.InFactory(boolean not) |
| Modifier and Type | Method and Description |
|---|---|
IValueExpression<? extends IV> |
create(BOpContextBase context,
GlobalAnnotations globals,
Map<String,Object> scalarValues,
ValueExpressionNode... args)
Create an
IValueExpression instance. |
public FunctionRegistry.InFactory(boolean not)
not - true iff this is NOT IN.public IValueExpression<? extends IV> create(BOpContextBase context, GlobalAnnotations globals, Map<String,Object> scalarValues, ValueExpressionNode... args)
FunctionRegistry.FactoryIValueExpression instance.create in interface FunctionRegistry.Factorycontext - The BOpContextBase required to evaluate
IValueExpressions. This is used if we need to
statically evaluate an IValueExpression during
query optimization. During query execution the
ContextBindingSet will convey this information.globals - The global annotations, including the lexicon namespace.scalarValues - The scalar arguments (used by some IAggregates).args - The function arguments.IValueExpression.create() was refactored to pass in the
{@link BOpContextBase} to allow correct resolution of the
{@link LexiconRelation} and {@link ILexiconConfiguration} in
order to properly evaluate {@link IValueExpression}s during
query optimization.Copyright © 2006–2019 SYSTAP, LLC DBA Blazegraph. All rights reserved.