public OptimizerNode getInitialSolutionSetPredecessorNode() { return getFirstPredecessorNode(); }
@Override protected void computeOperatorSpecificDefaultEstimates(DataStatistics statistics) { this.estimatedOutputSize = getFirstPredecessorNode().getEstimatedOutputSize(); this.estimatedNumRecords = getFirstPredecessorNode().getEstimatedNumRecords(); }
@Override public void computeUnclosedBranchStack() { if (this.openBranches != null) { return; } // IMPORTANT: First compute closed branches from the two inputs // we need to do this because the runtime iteration head effectively joins addClosedBranches(getFirstPredecessorNode().closedBranchingNodes); addClosedBranches(getSecondPredecessorNode().closedBranchingNodes); List<UnclosedBranchDescriptor> result1 = getFirstPredecessorNode().getBranchesForParent(getFirstIncomingConnection()); List<UnclosedBranchDescriptor> result2 = getSecondPredecessorNode().getBranchesForParent(getSecondIncomingConnection()); ArrayList<UnclosedBranchDescriptor> inputsMerged1 = new ArrayList<UnclosedBranchDescriptor>(); mergeLists(result1, result2, inputsMerged1, true); // this method also sets which branches are joined here (in the head) addClosedBranches(getSingleRootOfStepFunction().closedBranchingNodes); ArrayList<UnclosedBranchDescriptor> inputsMerged2 = new ArrayList<UnclosedBranchDescriptor>(); List<UnclosedBranchDescriptor> result3 = getSingleRootOfStepFunction().openBranches; mergeLists(inputsMerged1, result3, inputsMerged2, true); // handle the data flow branching for the broadcast inputs List<UnclosedBranchDescriptor> result = computeUnclosedBranchStackForBroadcastInputs(inputsMerged2); this.openBranches = (result == null || result.isEmpty()) ? Collections.<UnclosedBranchDescriptor>emptyList() : result; }
public OptimizerNode getInitialSolutionSetPredecessorNode() { return getFirstPredecessorNode(); }
public OptimizerNode getInitialSolutionSetPredecessorNode() { return getFirstPredecessorNode(); }
public OptimizerNode getInitialSolutionSetPredecessorNode() { return getFirstPredecessorNode(); }
public OptimizerNode getInitialSolutionSetPredecessorNode() { return getFirstPredecessorNode(); }
@Override protected void computeOperatorSpecificDefaultEstimates(DataStatistics statistics) { this.estimatedOutputSize = getFirstPredecessorNode().getEstimatedOutputSize(); this.estimatedNumRecords = getFirstPredecessorNode().getEstimatedNumRecords(); }
@Override protected void computeOperatorSpecificDefaultEstimates(DataStatistics statistics) { this.estimatedOutputSize = getFirstPredecessorNode().getEstimatedOutputSize(); this.estimatedNumRecords = getFirstPredecessorNode().getEstimatedNumRecords(); }
@Override protected void computeOperatorSpecificDefaultEstimates(DataStatistics statistics) { this.estimatedOutputSize = getFirstPredecessorNode().getEstimatedOutputSize(); this.estimatedNumRecords = getFirstPredecessorNode().getEstimatedNumRecords(); }
@Override protected void computeOperatorSpecificDefaultEstimates(DataStatistics statistics) { this.estimatedOutputSize = getFirstPredecessorNode().getEstimatedOutputSize(); this.estimatedNumRecords = getFirstPredecessorNode().getEstimatedNumRecords(); }
@Override public void computeUnclosedBranchStack() { if (this.openBranches != null) { return; } // IMPORTANT: First compute closed branches from the two inputs // we need to do this because the runtime iteration head effectively joins addClosedBranches(getFirstPredecessorNode().closedBranchingNodes); addClosedBranches(getSecondPredecessorNode().closedBranchingNodes); List<UnclosedBranchDescriptor> result1 = getFirstPredecessorNode().getBranchesForParent(getFirstIncomingConnection()); List<UnclosedBranchDescriptor> result2 = getSecondPredecessorNode().getBranchesForParent(getSecondIncomingConnection()); ArrayList<UnclosedBranchDescriptor> inputsMerged1 = new ArrayList<UnclosedBranchDescriptor>(); mergeLists(result1, result2, inputsMerged1, true); // this method also sets which branches are joined here (in the head) addClosedBranches(getSingleRootOfStepFunction().closedBranchingNodes); ArrayList<UnclosedBranchDescriptor> inputsMerged2 = new ArrayList<UnclosedBranchDescriptor>(); List<UnclosedBranchDescriptor> result3 = getSingleRootOfStepFunction().openBranches; mergeLists(inputsMerged1, result3, inputsMerged2, true); // handle the data flow branching for the broadcast inputs List<UnclosedBranchDescriptor> result = computeUnclosedBranchStackForBroadcastInputs(inputsMerged2); this.openBranches = (result == null || result.isEmpty()) ? Collections.<UnclosedBranchDescriptor>emptyList() : result; }
@Override public void computeUnclosedBranchStack() { if (this.openBranches != null) { return; } // IMPORTANT: First compute closed branches from the two inputs // we need to do this because the runtime iteration head effectively joins addClosedBranches(getFirstPredecessorNode().closedBranchingNodes); addClosedBranches(getSecondPredecessorNode().closedBranchingNodes); List<UnclosedBranchDescriptor> result1 = getFirstPredecessorNode().getBranchesForParent(getFirstIncomingConnection()); List<UnclosedBranchDescriptor> result2 = getSecondPredecessorNode().getBranchesForParent(getSecondIncomingConnection()); ArrayList<UnclosedBranchDescriptor> inputsMerged1 = new ArrayList<UnclosedBranchDescriptor>(); mergeLists(result1, result2, inputsMerged1, true); // this method also sets which branches are joined here (in the head) addClosedBranches(getSingleRootOfStepFunction().closedBranchingNodes); ArrayList<UnclosedBranchDescriptor> inputsMerged2 = new ArrayList<UnclosedBranchDescriptor>(); List<UnclosedBranchDescriptor> result3 = getSingleRootOfStepFunction().openBranches; mergeLists(inputsMerged1, result3, inputsMerged2, true); // handle the data flow branching for the broadcast inputs List<UnclosedBranchDescriptor> result = computeUnclosedBranchStackForBroadcastInputs(inputsMerged2); this.openBranches = (result == null || result.isEmpty()) ? Collections.<UnclosedBranchDescriptor>emptyList() : result; }
@Override public void computeUnclosedBranchStack() { if (this.openBranches != null) { return; } // IMPORTANT: First compute closed branches from the two inputs // we need to do this because the runtime iteration head effectively joins addClosedBranches(getFirstPredecessorNode().closedBranchingNodes); addClosedBranches(getSecondPredecessorNode().closedBranchingNodes); List<UnclosedBranchDescriptor> result1 = getFirstPredecessorNode().getBranchesForParent(getFirstIncomingConnection()); List<UnclosedBranchDescriptor> result2 = getSecondPredecessorNode().getBranchesForParent(getSecondIncomingConnection()); ArrayList<UnclosedBranchDescriptor> inputsMerged1 = new ArrayList<UnclosedBranchDescriptor>(); mergeLists(result1, result2, inputsMerged1, true); // this method also sets which branches are joined here (in the head) addClosedBranches(getSingleRootOfStepFunction().closedBranchingNodes); ArrayList<UnclosedBranchDescriptor> inputsMerged2 = new ArrayList<UnclosedBranchDescriptor>(); List<UnclosedBranchDescriptor> result3 = getSingleRootOfStepFunction().openBranches; mergeLists(inputsMerged1, result3, inputsMerged2, true); // handle the data flow branching for the broadcast inputs List<UnclosedBranchDescriptor> result = computeUnclosedBranchStackForBroadcastInputs(inputsMerged2); this.openBranches = (result == null || result.isEmpty()) ? Collections.<UnclosedBranchDescriptor>emptyList() : result; }
@Override public void computeUnclosedBranchStack() { if (this.openBranches != null) { return; } // IMPORTANT: First compute closed branches from the two inputs // we need to do this because the runtime iteration head effectively joins addClosedBranches(getFirstPredecessorNode().closedBranchingNodes); addClosedBranches(getSecondPredecessorNode().closedBranchingNodes); List<UnclosedBranchDescriptor> result1 = getFirstPredecessorNode().getBranchesForParent(getFirstIncomingConnection()); List<UnclosedBranchDescriptor> result2 = getSecondPredecessorNode().getBranchesForParent(getSecondIncomingConnection()); ArrayList<UnclosedBranchDescriptor> inputsMerged1 = new ArrayList<UnclosedBranchDescriptor>(); mergeLists(result1, result2, inputsMerged1, true); // this method also sets which branches are joined here (in the head) addClosedBranches(getSingleRootOfStepFunction().closedBranchingNodes); ArrayList<UnclosedBranchDescriptor> inputsMerged2 = new ArrayList<UnclosedBranchDescriptor>(); List<UnclosedBranchDescriptor> result3 = getSingleRootOfStepFunction().openBranches; mergeLists(inputsMerged1, result3, inputsMerged2, true); // handle the data flow branching for the broadcast inputs List<UnclosedBranchDescriptor> result = computeUnclosedBranchStackForBroadcastInputs(inputsMerged2); this.openBranches = (result == null || result.isEmpty()) ? Collections.<UnclosedBranchDescriptor>emptyList() : result; }