public class ASTRunFirstRunLastOptimizer extends Object implements IASTOptimizer
IGroupMemberNode
within a
JoinGroupNode
in the right order w.r.t. to the other types.
Basically the ASTRunFirstRunLastOptimizer will look for IJoinNodes that have a query hint of QueryHints.RUN_FIRST=true or RUN_LAST=true. If it finds more than one "run first" or "run last" it will throw an exception. If it finds an optional marked as "run first" it will throw an exception. It will then scan the group and identify the first and last indices for IJoinNodes, and place the run first and run last IJoinNodes at those indices. The static optimizer will also look for a "run first" IJoinNode in a group and make sure that it gets run first in the group (of the statement patterns).
Constructor and Description |
---|
ASTRunFirstRunLastOptimizer() |
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.