Package org.apache.flink.optimizer.dag
Class JoinNode
- java.lang.Object
-
- org.apache.flink.optimizer.dag.OptimizerNode
-
- org.apache.flink.optimizer.dag.TwoInputNode
-
- org.apache.flink.optimizer.dag.JoinNode
-
- All Implemented Interfaces:
EstimateProvider,DumpableNode<OptimizerNode>,org.apache.flink.util.Visitable<OptimizerNode>
public class JoinNode extends TwoInputNode
The Optimizer representation of a join operator.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.flink.optimizer.dag.OptimizerNode
OptimizerNode.UnclosedBranchDescriptor
-
-
Field Summary
-
Fields inherited from class org.apache.flink.optimizer.dag.TwoInputNode
input1, input2, keys1, keys2
-
Fields inherited from class org.apache.flink.optimizer.dag.OptimizerNode
cachedPlans, closedBranchingNodes, costWeight, estimatedNumRecords, estimatedOutputSize, hereJoinedBranches, id, MAX_DYNAMIC_PATH_COST_WEIGHT, onDynamicPath, openBranches, uniqueFields
-
-
Constructor Summary
Constructors Constructor Description JoinNode(org.apache.flink.api.common.operators.base.InnerJoinOperatorBase<?,?,?,?> joinOperatorBase)Creates a new JoinNode for the given join operator.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidcomputeOperatorSpecificDefaultEstimates(DataStatistics statistics)The default estimates build on the principle of inclusion: The smaller input key domain is included in the larger input key domain.org.apache.flink.api.common.operators.base.InnerJoinOperatorBase<?,?,?,?>getOperator()Gets the contract object for this match node.StringgetOperatorName()Gets the name of this node, which is the name of the function/operator, or data source / data sink.protected List<OperatorDescriptorDual>getPossibleProperties()voidmakeJoinWithSolutionSet(int solutionsetInputIndex)-
Methods inherited from class org.apache.flink.optimizer.dag.TwoInputNode
accept, addLocalCandidates, computeInterestingPropertiesForInputs, computeUnclosedBranchStack, getAlternativePlans, getFirstIncomingConnection, getFirstPredecessorNode, getIncomingConnections, getSecondIncomingConnection, getSecondPredecessorNode, getSemanticProperties, getSemanticPropertiesForGlobalPropertyFiltering, getSemanticPropertiesForLocalPropertyFiltering, instantiate, placePipelineBreakersIfNecessary, setInput
-
Methods inherited from class org.apache.flink.optimizer.dag.OptimizerNode
addBroadcastConnection, addClosedBranch, addClosedBranches, addOutgoingConnection, areBranchCompatible, clearInterestingProperties, computeOutputEstimates, computeUnclosedBranchStackForBroadcastInputs, computeUnionOfInterestingPropertiesFromSuccessors, getBranchesForParent, getBroadcastConnectionNames, getBroadcastConnections, getClosedBranchingNodes, getCostWeight, getDumpableInputs, getEstimatedAvgWidthPerOutputRecord, getEstimatedNumRecords, getEstimatedOutputSize, getId, getInterestingProperties, getMaxDepth, getMinimalMemoryAcrossAllSubTasks, getOpenBranches, getOptimizerNode, getOutgoingConnections, getParallelism, getPlanNode, getPredecessors, getUniqueFields, hasUnclosedBranches, haveAllOutputConnectionInterestingProperties, identifyDynamicPath, initId, isBranching, isOnDynamicPath, markAllOutgoingConnectionsAsPipelineBreaking, mergeLists, prunePlanAlternatives, prunePlanAlternativesWithCommonBranching, readStubAnnotations, readUniqueFieldsAnnotation, removeClosedBranches, setBroadcastInputs, setEstimatedNumRecords, setEstimatedOutputSize, setParallelism, toString
-
-
-
-
Method Detail
-
getOperator
public org.apache.flink.api.common.operators.base.InnerJoinOperatorBase<?,?,?,?> getOperator()
Gets the contract object for this match node.- Overrides:
getOperatorin classTwoInputNode- Returns:
- The contract.
-
getOperatorName
public String getOperatorName()
Description copied from class:OptimizerNodeGets the name of this node, which is the name of the function/operator, or data source / data sink.- Specified by:
getOperatorNamein classOptimizerNode- Returns:
- The node name.
-
getPossibleProperties
protected List<OperatorDescriptorDual> getPossibleProperties()
- Specified by:
getPossiblePropertiesin classTwoInputNode
-
makeJoinWithSolutionSet
public void makeJoinWithSolutionSet(int solutionsetInputIndex)
-
computeOperatorSpecificDefaultEstimates
protected void computeOperatorSpecificDefaultEstimates(DataStatistics statistics)
The default estimates build on the principle of inclusion: The smaller input key domain is included in the larger input key domain. We also assume that every key from the larger input has one join partner in the smaller input. The result cardinality is hence the larger one.- Specified by:
computeOperatorSpecificDefaultEstimatesin classOptimizerNode
-
-