public abstract class AbstractPartialSolutionNode extends OptimizerNode
OptimizerNode.UnclosedBranchDescriptorcachedPlans, closedBranchingNodes, costWeight, estimatedNumRecords, estimatedOutputSize, hereJoinedBranches, id, MAX_DYNAMIC_PATH_COST_WEIGHT, onDynamicPath, openBranches, remappedKeys, uniqueFields| Modifier | Constructor and Description |
|---|---|
protected |
AbstractPartialSolutionNode(Operator<?> contract) |
| Modifier and Type | Method and Description |
|---|---|
void |
accept(Visitor<OptimizerNode> visitor)
This method implements the visit of a depth-first graph traversing visitor.
|
void |
computeInterestingPropertiesForInputs(CostEstimator estimator)
Tells the node to compute the interesting properties for its inputs.
|
protected void |
computeOperatorSpecificDefaultEstimates(DataStatistics statistics) |
protected void |
copyEstimates(OptimizerNode node) |
List<PlanNode> |
getAlternativePlans(CostEstimator estimator)
Computes the plan alternatives for this node, an implicitly for all nodes that are children of
this node.
|
List<PactConnection> |
getIncomingConnections()
This method needs to be overridden by subclasses to return the children.
|
abstract IterationNode |
getIterationNode() |
void |
identifyDynamicPath(int costWeight) |
boolean |
isFieldConstant(int input,
int fieldNumber)
Checks whether a field is modified by the user code or whether it is kept unchanged.
|
boolean |
isOnDynamicPath() |
protected void |
readStubAnnotations()
Reads all stub annotations, i.e.
|
void |
setInput(Map<Operator<?>,OptimizerNode> contractToNode)
This function is for plan translation purposes.
|
addBroadcastConnection, addClosedBranch, addClosedBranches, addOutgoingConnection, areBranchCompatible, clearInterestingProperties, computeOutputEstimates, computeUnclosedBranchStack, computeUnclosedBranchStackForBroadcastInputs, computeUnionOfInterestingPropertiesFromSuccessors, createUniqueFieldsForNode, getBranchesForParent, getBroadcastConnectionNames, getBroadcastConnections, getClosedBranchingNodes, getConstantKeySet, getCostWeight, getDegreeOfParallelism, getDumpableInputs, getEstimatedAvgWidthPerOutputRecord, getEstimatedNumRecords, getEstimatedOutputSize, getId, getInterestingProperties, getMaxDepth, getMinimalMemoryAcrossAllSubTasks, getName, getOpenBranches, getOptimizerNode, getOutgoingConnections, getPactContract, getPlanNode, getPredecessors, getRemappedKeys, getUniqueFields, hasUnclosedBranches, haveAllOutputConnectionInterestingProperties, initId, isBranching, mergeLists, prunePlanAlternatives, prunePlanAlternativesWithCommonBranching, readUniqueFieldsAnnotation, removeClosedBranches, setBroadcastInputs, setDegreeOfParallelism, setEstimatedNumRecords, setEstimatedOutputSize, toStringprotected AbstractPartialSolutionNode(Operator<?> contract)
protected void copyEstimates(OptimizerNode node)
public abstract IterationNode getIterationNode()
public boolean isOnDynamicPath()
isOnDynamicPath in class OptimizerNodepublic void identifyDynamicPath(int costWeight)
identifyDynamicPath in class OptimizerNodepublic List<PactConnection> getIncomingConnections()
OptimizerNodegetIncomingConnections in class OptimizerNodepublic void setInput(Map<Operator<?>,OptimizerNode> contractToNode)
OptimizerNodeIn addition, the nodes must set the shipping strategy of the connection, if a suitable optimizer hint is found.
setInput in class OptimizerNodecontractToNode - The map to translate the contracts to their corresponding optimizer nodes.protected void computeOperatorSpecificDefaultEstimates(DataStatistics statistics)
computeOperatorSpecificDefaultEstimates in class OptimizerNodepublic void computeInterestingPropertiesForInputs(CostEstimator estimator)
OptimizerNodecomputeInterestingPropertiesForInputs in class OptimizerNodeestimator - The CostEstimator instance to use for plan cost estimation.public List<PlanNode> getAlternativePlans(CostEstimator estimator)
OptimizerNodegetAlternatives() on its children
to get their plan alternatives, and build its own alternatives on top of those.getAlternativePlans in class OptimizerNodeestimator - The cost estimator used to estimate the costs of each plan alternative.public boolean isFieldConstant(int input,
int fieldNumber)
OptimizerNodeisFieldConstant in class OptimizerNodeinput - The input number.fieldNumber - The position of the field.protected void readStubAnnotations()
OptimizerNodereadStubAnnotations in class OptimizerNodepublic void accept(Visitor<OptimizerNode> visitor)
OptimizerNodepreVisit() method, then hand the visitor to their children, and finally call
the postVisit() method.accept in interface Visitable<OptimizerNode>accept in class OptimizerNodevisitor - The graph traversing visitor.Visitable.accept(org.apache.flink.util.Visitor)Copyright © 2014 The Apache Software Foundation. All rights reserved.