public class BuildHelper
extends java.lang.Object
Modifier and Type | Method and Description |
---|---|
static boolean |
areAllVariablesDetermined(SubPlan plan,
java.util.Collection<PVariable> determining,
QueryAnalyzer analyzer,
boolean strict) |
static boolean |
areVariablesDetermined(SubPlan plan,
java.util.Collection<PVariable> determining,
java.util.Collection<PVariable> determined,
QueryAnalyzer analyzer,
boolean strict) |
static SubPlan |
eliminateTrailingProjections(SubPlan plan)
Skips the last few steps, if any, that are projections, so that a custom projection can be added instead.
|
static void |
finalCheck(PBody pSystem,
SubPlan plan,
IQueryMetaContext context)
Verifies whether all constraints are enforced and exported parameters are present.
|
static PConstraint |
getAnyUnenforcedConstraint(PBody pSystem,
SubPlan plan)
Finds an arbitrary constraint that is not enforced at the given plan.
|
static SubPlan |
trimUnneccessaryVariables(SubPlanFactory planFactory,
SubPlan plan,
boolean onlyIfNotDetermined,
QueryAnalyzer analyzer)
Reduces the number of tuples by trimming (existentially quantifying) the set of variables that
are visible in the subplan,
are not exported parameters,
have all their constraints already enforced in the subplan,
and thus will not be needed anymore.
|
public static SubPlan trimUnneccessaryVariables(SubPlanFactory planFactory, SubPlan plan, boolean onlyIfNotDetermined, QueryAnalyzer analyzer)
onlyIfNotDetermined
- if true, no trimming performed unless there is at least one variable that is not functionally determinedpublic static boolean areAllVariablesDetermined(SubPlan plan, java.util.Collection<PVariable> determining, QueryAnalyzer analyzer, boolean strict)
strict
- if true, only "hard" dependencies are taken into account that are strictly enforced by the model representation;
if false, user-provided soft dependencies are included as well, that are anticipated but not guaranteed by the storage mechanism;
use true if superfluous dependencies may taint the correctness of a computation, false if they would merely impact performancepublic static boolean areVariablesDetermined(SubPlan plan, java.util.Collection<PVariable> determining, java.util.Collection<PVariable> determined, QueryAnalyzer analyzer, boolean strict)
strict
- if true, only "hard" dependencies are taken into account that are strictly enforced by the model representation;
if false, user-provided soft dependencies are included as well, that are anticipated but not guaranteed by the storage mechanism;
use true if superfluous dependencies may taint the correctness of a computation, false if they would merely impact performancepublic static PConstraint getAnyUnenforcedConstraint(PBody pSystem, SubPlan plan)
pSystem
- plan
- public static SubPlan eliminateTrailingProjections(SubPlan plan)
public static void finalCheck(PBody pSystem, SubPlan plan, IQueryMetaContext context)
pSystem
- plan
- ViatraQueryRuntimeException