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.Factory
IValueExpression
instance.create
in interface FunctionRegistry.Factory
context
- The BOpContextBase
required to evaluate
IValueExpression
s. 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 IAggregate
s).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.