public class ASTSimpleOptionalOptimizer extends Object implements IASTOptimizer
Note: When the filter is lifted, it must be attached to the statement pattern node such that toPredicate() puts them onto the predicate since they must run *with* the join for that predicate. (The problem is that ?x != Bar is filtering the optional join, not ?x).
where {
?x type Foo . // adds binding for ?x
optional {
?x p ?y . // adds bindings for ?y if ?x != Bar
filter (?x != Bar) .
}
}
| Constructor and Description |
|---|
ASTSimpleOptionalOptimizer() |
| Modifier and Type | Method and Description |
|---|---|
QueryNodeWithBindingSet |
optimize(AST2BOpContext context,
QueryNodeWithBindingSet input)
Optimize the AST.
|
public QueryNodeWithBindingSet optimize(AST2BOpContext context, QueryNodeWithBindingSet input)
IASTOptimizeroptimize in interface IASTOptimizercontext - The evaluation context.input - The input to the optimizer, consisting of a queryNode and
input binding set.Copyright © 2006–2019 SYSTAP, LLC DBA Blazegraph. All rights reserved.