Uses of Interface
se.liu.ida.hefquin.engine.queryplan.logical.LogicalPlan
Packages that use LogicalPlan
Package
Description
-
Uses of LogicalPlan in se.liu.ida.hefquin.engine.queryplan.logical
Subinterfaces of LogicalPlan in se.liu.ida.hefquin.engine.queryplan.logicalModifier and TypeInterfaceDescriptioninterfaceinterfaceinterfaceinterfaceMethods in se.liu.ida.hefquin.engine.queryplan.logical that return LogicalPlanModifier and TypeMethodDescriptionstatic LogicalPlanLogicalPlanUtils.createPlanWithBinaryJoin(LogicalPlan subPlan1, LogicalPlan subPlan2, Iterable<QueryPlanProperty> qpInfo) Creates aLogicalPlanwith aLogicalOpJoinas root operator and the given plans as its two subplans.static LogicalPlanLogicalPlanUtils.createPlanWithBinaryUnion(LogicalPlan subPlan1, LogicalPlan subPlan2, Iterable<QueryPlanProperty> qpInfo) Creates aLogicalPlanwith aLogicalOpUnionas root operator and the given plans as its two subplans.static LogicalPlanLogicalPlanUtils.createPlanWithMultiwayJoin(Iterable<QueryPlanProperty> qpInfo, LogicalPlan... subPlans) Creates aLogicalPlanwith aLogicalOpMultiwayJoinas root operator and the given plans as its subplans.static LogicalPlanLogicalPlanUtils.createPlanWithMultiwayJoin(List<LogicalPlan> subPlans, Iterable<QueryPlanProperty> qpInfo) Creates aLogicalPlanwith aLogicalOpMultiwayJoinas root operator and the given plans as its subplans.static LogicalPlanLogicalPlanUtils.createPlanWithMultiwayUnion(Iterable<QueryPlanProperty> qpInfo, LogicalPlan... subPlans) Creates aLogicalPlanwith aLogicalOpMultiwayUnionas root operator and the given plans as its subplans.static LogicalPlanLogicalPlanUtils.createPlanWithMultiwayUnion(List<LogicalPlan> subPlans, Iterable<QueryPlanProperty> qpInfo) Creates aLogicalPlanwith aLogicalOpMultiwayUnionas root operator and the given plans as its subplans.static LogicalPlanLogicalPlanUtils.createPlanWithSubPlans(LogicalOperator rootOp, Iterable<QueryPlanProperty> qpInfo, List<LogicalPlan> subPlans) Creates aLogicalPlanwith the given operator as root operator and the plans given in the list as subplans.static LogicalPlanLogicalPlanUtils.createPlanWithSubPlans(LogicalOperator rootOp, Iterable<QueryPlanProperty> qpInfo, LogicalPlan... subPlans) Creates aLogicalPlanwith the given operator as root operator and the given plans as subplans.LogicalPlan.getSubPlan(int i) LogicalPlanWithUnaryRoot.getSubPlan()Convenience method that always should return the same as what is returned by callinggetSubPlan(int)with a value of 0.LogicalPlanWithBinaryRoot.getSubPlan1()Convenience method that always should return the same as what is returned by callinggetSubPlan(int)with a value of 0.LogicalPlanWithBinaryRoot.getSubPlan2()Convenience method that always should return the same as what is returned by callinggetSubPlan(int)with a value of 1.Methods in se.liu.ida.hefquin.engine.queryplan.logical that return types with arguments of type LogicalPlanModifier and TypeMethodDescriptionLogicalPlanWithNaryRoot.getSubPlans()Convenience method that always should return an iterator over the same sub-plans that can be accessed viagetSubPlan(int).Methods in se.liu.ida.hefquin.engine.queryplan.logical with parameters of type LogicalPlanModifier and TypeMethodDescriptionstatic intLogicalPlanUtils.countSubplans(LogicalPlan plan) static LogicalPlanLogicalPlanUtils.createPlanWithBinaryJoin(LogicalPlan subPlan1, LogicalPlan subPlan2, Iterable<QueryPlanProperty> qpInfo) Creates aLogicalPlanwith aLogicalOpJoinas root operator and the given plans as its two subplans.static LogicalPlanLogicalPlanUtils.createPlanWithBinaryUnion(LogicalPlan subPlan1, LogicalPlan subPlan2, Iterable<QueryPlanProperty> qpInfo) Creates aLogicalPlanwith aLogicalOpUnionas root operator and the given plans as its two subplans.static LogicalPlanLogicalPlanUtils.createPlanWithMultiwayJoin(Iterable<QueryPlanProperty> qpInfo, LogicalPlan... subPlans) Creates aLogicalPlanwith aLogicalOpMultiwayJoinas root operator and the given plans as its subplans.static LogicalPlanLogicalPlanUtils.createPlanWithMultiwayUnion(Iterable<QueryPlanProperty> qpInfo, LogicalPlan... subPlans) Creates aLogicalPlanwith aLogicalOpMultiwayUnionas root operator and the given plans as its subplans.static LogicalPlanLogicalPlanUtils.createPlanWithSubPlans(LogicalOperator rootOp, Iterable<QueryPlanProperty> qpInfo, LogicalPlan... subPlans) Creates aLogicalPlanwith the given operator as root operator and the given plans as subplans.static booleanLogicalPlanUtils.isSourceAssignment(LogicalPlan plan) Returns true if the given logical plan is a source assignment.voidLogicalPlanWalker.LogicalWalkerVisitor.walk(LogicalPlan plan) static voidLogicalPlanWalker.walk(LogicalPlan plan, LogicalPlanVisitor beforeVisitor, LogicalPlanVisitor afterVisitor) Method parameters in se.liu.ida.hefquin.engine.queryplan.logical with type arguments of type LogicalPlanModifier and TypeMethodDescriptionstatic LogicalPlanLogicalPlanUtils.createPlanWithMultiwayJoin(List<LogicalPlan> subPlans, Iterable<QueryPlanProperty> qpInfo) Creates aLogicalPlanwith aLogicalOpMultiwayJoinas root operator and the given plans as its subplans.static LogicalPlanLogicalPlanUtils.createPlanWithMultiwayUnion(List<LogicalPlan> subPlans, Iterable<QueryPlanProperty> qpInfo) Creates aLogicalPlanwith aLogicalOpMultiwayUnionas root operator and the given plans as its subplans.static LogicalPlanLogicalPlanUtils.createPlanWithSubPlans(LogicalOperator rootOp, Iterable<QueryPlanProperty> qpInfo, List<LogicalPlan> subPlans) Creates aLogicalPlanwith the given operator as root operator and the plans given in the list as subplans. -
Uses of LogicalPlan in se.liu.ida.hefquin.engine.queryplan.logical.impl
Classes in se.liu.ida.hefquin.engine.queryplan.logical.impl that implement LogicalPlanModifier and TypeClassDescriptionclassclassclassclassMethods in se.liu.ida.hefquin.engine.queryplan.logical.impl that return LogicalPlanModifier and TypeMethodDescriptionLogicalPlanWithBinaryRootImpl.getSubPlan(int i) LogicalPlanWithNaryRootImpl.getSubPlan(int i) LogicalPlanWithNullaryRootImpl.getSubPlan(int i) LogicalPlanWithUnaryRootImpl.getSubPlan()LogicalPlanWithUnaryRootImpl.getSubPlan(int i) LogicalPlanWithBinaryRootImpl.getSubPlan1()LogicalPlanWithBinaryRootImpl.getSubPlan2()Methods in se.liu.ida.hefquin.engine.queryplan.logical.impl that return types with arguments of type LogicalPlanConstructors in se.liu.ida.hefquin.engine.queryplan.logical.impl with parameters of type LogicalPlanModifierConstructorDescriptionLogicalPlanWithBinaryRootImpl(BinaryLogicalOp rootOp, Iterable<QueryPlanProperty> qpInfo, LogicalPlan subPlan1, LogicalPlan subPlan2) Constructor.LogicalPlanWithNaryRootImpl(NaryLogicalOp rootOp, Iterable<QueryPlanProperty> qpInfo, LogicalPlan... subPlans) Constructor.LogicalPlanWithUnaryRootImpl(UnaryLogicalOp rootOp, Iterable<QueryPlanProperty> qpInfo, LogicalPlan subPlan) Constructor.Constructor parameters in se.liu.ida.hefquin.engine.queryplan.logical.impl with type arguments of type LogicalPlanModifierConstructorDescriptionLogicalPlanWithNaryRootImpl(NaryLogicalOp rootOp, Iterable<QueryPlanProperty> qpInfo, List<LogicalPlan> subPlans) Constructor. -
Uses of LogicalPlan in se.liu.ida.hefquin.engine.queryplan.utils
Fields in se.liu.ida.hefquin.engine.queryplan.utils with type parameters of type LogicalPlanModifier and TypeFieldDescriptionprotected final Map<LogicalPlan, PhysicalPlan> LogicalToPhysicalPlanConverterImpl.Worker.convertedSubPlansMethods in se.liu.ida.hefquin.engine.queryplan.utils with parameters of type LogicalPlanModifier and TypeMethodDescriptionLogicalToPhysicalPlanConverter.convert(LogicalPlan lp, boolean keepMultiwayJoins, QueryProcContext ctxt) LogicalToPhysicalPlanConverterImpl.convert(LogicalPlan lp, boolean keepMultiwayJoins, QueryProcContext ctxt) LogicalToPhysicalPlanConverterImpl.Worker.convert(LogicalPlan lp, boolean keepMultiwayJoins) protected PhysicalPlan[]LogicalToPhysicalPlanConverterImpl.Worker.convertChildren(LogicalPlan lp, boolean keepMultiwayJoins) Converts the sub-plans of the given logical plan (if any) and returns a list of the resulting physical plans.TextBasedLogicalPlanPrinterImpl.createPrintablePlan(LogicalPlan lp) TextBasedLogicalPlanPrinterImpl.createPrintableSubPlans(LogicalPlan lp) voidLogicalPlanPrinter.print(LogicalPlan plan, PrintStream out, LogicalPlanPrinter.LogicalPlanStage planType) Prints the given plan to the given stream.voidLogicalPlanPrinter.print(LogicalPlan plan, LogicalPlanPrinter.LogicalPlanStage planType) Prints the given plan to the stream(s) that are stored in this printer.voidTextBasedLogicalPlanPrinterImpl.print(LogicalPlan plan, PrintStream out, LogicalPlanPrinter.LogicalPlanStage planType) voidTextBasedLogicalPlanPrinterImpl.print(LogicalPlan plan, LogicalPlanPrinter.LogicalPlanStage planType) -
Uses of LogicalPlan in se.liu.ida.hefquin.engine.queryproc
Methods in se.liu.ida.hefquin.engine.queryproc that return LogicalPlanModifier and TypeMethodDescriptionQueryPlanningStats.getResultingLogicalPlan()QueryPlanningStats.getResultingSourceAssignment()LogicalOptimizer.optimize(LogicalPlan inputPlan, boolean keepNaryOperators, QueryProcContext ctxt) Methods in se.liu.ida.hefquin.engine.queryproc that return types with arguments of type LogicalPlanModifier and TypeMethodDescriptionSourcePlanner.createSourceAssignment(Query query, QueryProcContext ctxt) The logical plan returned by this method is a source assignment (see Definition 8 of our FedQPL paper); that is, the only types of operators that it contains are request operators (), multiway joins (invalid reference
LogicalOpRequest), and multiway unions (invalid reference
LogicalOpMultiwayJoin).invalid reference
LogicalOpMultiwayUnionMethods in se.liu.ida.hefquin.engine.queryproc with parameters of type LogicalPlanModifier and TypeMethodDescriptionvoidCardinalityEstimator.addCardinalities(LogicalPlan... plans) Annotates each of the given plans (including, recursively, each of their subplans) with estimates regarding their result cardinalities.LogicalOptimizer.optimize(LogicalPlan inputPlan, boolean keepNaryOperators, QueryProcContext ctxt) PhysicalOptimizer.optimize(LogicalPlan initialPlan, QueryProcContext ctxt) -
Uses of LogicalPlan in se.liu.ida.hefquin.engine.queryproc.impl.cardinality
Methods in se.liu.ida.hefquin.engine.queryproc.impl.cardinality that return types with arguments of type LogicalPlanModifier and TypeMethodDescriptionprotected Set<LogicalPlan> RequestBasedCardinalityEstimator.extractNullarySubPlans(LogicalPlan... plans) Returns all relevant nullary subplans that are somewhere within any of the given plans, where such a subplan is considered relevant if it does not yet have a cardinality estimate.Methods in se.liu.ida.hefquin.engine.queryproc.impl.cardinality with parameters of type LogicalPlanModifier and TypeMethodDescriptionvoidCardinalityEstimationWorker.addCardinalities(LogicalPlan... plans) Determine a cardinality estimate for each of the given plans recursively, assuming that every nullary subplan within each of the given plans is already annotated with a cardinality estimate.voidCardinalityEstimationWorkerImpl.addCardinalities(LogicalPlan... plans) voidRequestBasedCardinalityEstimator.addCardinalities(LogicalPlan... plans) voidRequestBasedCardinalityEstimator.addCardinalitiesForRequests(LogicalPlan... plans) Makes sure that every nullary subplan within each of the given plans is annotated with cardinality estimates (which are determined by issuing cardinality requests).protected voidCardinalityEstimationWorkerImpl.addCardinality(LogicalPlan plan) Assumes that all nullary subplans within the given plan are already annotated with a cardinality estimate.protected Set<LogicalPlan> RequestBasedCardinalityEstimator.extractNullarySubPlans(LogicalPlan... plans) Returns all relevant nullary subplans that are somewhere within any of the given plans, where such a subplan is considered relevant if it does not yet have a cardinality estimate.protected voidRequestBasedCardinalityEstimator.extractNullarySubPlans(LogicalPlan plan, Set<LogicalPlan> extractedSubPlans) Extracts all relevant nullary subplans that are somewhere within the given plan and adds these subplans to the given set, where such a subplan is considered relevant if it does not yet have a cardinality estimate.Method parameters in se.liu.ida.hefquin.engine.queryproc.impl.cardinality with type arguments of type LogicalPlanModifier and TypeMethodDescriptionprotected voidRequestBasedCardinalityEstimator.extractNullarySubPlans(LogicalPlan plan, Set<LogicalPlan> extractedSubPlans) Extracts all relevant nullary subplans that are somewhere within the given plan and adds these subplans to the given set, where such a subplan is considered relevant if it does not yet have a cardinality estimate. -
Uses of LogicalPlan in se.liu.ida.hefquin.engine.queryproc.impl.loptimizer
Methods in se.liu.ida.hefquin.engine.queryproc.impl.loptimizer that return LogicalPlanModifier and TypeMethodDescriptionApplyVocabularyMappings.apply(LogicalPlan inputPlan) Rewrites an initial logical plan into a second plan which incorporates translations of local to global vocabulary and request-operator rewriting.HeuristicForLogicalOptimization.apply(LogicalPlan inputPlan) Applies this heuristics to the given plan and returns the resulting, potentially rewritten plan.HeuristicsBasedLogicalOptimizerImpl.optimize(LogicalPlan inputPlan, boolean keepNaryOperators, QueryProcContext ctxt) static LogicalPlanApplyVocabularyMappings.rewriteReqOf(SPARQLGraphPattern pattern, FederationMember fm) Creates a logical plan where all requests are TriplePatternRequests for use when a federation member's interface is a TPF-server.static LogicalPlanApplyVocabularyMappings.rewriteToUseLocalVocabulary(LogicalPlan inputPlan) Rewrites the given logical plan with a request operator as root into a logical plan that uses the local vocabulary of the federation member of the request.Methods in se.liu.ida.hefquin.engine.queryproc.impl.loptimizer with parameters of type LogicalPlanModifier and TypeMethodDescriptionApplyVocabularyMappings.apply(LogicalPlan inputPlan) Rewrites an initial logical plan into a second plan which incorporates translations of local to global vocabulary and request-operator rewriting.HeuristicForLogicalOptimization.apply(LogicalPlan inputPlan) Applies this heuristics to the given plan and returns the resulting, potentially rewritten plan.HeuristicsBasedLogicalOptimizerImpl.optimize(LogicalPlan inputPlan, boolean keepNaryOperators, QueryProcContext ctxt) static LogicalPlanApplyVocabularyMappings.rewriteToUseLocalVocabulary(LogicalPlan inputPlan) Rewrites the given logical plan with a request operator as root into a logical plan that uses the local vocabulary of the federation member of the request. -
Uses of LogicalPlan in se.liu.ida.hefquin.engine.queryproc.impl.loptimizer.heuristics
Methods in se.liu.ida.hefquin.engine.queryproc.impl.loptimizer.heuristics that return LogicalPlanModifier and TypeMethodDescriptionprotected LogicalPlanCardinalityBasedJoinOrderingBase._apply(LogicalPlan inputPlan) CardinalityBasedJoinOrderingBase.apply(LogicalPlan inputPlan) FilterPushDown.apply(LogicalPlan inputPlan) GreedyBasedReordering.apply(LogicalPlan inputPlan) MergeRequests.apply(LogicalPlan inputPlan) PullUpLtgOverJoin.apply(LogicalPlan inputPlan) PullUpLtgOverUnion.apply(LogicalPlan inputPlan) PushJoinUnderUnionWithRequests.apply(LogicalPlan inputPlan) RemovePairsOfG2lAndL2g.apply(LogicalPlan inputPlan) RemoveUnnecessaryL2gAndG2l.apply(LogicalPlan inputPlan) UnionPullUp.apply(LogicalPlan inputPlan) protected LogicalPlanFilterPushDown.applyToPlanWithFilterAsRootOperator(LogicalOpFilter filterOp, LogicalPlan subPlanUnderFilter, LogicalPlan inputPlan) protected LogicalPlanGreedyBasedReordering.constructBinaryPlan(List<QueryAnalyzer> selectedSubPlans) protected LogicalPlanFilterPushDown.createPlanAfterPushingInSubPlan(LogicalOpFilter parentFilterOp, UnaryLogicalOp childOp, LogicalPlan subPlanUnderChildOp, LogicalPlan inputPlan) protected LogicalPlanFilterPushDown.createPlanForAddOpUnderFilter(LogicalOpFilter parentFilterOp, UnaryLogicalOp childOp, LogicalPlan subPlanUnderChildOp, LogicalPlan inputPlan) Assumes that the given child operator is either a, ainvalid reference
LogicalOpTPAdd, ainvalid reference
LogicalOpTPOptAdd, ainvalid reference
LogicalOpBGPAdd, ainvalid reference
LogicalOpBGPOptAddLogicalOpGPAdd, or aLogicalOpGPOptAdd.protected LogicalPlanFilterPushDown.createPlanForBindUnderFilter(LogicalOpFilter filterOp, LogicalOpBind bindOp, LogicalPlan subPlanUnderBind, LogicalPlan inputPlan) protected LogicalPlanFilterPushDown.createPlanForFilterUnderFilter(LogicalOpFilter parentFilterOp, LogicalOpFilter childFilterOp, LogicalPlan subPlanUnderChildFilterOp) protected LogicalPlanFilterPushDown.createPlanForJoinUnderFilter(LogicalOpFilter filterOp, LogicalPlan subPlanUnderFilter, LogicalPlan inputPlan) protected LogicalPlanFilterPushDown.createPlanForL2GOrG2LUnderFilter(LogicalOpFilter parentFilterOp, UnaryLogicalOp childOp, LogicalPlan subPlanUnderChildOp, LogicalPlan inputPlan) Assumes that the given child operator is either aLogicalOpLocalToGlobalor aLogicalOpGlobalToLocal.protected LogicalPlanFilterPushDown.createPlanForMultiwayLeftJoinUnderFilter(LogicalOpFilter filterOp, LogicalPlan subPlanUnderFilter, LogicalPlan inputPlan) protected LogicalPlanFilterPushDown.createPlanForRequestUnderFilter(LogicalOpFilter filterOp, LogicalOpRequest<?, ?> reqOp, LogicalPlan inputPlan) protected LogicalPlanFilterPushDown.createPlanForRightJoinUnderFilter(LogicalOpFilter filterOp, LogicalPlan nonoptSubPlan, LogicalPlan optSubPlan, LogicalPlan inputPlan) protected LogicalPlanFilterPushDown.createPlanForUnfoldUnderFilter(LogicalOpFilter filterOp, LogicalOpUnfold unfoldOp, LogicalPlan subPlanUnderUnfold, LogicalPlan inputPlan) protected LogicalPlanFilterPushDown.createPlanForUnionUnderFilter(LogicalOpFilter filterOp, LogicalPlan subPlanUnderFilter) protected LogicalPlanMergeRequests.createPlanWithSingleRequestOp(SPARQLGraphPattern p, FederationMember fm) protected static LogicalPlanPullUpLtgOverUnion.extractLtgOverNaryOp(LogicalPlan inputPlan) protected LogicalPlanMergeRequests.mergeSPARQLRequestsViaJoin(FederationMember fm, List<LogicalPlan> reqPlans) Assumes that the given list contains at least two plans and that all plans in the list consist only of a request operator.protected LogicalPlanFilterPushDown.pushToNonOptSubPlan(org.apache.jena.sparql.expr.ExprList filterExprsWithoutAND, LogicalPlan nonoptSubPlan, org.apache.jena.sparql.expr.ExprList toBeKept) protected LogicalPlanGreedyBasedReordering.reorderSubPlans(LogicalPlan inputPlan) protected LogicalPlanPushJoinUnderUnionWithRequests.rewrite(LogicalPlan unionPlan, List<LogicalPlan> subPlansAsInput) UnionPullUp.rewritePlanWithJoinOverUnion(List<LogicalPlan> plansWithUnionRoot, List<LogicalPlan> plansWithNonUnionRoot) Based on the assumptions that i) the plans in the given lists have all been subplans of a join and ii) the given list of union-rooted plans is nonempty, pulls the unions out of these union-rooted plans by joining all their subplans with one another, and also with all the plans given in the other list (plansWithNonUnionRoot).UnionPullUp.rewritePlanWithUnaryRootAndUnionChild(UnaryLogicalOp rootOp, LogicalPlan subPlan) Based on the assumption that the given subplan has a union operator as its root operator, this function pulls up that union by pushing the given unary operator to be the root of each of the children of the union.UnionPullUp.rewritePlanWithUnionRootAndUnionChild(List<LogicalPlan> plansWithUnionRoot, List<LogicalPlan> plansWithNonUnionRoot) Based on the assumptions that i) the plans in the given lists have all been subplans of a union and ii) the given list of union-rooted plans is nonempty, merges all these union-rooted plans (plansWithUnionRoot) into a single union-root plan that has all the subplans of the given union-rooted plans as its subplans, together with all the plans given in the other list (plansWithNonUnionRoot).Methods in se.liu.ida.hefquin.engine.queryproc.impl.loptimizer.heuristics that return types with arguments of type LogicalPlanModifier and TypeMethodDescriptionprotected Pair<LogicalPlan, Integer> CardinalityBasedJoinOrderingBase.determineNextPlan(List<LogicalPlan> selectedPlans, int joinCardOfSelectedPlans, List<LogicalPlan> nextCandidates) Returns the plan from the given list of next candidates that has the lowest join cardinality with a plan consisting of the given selected plans, and that join cardinality will be returned as well.Methods in se.liu.ida.hefquin.engine.queryproc.impl.loptimizer.heuristics with parameters of type LogicalPlanModifier and TypeMethodDescriptionprotected LogicalPlanCardinalityBasedJoinOrderingBase._apply(LogicalPlan inputPlan) CardinalityBasedJoinOrderingBase.apply(LogicalPlan inputPlan) FilterPushDown.apply(LogicalPlan inputPlan) GreedyBasedReordering.apply(LogicalPlan inputPlan) MergeRequests.apply(LogicalPlan inputPlan) PullUpLtgOverJoin.apply(LogicalPlan inputPlan) PullUpLtgOverUnion.apply(LogicalPlan inputPlan) PushJoinUnderUnionWithRequests.apply(LogicalPlan inputPlan) RemovePairsOfG2lAndL2g.apply(LogicalPlan inputPlan) RemoveUnnecessaryL2gAndG2l.apply(LogicalPlan inputPlan) UnionPullUp.apply(LogicalPlan inputPlan) protected LogicalPlanFilterPushDown.applyToPlanWithFilterAsRootOperator(LogicalOpFilter filterOp, LogicalPlan subPlanUnderFilter, LogicalPlan inputPlan) static booleanRemovePairsOfG2lAndL2g.checkIfG2lAndL2gPairsRemovable(LogicalPlan plan) If a pair of g2l and l2g operators use the same vocabulary mapping, these two operators can be omittedprotected booleanRemoveUnnecessaryL2gAndG2l.checkIfL2gOrG2lNeeded(LogicalPlan plan) This function is used to check if a l2g or g2l operator is needed.static booleanPullUpLtgOverJoin.checkIfLtgCanBeExtractedOverJoin(LogicalPlan inputPlan) Check if l2g operator can be pulled up over join by checking: i) the root operator is a join (binary or multiway), ii) every subplan under this join has an l2g operator as its root, iii) all these l2g operators have the same vocab.mapping, and iv) that vocab.mapping is an "equivalence-only" mapping.static booleanPullUpLtgOverUnion.checkIfLtgCanBeExtractedOverUnion(LogicalPlan unionPlan) Check if l2g operator can be pulled up over union by checking: i) the root operator is a union (binary or multiway), ii) every subplan under this join has an l2g operator as its root, and iii) all these l2g operators have the same vocab.mappingprotected static booleanCardinalityBasedJoinOrderingBase.containsJoinOp(LogicalPlan logicalPlan) Recursively checks whether the given logical plan contains any join operators (LogicalOpJoin or LogicalOpMultiwayJoin).protected LogicalPlanFilterPushDown.createPlanAfterPushingInSubPlan(LogicalOpFilter parentFilterOp, UnaryLogicalOp childOp, LogicalPlan subPlanUnderChildOp, LogicalPlan inputPlan) protected LogicalPlanFilterPushDown.createPlanForAddOpUnderFilter(LogicalOpFilter parentFilterOp, UnaryLogicalOp childOp, LogicalPlan subPlanUnderChildOp, LogicalPlan inputPlan) Assumes that the given child operator is either a, ainvalid reference
LogicalOpTPAdd, ainvalid reference
LogicalOpTPOptAdd, ainvalid reference
LogicalOpBGPAdd, ainvalid reference
LogicalOpBGPOptAddLogicalOpGPAdd, or aLogicalOpGPOptAdd.protected LogicalPlanFilterPushDown.createPlanForBindUnderFilter(LogicalOpFilter filterOp, LogicalOpBind bindOp, LogicalPlan subPlanUnderBind, LogicalPlan inputPlan) protected LogicalPlanFilterPushDown.createPlanForFilterUnderFilter(LogicalOpFilter parentFilterOp, LogicalOpFilter childFilterOp, LogicalPlan subPlanUnderChildFilterOp) protected LogicalPlanFilterPushDown.createPlanForJoinUnderFilter(LogicalOpFilter filterOp, LogicalPlan subPlanUnderFilter, LogicalPlan inputPlan) protected LogicalPlanFilterPushDown.createPlanForL2GOrG2LUnderFilter(LogicalOpFilter parentFilterOp, UnaryLogicalOp childOp, LogicalPlan subPlanUnderChildOp, LogicalPlan inputPlan) Assumes that the given child operator is either aLogicalOpLocalToGlobalor aLogicalOpGlobalToLocal.protected LogicalPlanFilterPushDown.createPlanForMultiwayLeftJoinUnderFilter(LogicalOpFilter filterOp, LogicalPlan subPlanUnderFilter, LogicalPlan inputPlan) protected LogicalPlanFilterPushDown.createPlanForRequestUnderFilter(LogicalOpFilter filterOp, LogicalOpRequest<?, ?> reqOp, LogicalPlan inputPlan) protected LogicalPlanFilterPushDown.createPlanForRightJoinUnderFilter(LogicalOpFilter filterOp, LogicalPlan nonoptSubPlan, LogicalPlan optSubPlan, LogicalPlan inputPlan) protected LogicalPlanFilterPushDown.createPlanForUnfoldUnderFilter(LogicalOpFilter filterOp, LogicalOpUnfold unfoldOp, LogicalPlan subPlanUnderUnfold, LogicalPlan inputPlan) protected LogicalPlanFilterPushDown.createPlanForUnionUnderFilter(LogicalOpFilter filterOp, LogicalPlan subPlanUnderFilter) protected intCardinalityBasedJoinOrderingBase.determineIdxOfSmallestCardinality(LogicalPlan[] plans) Compares the given plans in terms of their estimated cardinalities and, for the plan that has the smallest estimated cardinality, returns the index of this plan within the given list.protected abstract intCardinalityBasedJoinOrderingBase.estimateJoinCardinality(List<LogicalPlan> selectedPlans, int joinCardOfSelectedPlans, LogicalPlan nextCandidate) Implementations of this function estimate the cardinality of the join between the result of joining the given selected plans and the result of the given next candidate.protected intCardinalityBasedJoinOrderingWithRequests.estimateJoinCardinality(List<LogicalPlan> selectedPlans, int joinCardOfSelectedPlans, LogicalPlan nextCandidate) protected static LogicalPlanPullUpLtgOverUnion.extractLtgOverNaryOp(LogicalPlan inputPlan) protected static Set<TriplePattern> RemoveUnnecessaryL2gAndG2l.extractTPs(LogicalPlan plan) booleanUnionPullUp.hasUnionRoot(LogicalPlan plan) protected LogicalPlanFilterPushDown.pushToNonOptSubPlan(org.apache.jena.sparql.expr.ExprList filterExprsWithoutAND, LogicalPlan nonoptSubPlan, org.apache.jena.sparql.expr.ExprList toBeKept) protected booleanCardinalityBasedJoinOrderingBase.reorder(LogicalPlan[] plans) Changes the order of the subplans in the given array by using the greedy algorithm described above for this class.protected LogicalPlanGreedyBasedReordering.reorderSubPlans(LogicalPlan inputPlan) protected LogicalPlanPushJoinUnderUnionWithRequests.rewrite(LogicalPlan unionPlan, List<LogicalPlan> subPlansAsInput) UnionPullUp.rewritePlanWithUnaryRootAndUnionChild(UnaryLogicalOp rootOp, LogicalPlan subPlan) Based on the assumption that the given subplan has a union operator as its root operator, this function pulls up that union by pushing the given unary operator to be the root of each of the children of the union.Method parameters in se.liu.ida.hefquin.engine.queryproc.impl.loptimizer.heuristics with type arguments of type LogicalPlanModifier and TypeMethodDescriptionprotected Pair<LogicalPlan, Integer> CardinalityBasedJoinOrderingBase.determineNextPlan(List<LogicalPlan> selectedPlans, int joinCardOfSelectedPlans, List<LogicalPlan> nextCandidates) Returns the plan from the given list of next candidates that has the lowest join cardinality with a plan consisting of the given selected plans, and that join cardinality will be returned as well.protected abstract intCardinalityBasedJoinOrderingBase.estimateJoinCardinality(List<LogicalPlan> selectedPlans, int joinCardOfSelectedPlans, LogicalPlan nextCandidate) Implementations of this function estimate the cardinality of the join between the result of joining the given selected plans and the result of the given next candidate.protected intCardinalityBasedJoinOrderingWithRequests.estimateJoinCardinality(List<LogicalPlan> selectedPlans, int joinCardOfSelectedPlans, LogicalPlan nextCandidate) protected LogicalPlanMergeRequests.mergeSPARQLRequestsViaJoin(FederationMember fm, List<LogicalPlan> reqPlans) Assumes that the given list contains at least two plans and that all plans in the list consist only of a request operator.protected SPARQLGraphPatternMergeRequests.mergeSPARQLRequestsViaUnion(List<LogicalPlan> reqPlans) Assumes that the given list contains at least two plans and that all plans in the list consist only of a request operator.protected LogicalPlanPushJoinUnderUnionWithRequests.rewrite(LogicalPlan unionPlan, List<LogicalPlan> subPlansAsInput) UnionPullUp.rewritePlanWithJoinOverUnion(List<LogicalPlan> plansWithUnionRoot, List<LogicalPlan> plansWithNonUnionRoot) Based on the assumptions that i) the plans in the given lists have all been subplans of a join and ii) the given list of union-rooted plans is nonempty, pulls the unions out of these union-rooted plans by joining all their subplans with one another, and also with all the plans given in the other list (plansWithNonUnionRoot).UnionPullUp.rewritePlanWithUnionRootAndUnionChild(List<LogicalPlan> plansWithUnionRoot, List<LogicalPlan> plansWithNonUnionRoot) Based on the assumptions that i) the plans in the given lists have all been subplans of a union and ii) the given list of union-rooted plans is nonempty, merges all these union-rooted plans (plansWithUnionRoot) into a single union-root plan that has all the subplans of the given union-rooted plans as its subplans, together with all the plans given in the other list (plansWithNonUnionRoot).protected voidMergeRequests.separateSubPlansOfMultiwayOps(List<LogicalPlan> subPlans, Map<FederationMember, List<LogicalPlan>> reqOnlyPlansPerFedMember, List<LogicalPlan> nonReqSubPlans) protected voidMergeRequests.separateSubPlansOfMultiwayOps(List<LogicalPlan> subPlans, Map<FederationMember, List<LogicalPlan>> reqOnlyPlansPerFedMember, List<LogicalPlan> nonReqSubPlans) -
Uses of LogicalPlan in se.liu.ida.hefquin.engine.queryproc.impl.loptimizer.heuristics.utils
Fields in se.liu.ida.hefquin.engine.queryproc.impl.loptimizer.heuristics.utils declared as LogicalPlanMethods in se.liu.ida.hefquin.engine.queryproc.impl.loptimizer.heuristics.utils that return LogicalPlanMethods in se.liu.ida.hefquin.engine.queryproc.impl.loptimizer.heuristics.utils with parameters of type LogicalPlanModifier and TypeMethodDescriptionprotected Set<TriplePattern> QueryAnalyzer.extractTPsAndRecordFms(LogicalPlan plan) Constructors in se.liu.ida.hefquin.engine.queryproc.impl.loptimizer.heuristics.utils with parameters of type LogicalPlan -
Uses of LogicalPlan in se.liu.ida.hefquin.engine.queryproc.impl.planning
Methods in se.liu.ida.hefquin.engine.queryproc.impl.planning that return LogicalPlanModifier and TypeMethodDescriptionQueryPlanningStatsImpl.getResultingLogicalPlan()QueryPlanningStatsImpl.getResultingSourceAssignment()Constructors in se.liu.ida.hefquin.engine.queryproc.impl.planning with parameters of type LogicalPlanModifierConstructorDescriptionQueryPlanningStatsImpl(long overallQueryPlanningTime, long sourcePlanningTime, long logicalOptimizationTime, long physicalOptimizationTime, SourcePlanningStats sourcePlanningStats, LogicalPlan resultingSourceAssignment, LogicalPlan resultingLogicalPlan, PhysicalPlan resultingPhysicalPlan, PhysicalOptimizationStats queryOptimizationStats) -
Uses of LogicalPlan in se.liu.ida.hefquin.engine.queryproc.impl.poptimizer
Methods in se.liu.ida.hefquin.engine.queryproc.impl.poptimizer with parameters of type LogicalPlanModifier and TypeMethodDescriptionPhysicalOptimizerBase.optimize(LogicalPlan lp, QueryProcContext ctxt) -
Uses of LogicalPlan in se.liu.ida.hefquin.engine.queryproc.impl.srcsel
Methods in se.liu.ida.hefquin.engine.queryproc.impl.srcsel that return LogicalPlanModifier and TypeMethodDescriptionprotected LogicalPlanExhaustiveSourcePlannerImpl.createPlan(org.apache.jena.sparql.algebra.Op jenaOp, QueryProcContext ctxt) protected LogicalPlanServiceClauseBasedSourcePlannerImpl.createPlan(org.apache.jena.sparql.algebra.Op jenaOp, QueryProcContext ctxt) protected LogicalPlanServiceClauseBasedSourcePlannerImpl.createPlan(org.apache.jena.sparql.algebra.Op jenaOp, FederationMember fm) protected LogicalPlanExhaustiveSourcePlannerImpl.createPlanForBGP(org.apache.jena.sparql.algebra.op.OpBGP bgpOp, QueryProcContext ctxt) protected LogicalPlanServiceClauseBasedSourcePlannerImpl.createPlanForBGP(org.apache.jena.sparql.algebra.op.OpBGP pattern, FederationMember fm) protected LogicalPlanServiceClauseBasedSourcePlannerImpl.createPlanForBGP(org.apache.jena.sparql.core.BasicPattern pattern, FederationMember fm) protected LogicalPlanServiceClauseBasedSourcePlannerImpl.createPlanForBGP(BGP bgp, FederationMember fm) protected LogicalPlanServiceClauseBasedSourcePlannerImpl.createPlanForBind(org.apache.jena.sparql.algebra.op.OpExtend jenaOp, QueryProcContext ctxt) protected LogicalPlanServiceClauseBasedSourcePlannerImpl.createPlanForFilter(org.apache.jena.sparql.algebra.op.OpFilter jenaOp, QueryProcContext ctxt) protected LogicalPlanServiceClauseBasedSourcePlannerImpl.createPlanForFilter(org.apache.jena.sparql.algebra.op.OpFilter jenaOp, FederationMember fm) protected LogicalPlanServiceClauseBasedSourcePlannerImpl.createPlanForJoin(List<org.apache.jena.sparql.algebra.Op> ops, QueryProcContext ctxt) protected LogicalPlanServiceClauseBasedSourcePlannerImpl.createPlanForJoin(org.apache.jena.sparql.algebra.op.OpJoin jenaOp, QueryProcContext ctxt) protected LogicalPlanServiceClauseBasedSourcePlannerImpl.createPlanForJoin(org.apache.jena.sparql.algebra.op.OpJoin jenaOp, FederationMember fm) protected LogicalPlanServiceClauseBasedSourcePlannerImpl.createPlanForLeftJoin(org.apache.jena.sparql.algebra.op.OpConditional jenaOp, QueryProcContext ctxt) protected LogicalPlanServiceClauseBasedSourcePlannerImpl.createPlanForLeftJoin(org.apache.jena.sparql.algebra.op.OpConditional jenaOp, FederationMember fm) protected LogicalPlanServiceClauseBasedSourcePlannerImpl.createPlanForLeftJoin(org.apache.jena.sparql.algebra.op.OpLeftJoin jenaOp, QueryProcContext ctxt) protected LogicalPlanServiceClauseBasedSourcePlannerImpl.createPlanForLeftJoin(org.apache.jena.sparql.algebra.op.OpLeftJoin jenaOp, FederationMember fm) protected LogicalPlanServiceClauseBasedSourcePlannerImpl.createPlanForOpTable(org.apache.jena.sparql.algebra.op.OpTable opTable) protected LogicalPlanServiceClauseBasedSourcePlannerImpl.createPlanForSequence(org.apache.jena.sparql.algebra.op.OpSequence jenaOp, QueryProcContext ctxt) protected LogicalPlanServiceClauseBasedSourcePlannerImpl.createPlanForServicePattern(org.apache.jena.sparql.algebra.op.OpService jenaOp, QueryProcContext ctxt) This function assumes that the given operator comes from a SERVICE clause that did not have a PARAMS part (or an empty one), and it produces a plan with a request operator as root.protected LogicalPlanServiceClauseBasedSourcePlannerImpl.createPlanForServiceWithParams(OpServiceWithParams jenaOp, LogicalPlan subplan, QueryProcContext ctxt) This function assumes that the given operator comes from a SERVICE clause that had a nonempty PARAMS part, and it produces a plan with a gpAdd operator as root and the given subplan as input to this root operator.protected LogicalPlanServiceClauseBasedSourcePlannerImpl.createPlanForTriplePattern(org.apache.jena.sparql.algebra.op.OpTriple pattern, FederationMember fm) protected LogicalPlanServiceClauseBasedSourcePlannerImpl.createPlanForUnfold(org.apache.jena.sparql.algebra.op.OpUnfold jenaOp, QueryProcContext ctxt) protected LogicalPlanServiceClauseBasedSourcePlannerImpl.createPlanForUnion(org.apache.jena.sparql.algebra.op.OpUnion jenaOp, QueryProcContext ctxt) protected LogicalPlanServiceClauseBasedSourcePlannerImpl.createPlanForUnion(org.apache.jena.sparql.algebra.op.OpUnion jenaOp, FederationMember fm) protected LogicalPlanServiceClauseBasedSourcePlannerImpl.createPlanForValues(org.apache.jena.sparql.algebra.op.OpTable jenaOp, QueryProcContext ctxt) protected LogicalPlanExhaustiveSourcePlannerImpl.createRequestSubPlan(org.apache.jena.graph.Triple tp, FederationMember fm) protected LogicalPlanExhaustiveSourcePlannerImpl.createSubPlanForTP(org.apache.jena.graph.Triple tp, QueryProcContext ctxt) protected LogicalPlanServiceClauseBasedSourcePlannerImpl.mergeIntoMultiwayJoin(List<LogicalPlan> subPlans) protected LogicalPlanServiceClauseBasedSourcePlannerImpl.mergeIntoMultiwayJoin(LogicalPlan... subPlans) protected LogicalPlanServiceClauseBasedSourcePlannerImpl.mergeIntoMultiwayLeftJoin(LogicalPlan leftSubPlan, LogicalPlan rightSubPlan) protected LogicalPlanServiceClauseBasedSourcePlannerImpl.mergeIntoMultiwayUnion(LogicalPlan... subPlans) Methods in se.liu.ida.hefquin.engine.queryproc.impl.srcsel that return types with arguments of type LogicalPlanModifier and TypeMethodDescriptionprotected Pair<LogicalPlan, SourcePlanningStats> ServiceClauseBasedSourcePlannerImpl.createSourceAssignment(org.apache.jena.sparql.algebra.Op jenaOp, QueryProcContext ctxt) protected abstract Pair<LogicalPlan, SourcePlanningStats> SourcePlannerBase.createSourceAssignment(org.apache.jena.sparql.algebra.Op jenaOp, QueryProcContext ctxt) final Pair<LogicalPlan, SourcePlanningStats> SourcePlannerBase.createSourceAssignment(Query query, QueryProcContext ctxt) Methods in se.liu.ida.hefquin.engine.queryproc.impl.srcsel with parameters of type LogicalPlanModifier and TypeMethodDescriptionprotected LogicalPlanServiceClauseBasedSourcePlannerImpl.createPlanForServiceWithParams(OpServiceWithParams jenaOp, LogicalPlan subplan, QueryProcContext ctxt) This function assumes that the given operator comes from a SERVICE clause that had a nonempty PARAMS part, and it produces a plan with a gpAdd operator as root and the given subplan as input to this root operator.protected LogicalPlanServiceClauseBasedSourcePlannerImpl.mergeIntoMultiwayJoin(LogicalPlan... subPlans) protected LogicalPlanServiceClauseBasedSourcePlannerImpl.mergeIntoMultiwayLeftJoin(LogicalPlan leftSubPlan, LogicalPlan rightSubPlan) protected LogicalPlanServiceClauseBasedSourcePlannerImpl.mergeIntoMultiwayUnion(LogicalPlan... subPlans) Method parameters in se.liu.ida.hefquin.engine.queryproc.impl.srcsel with type arguments of type LogicalPlanModifier and TypeMethodDescriptionprotected LogicalPlanServiceClauseBasedSourcePlannerImpl.mergeIntoMultiwayJoin(List<LogicalPlan> subPlans)