@Override public DualInputPlanNode instantiate(Channel in1, Channel in2, TwoInputNode node) { return new DualInputPlanNode(node, "Join("+node.getPactContract().getName()+")", in1, in2, DriverStrategy.HYBRIDHASH_BUILD_FIRST, this.keys1, this.keys2); }
@Override public DualInputPlanNode instantiate(Channel in1, Channel in2, TwoInputNode node) { return new DualInputPlanNode(node, "Join("+node.getPactContract().getName()+")", in1, in2, DriverStrategy.HYBRIDHASH_BUILD_FIRST, this.keys1, this.keys2); }
@Override public DualInputPlanNode instantiate(Channel in1, Channel in2, TwoInputNode node) { return new DualInputPlanNode(node, "Join("+node.getPactContract().getName()+")", in1, in2, DriverStrategy.HYBRIDHASH_BUILD_SECOND, this.keys1, this.keys2); }
@Override public DualInputPlanNode instantiate(Channel in1, Channel in2, TwoInputNode node) { return new DualInputPlanNode(node, "Join("+node.getPactContract().getName()+")", in1, in2, DriverStrategy.HYBRIDHASH_BUILD_SECOND, this.keys1, this.keys2); }
@Override public DualInputPlanNode instantiate(Channel in1, Channel in2, TwoInputNode node) { return new DualInputPlanNode(node, "Cross("+node.getPactContract().getName()+")", in1, in2, getStrategy()); }
@Override public DualInputPlanNode instantiate(Channel in1, Channel in2, TwoInputNode node) { return new DualInputPlanNode(node, "Cross("+node.getPactContract().getName()+")", in1, in2, getStrategy()); }
@Override public DualInputPlanNode instantiate(Channel in1, Channel in2, TwoInputNode node) { boolean[] inputOrders = in1.getLocalProperties().getOrdering().getFieldSortDirections(); if (inputOrders == null || inputOrders.length < this.keys1.size()) { throw new CompilerException("BUG: The input strategy does not sufficiently describe the sort orders for a merge operator."); } else if (inputOrders.length > this.keys1.size()) { boolean[] tmp = new boolean[this.keys1.size()]; System.arraycopy(inputOrders, 0, tmp, 0, tmp.length); inputOrders = tmp; } return new DualInputPlanNode(node, "Join("+node.getPactContract().getName()+")", in1, in2, DriverStrategy.MERGE, this.keys1, this.keys2, inputOrders); }
PactConnection conn1; if (leftPred == null) { throw new CompilerException("Error: Node for '" + getPactContract().getName() + "' has no input set for first input."); } else { pred1 = contractToNode.get(leftPred); PactConnection conn2; if (rightPred == null) { throw new CompilerException("Error: Node for '" + getPactContract().getName() + "' has no input set for second input."); } else { pred2 = contractToNode.get(rightPred);
@Override public DualInputPlanNode instantiate(Channel in1, Channel in2, TwoInputNode node) { boolean[] inputOrders = in1.getLocalProperties().getOrdering().getFieldSortDirections(); if (inputOrders == null || inputOrders.length < this.keys1.size()) { throw new CompilerException("BUG: The input strategy does not sufficiently describe the sort orders for a merge operator."); } else if (inputOrders.length > this.keys1.size()) { boolean[] tmp = new boolean[this.keys1.size()]; System.arraycopy(inputOrders, 0, tmp, 0, tmp.length); inputOrders = tmp; } return new DualInputPlanNode(node, "Join("+node.getPactContract().getName()+")", in1, in2, DriverStrategy.MERGE, this.keys1, this.keys2, inputOrders); }
@Override public DualInputPlanNode instantiate(Channel in1, Channel in2, TwoInputNode node) { boolean[] inputOrders = in1.getLocalProperties().getOrdering().getFieldSortDirections(); if (inputOrders == null || inputOrders.length < this.keys1.size()) { throw new CompilerException("BUG: The input strategy does not sufficiently describe the sort orders for a CoGroup operator."); } else if (inputOrders.length > this.keys1.size()) { boolean[] tmp = new boolean[this.keys1.size()]; System.arraycopy(inputOrders, 0, tmp, 0, tmp.length); inputOrders = tmp; } return new DualInputPlanNode(node, "CoGroup ("+node.getPactContract().getName()+")", in1, in2, DriverStrategy.CO_GROUP, this.keys1, this.keys2, inputOrders); }
PactConnection conn1; if (leftPred == null) { throw new CompilerException("Error: Node for '" + getPactContract().getName() + "' has no input set for first input."); } else { pred1 = contractToNode.get(leftPred); PactConnection conn2; if (rightPred == null) { throw new CompilerException("Error: Node for '" + getPactContract().getName() + "' has no input set for second input."); } else { pred2 = contractToNode.get(rightPred);
@Override public DualInputPlanNode instantiate(Channel in1, Channel in2, TwoInputNode node) { boolean[] inputOrders = in1.getLocalProperties().getOrdering() == null ? null : in1.getLocalProperties().getOrdering().getFieldSortDirections(); if (inputOrders == null || inputOrders.length < this.keys1.size()) { throw new CompilerException("BUG: The input strategy does not sufficiently describe the sort orders for a CoGroup operator."); } else if (inputOrders.length > this.keys1.size()) { boolean[] tmp = new boolean[this.keys1.size()]; System.arraycopy(inputOrders, 0, tmp, 0, tmp.length); inputOrders = tmp; } return new DualInputPlanNode(node, "CoGroup ("+node.getPactContract().getName()+")", in1, in2, DriverStrategy.CO_GROUP, this.keys1, this.keys2, inputOrders); }
@Override public DualInputPlanNode instantiate(Channel in1, Channel in2, TwoInputNode node) { boolean[] inputOrders = in2.getLocalProperties().getOrdering() == null ? null : in2.getLocalProperties().getOrdering().getFieldSortDirections(); if (inputOrders == null || inputOrders.length < this.keys2.size()) { throw new CompilerException("BUG: The input strategy does not sufficiently describe the sort orders for a CoGroup operator."); } else if (inputOrders.length > this.keys2.size()) { boolean[] tmp = new boolean[this.keys2.size()]; System.arraycopy(inputOrders, 0, tmp, 0, tmp.length); inputOrders = tmp; } return new DualInputPlanNode(node, "CoGroup ("+node.getPactContract().getName()+")", in1, in2, DriverStrategy.CO_GROUP, this.keys1, this.keys2, inputOrders); }
this, "WorksetIteration ("+this.getPactContract().getName()+")", solutionSetIn, worksetIn, sspn, wspn, worksetCandidate, solutionSetCandidate); wsNode.setImmediateSolutionSetUpdate(immediateDeltaUpdate); wsNode.initProperties(gp, lp);
this, "WorksetIteration ("+this.getPactContract().getName()+")", solutionSetIn, worksetIn, sspn, wspn, worksetCandidate, solutionSetCandidate); wsNode.setImmediateSolutionSetUpdate(immediateDeltaUpdate); wsNode.initProperties(gp, lp);
} catch (MissingFieldTypeInfoException ex) { throw new CompilerPostPassException("Could not set up the solution set for workset iteration '" + optNode.getPactContract().getName() + "'. Missing type information for key field " + ex.getFieldNumber() + '.'); getDualInputNodeSchema(dn, schema1, schema2); } catch (ConflictingFieldTypeInfoException e) { throw new CompilerPostPassException(getConflictingTypeErrorMessage(e, optNode.getPactContract().getName())); } catch (MissingFieldTypeInfoException e) { throw new CompilerPostPassException("Could not set up runtime strategy for node '" + optNode.getPactContract().getName() + "'. Missing type information for field " + e.getFieldNumber()); } catch (MissingFieldTypeInfoException e) { throw new CompilerPostPassException("Could not set up runtime strategy for node '" + optNode.getPactContract().getName() + "'. Missing type information for field " + e.getFieldNumber()); } catch (MissingFieldTypeInfoException e) { throw new CompilerPostPassException("Could not set up runtime strategy for the first input channel to node '" + optNode.getPactContract().getName() + "'. Missing type information for field " + e.getFieldNumber()); } catch (MissingFieldTypeInfoException e) { throw new CompilerPostPassException("Could not set up runtime strategy for the second input channel to node '" + optNode.getPactContract().getName() + "'. Missing type information for field " + e.getFieldNumber()); } catch (MissingFieldTypeInfoException e) { throw new CompilerPostPassException("Could not set up runtime strategy for broadcast channel in node '" + optNode.getPactContract().getName() + "'. Missing type information for field " + e.getFieldNumber()); ssn.getSolutionSetNode().getIterationNode().getPactContract().getName() + "'";
} catch (MissingFieldTypeInfoException ex) { throw new CompilerPostPassException("Could not set up the solution set for workset iteration '" + optNode.getPactContract().getName() + "'. Missing type information for key field " + ex.getFieldNumber() + '.'); getDualInputNodeSchema(dn, schema1, schema2); } catch (ConflictingFieldTypeInfoException e) { throw new CompilerPostPassException(getConflictingTypeErrorMessage(e, optNode.getPactContract().getName())); } catch (MissingFieldTypeInfoException e) { throw new CompilerPostPassException("Could not set up runtime strategy for node '" + optNode.getPactContract().getName() + "'. Missing type information for field " + e.getFieldNumber()); } catch (MissingFieldTypeInfoException e) { throw new CompilerPostPassException("Could not set up runtime strategy for node '" + optNode.getPactContract().getName() + "'. Missing type information for field " + e.getFieldNumber()); } catch (MissingFieldTypeInfoException e) { throw new CompilerPostPassException("Could not set up runtime strategy for the first input channel to node '" + optNode.getPactContract().getName() + "'. Missing type information for field " + e.getFieldNumber()); } catch (MissingFieldTypeInfoException e) { throw new CompilerPostPassException("Could not set up runtime strategy for the second input channel to node '" + optNode.getPactContract().getName() + "'. Missing type information for field " + e.getFieldNumber()); } catch (MissingFieldTypeInfoException e) { throw new CompilerPostPassException("Could not set up runtime strategy for broadcast channel in node '" + optNode.getPactContract().getName() + "'. Missing type information for field " + e.getFieldNumber()); ssn.getSolutionSetNode().getIterationNode().getPactContract().getName() + "'";