public class ASTAttachJoinFiltersOptimizer extends Object implements IASTOptimizer
FilterNode
s which will run as "join filters" to
StatementPatternNode
s. The joins must already be in the order in
which they will be evaluated. Join filters which are already attached to
required joins will be pick up and reattached as appropriate for the current
join evaluation order.
Note: Even though a FilterNode
is attached to a given join, the
FilterNode
may have materialization requirements which make it
impossible to evaluate the constraint on the physical JOIN operator. In such
cases, a materialization pattern will be used to ensure that the necessary
variables have been materialized before the constraint runs. The
materialization pipeline, of necessity, runs after the join and the
constraint will be modeled as a ConditionalRoutingOp
. However, this
optimizer is NOT responsible for those decisions. It just attaches filters to
join based on when their variables become bound, not when their variables are
known to satisify the materialization requirements for the filter.
Constructor and Description |
---|
ASTAttachJoinFiltersOptimizer() |
Modifier and Type | Method and Description |
---|---|
QueryNodeWithBindingSet |
optimize(AST2BOpContext context,
QueryNodeWithBindingSet input)
Optimize the AST.
|
public QueryNodeWithBindingSet optimize(AST2BOpContext context, QueryNodeWithBindingSet input)
IASTOptimizer
optimize
in interface IASTOptimizer
context
- 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.