Package | Description |
---|---|
org.teiid.query.optimizer.relational | |
org.teiid.query.optimizer.relational.plantree | |
org.teiid.query.optimizer.relational.rules |
Modifier and Type | Method and Description |
---|---|
static PlanNode |
RelationalPlanner.createProjectNode(List<? extends Expression> select) |
static PlanNode |
RelationalPlanner.createSelectNode(Criteria crit,
boolean isHaving) |
static PlanNode |
RelationalPlanner.createSortNode(OrderBy orderBy) |
PlanNode |
OptimizerRule.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capabilitiesFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RelationalPlanner.executeRules(RuleStack rules,
PlanNode plan) |
PlanNode |
RelationalPlanner.generatePlan(Command cmd) |
Modifier and Type | Method and Description |
---|---|
static SymbolMap |
RelationalPlanner.buildGroupingNode(Collection<AggregateSymbol> aggs,
List<? extends Expression> groupingCols,
PlanNode groupNode,
CommandContext cc,
IDGenerator idGenerator)
Build a grouping node that introduces a anon group (without a inline view source node)
|
RelationalPlan |
PlanToProcessConverter.convert(PlanNode planNode) |
protected RelationalNode |
PlanToProcessConverter.convertNode(PlanNode node) |
PlanNode |
OptimizerRule.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capabilitiesFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RelationalPlanner.executeRules(RuleStack rules,
PlanNode plan) |
void |
RelationalPlanner.planSubqueries(Set<GroupSymbol> groupSymbols,
PlanNode node,
List<SubqueryContainer<?>> subqueryContainers,
boolean isStackEntry,
boolean skipPlanning) |
Modifier and Type | Method and Description |
---|---|
PlanNode |
PlanNode.clone() |
static PlanNode |
NodeEditor.findNodePreOrder(PlanNode root,
int types) |
static PlanNode |
NodeEditor.findNodePreOrder(PlanNode root,
int types,
int stopTypes) |
static PlanNode |
NodeEditor.findParent(PlanNode root,
int types) |
static PlanNode |
NodeEditor.findParent(PlanNode root,
int types,
int stopTypes)
Return the first parent node of the given type stopping at the given nodes.
|
PlanNode |
PlanNode.getFirstChild() |
PlanNode |
PlanNode.getLastChild() |
static PlanNode |
NodeFactory.getNewNode(int nodeType) |
PlanNode |
PlanNode.getParent() |
PlanNode |
PlanNode.removeFromParent() |
Modifier and Type | Method and Description |
---|---|
static List<PlanNode> |
NodeEditor.findAllNodes(PlanNode root,
int types) |
static List<PlanNode> |
NodeEditor.findAllNodes(PlanNode root,
int types,
int stopTypes)
Find all nodes of a type, starting at the root of a tree or subtree of
PlanNodes and searching downward, but not searching past nodes of type equal
to stopType.
|
List<PlanNode> |
PlanNode.getChildren() |
List<PlanNode> |
PlanNode.removeAllChildren() |
Modifier and Type | Method and Description |
---|---|
void |
PlanNode.addAsParent(PlanNode node)
Add the node as this node's parent.
|
void |
PlanNode.addFirstChild(PlanNode child) |
void |
PlanNode.addLastChild(PlanNode child) |
static List<PlanNode> |
NodeEditor.findAllNodes(PlanNode root,
int types) |
static List<PlanNode> |
NodeEditor.findAllNodes(PlanNode root,
int types,
int stopTypes)
Find all nodes of a type, starting at the root of a tree or subtree of
PlanNodes and searching downward, but not searching past nodes of type equal
to stopType.
|
static PlanNode |
NodeEditor.findNodePreOrder(PlanNode root,
int types) |
static PlanNode |
NodeEditor.findNodePreOrder(PlanNode root,
int types,
int stopTypes) |
static PlanNode |
NodeEditor.findParent(PlanNode root,
int types) |
static PlanNode |
NodeEditor.findParent(PlanNode root,
int types,
int stopTypes)
Return the first parent node of the given type stopping at the given nodes.
|
boolean |
PlanNode.removeChild(PlanNode child) |
static void |
NodeEditor.removeChildNode(PlanNode parent,
PlanNode child)
all of child's children become children of parent
|
void |
PlanNode.replaceChild(PlanNode child,
PlanNode replacement) |
Modifier and Type | Method and Description |
---|---|
void |
PlanNode.addChildren(Collection<PlanNode> otherChildren) |
Modifier and Type | Method and Description |
---|---|
PlanNode |
RuleDecomposeJoin.decomposeJoin(PlanNode joinNode,
PlanNode root,
QueryMetadataInterface metadata,
CommandContext context) |
PlanNode |
RulePushLargeIn.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capabilitiesFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RulePushAggregates.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext ctx) |
PlanNode |
RulePlanUnions.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capabilitiesFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RulePlanSubqueries.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RulePlanSorts.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capabilitiesFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RulePlanProcedures.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capabilitiesFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RulePlanOuterJoins.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capabilitiesFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RulePlanJoins.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capabilitiesFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RulePlaceAccess.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RuleMergeVirtual.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RuleMergeCriteria.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RuleImplementJoinStrategy.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capabilitiesFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RuleDecomposeJoin.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capabilitiesFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RuleCopyCriteria.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context)
Execute the rule as described in the class comments.
|
PlanNode |
RuleCollapseSource.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RuleCleanCriteria.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RuleChooseJoinStrategy.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RuleChooseDependent.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RuleCalculateCost.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capabilitiesFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RuleAssignOutputElements.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context)
Execute the rule.
|
PlanNode |
RuleApplySecurity.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capabilitiesFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RuleAccessPatternValidation.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RuleValidateWhereAll.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context)
Verifies that a model with "supports where all" is being passed an atomic
query with a criteria.
|
PlanNode |
RuleSubstituteExpressions.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capabilitiesFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RuleRemoveOptionalJoins.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RuleRaiseNull.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RuleRaiseAccess.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RulePushSelectCriteria.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context)
Execute the rule as described in the class comments.
|
PlanNode |
RulePushNonJoinCriteria.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context)
Execute the rule as described in the class comments.
|
PlanNode |
RulePushLimit.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capabilitiesFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
static PlanNode |
FrameUtil.findJoinSourceNode(PlanNode root)
Find the ACCESS, SOURCE, SET_OP, JOIN, or NULL node that originates the given groups, but will stop at the
first join node rather than searching for the best fit.
|
static PlanNode |
RuleChooseDependent.getDependentCriteriaNode(String id,
List<Expression> independentExpressions,
List<Expression> dependentExpressions,
PlanNode indNode,
QueryMetadataInterface metadata,
NewCalculateCostUtil.DependentCostAnalysis dca,
Boolean bound,
Option.MakeDep makeDep) |
Modifier and Type | Method and Description |
---|---|
List<PlanNode> |
RulePushSelectCriteria.getCreatedNodes() |
Modifier and Type | Method and Description |
---|---|
static NewCalculateCostUtil.DependentCostAnalysis |
NewCalculateCostUtil.computeCostForDepJoin(PlanNode joinNode,
boolean leftIndependent,
QueryMetadataInterface metadata,
CapabilitiesFinder capFinder,
CommandContext context)
Computes the cost of a Dependent Join
The worst possible cost will arise from a high independent ndv (many dependent sets) and a low dependent ndv (possibly many matches per set)
This logic uses the same assumption as criteria in that ndv is used as a divisor of cardinality.
|
static NewCalculateCostUtil.DependentCostAnalysis |
NewCalculateCostUtil.computeCostForDepJoin(PlanNode independentNode,
PlanNode dependentNode,
List independentExpressions,
List dependentExpressions,
QueryMetadataInterface metadata,
CapabilitiesFinder capFinder,
CommandContext context) |
static void |
FrameUtil.convertFrame(PlanNode startNode,
GroupSymbol oldGroup,
Set<GroupSymbol> newGroups,
Map symbolMap,
QueryMetadataInterface metadata) |
PlanNode |
RuleDecomposeJoin.decomposeJoin(PlanNode joinNode,
PlanNode root,
QueryMetadataInterface metadata,
CommandContext context) |
PlanNode |
RulePushLargeIn.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capabilitiesFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RulePushAggregates.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext ctx) |
PlanNode |
RulePlanUnions.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capabilitiesFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RulePlanSubqueries.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RulePlanSorts.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capabilitiesFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RulePlanProcedures.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capabilitiesFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RulePlanOuterJoins.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capabilitiesFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RulePlanJoins.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capabilitiesFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RulePlaceAccess.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RuleMergeVirtual.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RuleMergeCriteria.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RuleImplementJoinStrategy.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capabilitiesFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RuleDecomposeJoin.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capabilitiesFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RuleCopyCriteria.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context)
Execute the rule as described in the class comments.
|
PlanNode |
RuleCollapseSource.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RuleCleanCriteria.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RuleChooseJoinStrategy.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RuleChooseDependent.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RuleCalculateCost.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capabilitiesFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RuleAssignOutputElements.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context)
Execute the rule.
|
PlanNode |
RuleApplySecurity.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capabilitiesFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RuleAccessPatternValidation.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RuleValidateWhereAll.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context)
Verifies that a model with "supports where all" is being passed an atomic
query with a criteria.
|
PlanNode |
RuleSubstituteExpressions.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capabilitiesFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RuleRemoveOptionalJoins.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RuleRaiseNull.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RuleRaiseAccess.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
PlanNode |
RulePushSelectCriteria.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context)
Execute the rule as described in the class comments.
|
PlanNode |
RulePushNonJoinCriteria.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context)
Execute the rule as described in the class comments.
|
PlanNode |
RulePushLimit.execute(PlanNode plan,
QueryMetadataInterface metadata,
CapabilitiesFinder capabilitiesFinder,
RuleStack rules,
AnalysisRecord analysisRecord,
CommandContext context) |
static PlanNode |
FrameUtil.findJoinSourceNode(PlanNode root)
Find the ACCESS, SOURCE, SET_OP, JOIN, or NULL node that originates the given groups, but will stop at the
first join node rather than searching for the best fit.
|
static PlanNode |
RuleChooseDependent.getDependentCriteriaNode(String id,
List<Expression> independentExpressions,
List<Expression> dependentExpressions,
PlanNode indNode,
QueryMetadataInterface metadata,
NewCalculateCostUtil.DependentCostAnalysis dca,
Boolean bound,
Option.MakeDep makeDep) |
static JoinType |
JoinUtil.getJoinTypePreventingCriteriaOptimization(PlanNode joinNode,
Set<GroupSymbol> groups) |
static ProcessorPlan |
FrameUtil.getNestedPlan(PlanNode accessNode)
Look for SOURCE node either one or two steps below the access node.
|
static boolean |
FrameUtil.isOrderedOrStrictLimit(PlanNode node) |
Modifier and Type | Method and Description |
---|---|
void |
RulePushSelectCriteria.setCreatedNodes(List<PlanNode> createdNodes) |
Copyright © 2020. All rights reserved.