Class AbstractRewritingRuleImpl
java.lang.Object
se.liu.ida.hefquin.engine.queryproc.impl.poptimizer.rewriting.rules.AbstractRewritingRuleImpl
- All Implemented Interfaces:
RewritingRule
- Direct Known Subclasses:
GenericRuleChangeOrderOfTwoUnaryOp,GenericRuleMergeBGPAddOfReqIntoOneBGPReq,GenericRuleMergeJoinOfTwoReqIntoOneBGPReq,RuleChangeOrderAndMergeJoinOfBGPReqIntoBGPAdd,RuleChangeOrderAndMergeJoinOfTPReqIntoTPAdd,RuleChangeOrderOfThreeSubPlansOfJOIN,RuleChangeOrderOfThreeSubPlansOfUNION,RuleChangeOrderOfTwoSubPlansOfJOIN,RuleChangeOrderOfTwoSubPlansOfUNION,RuleConvertBGPAddToBJFILTER,RuleConvertBGPAddToBJUNION,RuleConvertBGPAddToBJVALUES,RuleConvertBGPAddToHashJoin,RuleConvertBGPAddToIndexNLJ,RuleConvertBGPAddToSymmetricHashJoin,RuleConvertGBPAddToNaiveNLJ,RuleConvertTPAddToBindJoin,RuleConvertTPAddToBJFILTER,RuleConvertTPAddToBJUNION,RuleConvertTPAddToBJVALUES,RuleConvertTPAddToHashJoin,RuleConvertTPAddToIndexNLJ,RuleConvertTPAddToNaiveNLJ,RuleConvertTPAddToSymmetricHashJoin,RuleConvertUnionOfTwoJoinsToJoinOfUnion,RuleDistributeJOINOverUNION,RuleDivideBGPAddToMultiTPAdd,RuleDivideBGPReqIntoJoinOfTPReqs,RuleDivideBGPReqIntoMultiTPAdds,RuleDivideMultiwayJoinToJoinOfSubPlans,RuleDivideMultiwayUnionToUnionOfSubPlans,RuleMergeBGPAddOfGraphPatternReqIntoOneRequest,RuleMergeChildJoinIntoMultiwayJoin,RuleMergeChildUnionIntoMultiwayUnion,RuleMergeJoinOfOneBGPReqIntoBGPAdd,RuleMergeJoinOfOneTPReqIntoTPAdd,RuleMergeJoinOfTwoPatternReqIntoOneReq,RuleMergeMultiwayJoinOfMultiIdenticalSubPlansIntoOne,RuleMergeMultiwayUnionOfMultiIdenticalSubPlansIntoOne,RuleMergeTPAddOfBGPAddIntoBGPAdd,RuleMergeTPAddOfBGPReqIntoOneRequest,RuleMergeTPAddOfGraphPatternReqIntoOneRequest,RuleMergeTwoBGPAddIntoOneBGPAdd,RuleMergeUnionOfTwoIdenticalSubPlansIntoOne,RuleMergeUNIONOfTwoPatternReqIntoOneReq
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract booleancanBeAppliedTo(PhysicalPlan plan) protected voidcollectAllPossibleApplications(PhysicalPlan plan, Set<RuleApplication> collectedRuleApps, Stack<PhysicalPlan> currentPathFromRoot) protected abstract RuleApplicationcreateRuleApplication(PhysicalPlan[] pathToTargetPlan) Returns all possible applications of this rule for the given plan.double
-
Field Details
-
priority
protected final double priority
-
-
Constructor Details
-
AbstractRewritingRuleImpl
public AbstractRewritingRuleImpl(double priority)
-
-
Method Details
-
getPriority
public double getPriority()- Specified by:
getPriorityin interfaceRewritingRule
-
determineAllPossibleApplications
Description copied from interface:RewritingRuleReturns all possible applications of this rule for the given plan. Each of the returnedRuleApplicationobjects will return the given plan when callingRuleApplication.getPlan()and it will return this rule when callingRuleApplication.getRule().- Specified by:
determineAllPossibleApplicationsin interfaceRewritingRule
-
collectAllPossibleApplications
protected void collectAllPossibleApplications(PhysicalPlan plan, Set<RuleApplication> collectedRuleApps, Stack<PhysicalPlan> currentPathFromRoot) -
canBeAppliedTo
-
createRuleApplication
-