Class RulePushNonJoinCriteria
- java.lang.Object
-
- org.teiid.query.optimizer.relational.rules.RulePushNonJoinCriteria
-
- All Implemented Interfaces:
OptimizerRule
public final class RulePushNonJoinCriteria extends Object implements OptimizerRule
Pushes on criteria out of the on clause if possible. If the join no longer contains criteria, it will be changed into a cross join. Upon a successful push, RulePushSelectCriteria will be run again.
-
-
Constructor Summary
Constructors Constructor Description RulePushNonJoinCriteria(boolean firstRun)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description PlanNode
execute(PlanNode plan, QueryMetadataInterface metadata, CapabilitiesFinder capFinder, RuleStack rules, AnalysisRecord analysisRecord, CommandContext context)
Execute the rule as described in the class comments.String
toString()
-
-
-
Method Detail
-
execute
public PlanNode execute(PlanNode plan, QueryMetadataInterface metadata, CapabilitiesFinder capFinder, RuleStack rules, AnalysisRecord analysisRecord, CommandContext context) throws QueryPlannerException, QueryMetadataException, TeiidComponentException
Execute the rule as described in the class comments.- Specified by:
execute
in interfaceOptimizerRule
- Parameters:
plan
- Incoming query plan, may be modified during method and may be returned from methodmetadata
- Metadata sourcerules
- Rules from optimizer rule stack, may be manipulated during method- Returns:
- Updated query plan if rule fired, else original query plan
- Throws:
QueryPlannerException
QueryMetadataException
TeiidComponentException
-
-