Class CardinalityEstimationWorkerImpl
java.lang.Object
se.liu.ida.hefquin.engine.queryproc.impl.cardinality.CardinalityEstimationWorkerImpl
- All Implemented Interfaces:
LogicalPlanVisitor,CardinalityEstimationWorker
public class CardinalityEstimationWorkerImpl
extends Object
implements CardinalityEstimationWorker, LogicalPlanVisitor
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddCardinalities(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.voidaddCardinalities(PhysicalPlan... 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.protected voidaddCardinality(LogicalPlan plan) Assumes that all nullary subplans within the given plan are already annotated with a cardinality estimate.protected voidaddCardinality(PhysicalPlan plan) Assumes that all nullary subplans within the given plan are already annotated with a cardinality estimate.voidvoidstatic intaddWithoutExceedingMax(int x, int y) booleanChecks whether the given cardinality property guarantees that the query plan will produce an empty result.static intmultiplyWithoutExceedingMax(int x, int y) static QueryPlanProperty.Qualityvoidvisit(LogicalOpBind op) voidvisit(LogicalOpDedup op) voidvisit(LogicalOpFilter op) voidvoidvoidvisit(LogicalOpGPAdd op) voidvoidvisit(LogicalOpJoin op) voidvoidvoidvisit(LogicalOpMinus op) voidvoidvoidvoidvoidvisit(LogicalOpRequest<?, ?> op) voidvisit(LogicalOpUnfold op) voidvisit(LogicalOpUnion op)
-
Field Details
-
currentSubPlan
-
-
Constructor Details
-
CardinalityEstimationWorkerImpl
public CardinalityEstimationWorkerImpl()
-
-
Method Details
-
addCardinalities
Description copied from interface:CardinalityEstimationWorkerDetermine 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.- Specified by:
addCardinalitiesin interfaceCardinalityEstimationWorker
-
addCardinalities
Description copied from interface:CardinalityEstimationWorkerDetermine 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.- Specified by:
addCardinalitiesin interfaceCardinalityEstimationWorker
-
addCardinality
Assumes that all nullary subplans within the given plan are already annotated with a cardinality estimate. -
addCardinality
Assumes that all nullary subplans within the given plan are already annotated with a cardinality estimate. -
visit
- Specified by:
visitin interfaceLogicalPlanVisitor
-
visit
- Specified by:
visitin interfaceLogicalPlanVisitor
-
visit
- Specified by:
visitin interfaceLogicalPlanVisitor
-
visit
- Specified by:
visitin interfaceLogicalPlanVisitor
-
visit
- Specified by:
visitin interfaceLogicalPlanVisitor
-
visit
- Specified by:
visitin interfaceLogicalPlanVisitor
-
visit
- Specified by:
visitin interfaceLogicalPlanVisitor
-
visit
- Specified by:
visitin interfaceLogicalPlanVisitor
-
visit
- Specified by:
visitin interfaceLogicalPlanVisitor
-
visit
- Specified by:
visitin interfaceLogicalPlanVisitor
-
visit
- Specified by:
visitin interfaceLogicalPlanVisitor
-
visit
- Specified by:
visitin interfaceLogicalPlanVisitor
-
visit
- Specified by:
visitin interfaceLogicalPlanVisitor
-
visit
- Specified by:
visitin interfaceLogicalPlanVisitor
-
visit
- Specified by:
visitin interfaceLogicalPlanVisitor
-
visit
- Specified by:
visitin interfaceLogicalPlanVisitor
-
visit
- Specified by:
visitin interfaceLogicalPlanVisitor
-
visit
- Specified by:
visitin interfaceLogicalPlanVisitor
-
checkAndSetIfGuaranteedEmpty
Checks whether the given cardinality property guarantees that the query plan will produce an empty result. If so, it updates the providedQueryPlanningInfowith accurate cardinality properties (min, max and exact cardinality all set to 0). -
addCardinalityForUnion
public void addCardinalityForUnion() -
addCardinalityForInnerJoin
public void addCardinalityForInnerJoin() -
addWithoutExceedingMax
public static int addWithoutExceedingMax(int x, int y) -
multiplyWithoutExceedingMax
public static int multiplyWithoutExceedingMax(int x, int y) -
pickWorse
public static QueryPlanProperty.Quality pickWorse(QueryPlanProperty.Quality q1, QueryPlanProperty.Quality q2)
-