private SubplanPattern createSubplanPattern() { final OperatorPattern operatorPattern = new OperatorPattern( "source", new org.qcri.rheem.basic.operators.TextFileSource((String) null), false ); return SubplanPattern.createSingleton(operatorPattern); }
private SubplanPattern createSubplanPattern() { final OperatorPattern<MapOperator<Record, Record>> operatorPattern = new OperatorPattern<>( "projection", new MapOperator<>(null, Record.class, Record.class), false ) .withAdditionalTest(op -> op.getFunctionDescriptor() instanceof ProjectionDescriptor) .withAdditionalTest(op -> op.getNumInputs() == 1); // No broadcasts. return SubplanPattern.createSingleton(operatorPattern); }
/** * Test whether this pattern matches a given operator. * * @param operator the operator to match or {@code null}, which represents the absence of an operator to match * @return whether the operator matches */ @SuppressWarnings("unchecked") public OperatorMatch match(Operator operator) { if (operator == null) return null; // Only match by the class so far. if (this.matchOperatorClass(operator) && this.matchSlots(operator) && this.matchAdditionalTests((T) operator)) { this.checkSanity(operator); return new OperatorMatch(this, operator); } return null; }
/** * Creates a new instance. */ private SubplanPattern(OperatorPattern inputPattern, OperatorPattern outputPattern) { super(inputPattern.getAllInputs(), outputPattern.getAllOutputs(), false); this.inputPattern = inputPattern; this.outputPattern = outputPattern; }
@SuppressWarnings("unchecked") private SubplanPattern createSubplanPattern() { final OperatorPattern groupByPattern = new OperatorPattern( "groupBy", new GroupByOperator<>( null, DataSetType.none(), DataSetType.groupedNone() ), false); final OperatorPattern reducePattern = new OperatorPattern( "reduce", ReduceOperator.createGroupedReduce( null, DataSetType.groupedNone(), DataSetType.none() ), false); groupByPattern.connectTo(0, reducePattern, 0); return SubplanPattern.fromOperatorPatterns(groupByPattern, reducePattern); }
if (pattern.getNumInputs() > 1 && Arrays.stream(pattern.getAllInputs()) .map(InputSlot::getOccupant) .filter(Objects::nonNull) final OperatorMatch operatorMatch = pattern.match(operator); if (operatorMatch == null) { for (int inputIndex = 0; inputIndex < pattern.getNumInputs(); inputIndex++) { final OutputSlot<?> patternOccupant = pattern.getEffectiveOccupant(pattern.getInput(inputIndex)); if (patternOccupant == null) { continue;
private SubplanPattern createSubplanPattern() { final OperatorPattern operatorPattern = new OperatorPattern<>( "pageRank", new PageRankOperator(1), false ); return SubplanPattern.createSingleton(operatorPattern); }
private SubplanPattern createSubplanPattern() { final OperatorPattern operatorPattern = new OperatorPattern<>( "filter", new FilterOperator<>(null, Record.class), false ).withAdditionalTest(op -> op.getPredicateDescriptor().getSqlImplementation() != null); return SubplanPattern.createSingleton(operatorPattern); }
private SubplanPattern createSubplanPattern() { final OperatorPattern operatorPattern = new OperatorPattern( "source", new TextFileSource("", null), false ); return SubplanPattern.createSingleton(operatorPattern); }
private SubplanPattern createSubplanPattern() { OperatorPattern<MapOperator<Record, Record>> operatorPattern = new OperatorPattern<>( "projection", new MapOperator<>( null, DataSetType.createDefault(Record.class), DataSetType.createDefault(Record.class) ), false ) .withAdditionalTest(op -> op.getFunctionDescriptor() instanceof ProjectionDescriptor) .withAdditionalTest(op -> op.getNumInputs() == 1); // No broadcasts. return SubplanPattern.createSingleton(operatorPattern); }
private SubplanPattern createSubplanPattern() { final OperatorPattern operatorPattern = new OperatorPattern( "source", new CollectionSource(Collections.emptyList(), DataSetType.none()), false ); return SubplanPattern.createSingleton(operatorPattern); }
private SubplanPattern createSubplanPattern() { final OperatorPattern<FilterOperator<Record>> operatorPattern = new OperatorPattern<>( "filter", new FilterOperator<>(null, DataSetType.createDefault(Record.class)), false ).withAdditionalTest(op -> op.getPredicateDescriptor().getSqlImplementation() != null); return SubplanPattern.createSingleton(operatorPattern); }
private SubplanPattern createPattern() { return SubplanPattern.createSingleton(new OperatorPattern<>( "pageRank", new PageRankOperator(1), false )); }
private SubplanPattern createSubplanPattern() { final OperatorPattern operatorPattern = new OperatorPattern<>( "sample", new SampleOperator<>(0, DataSetType.none(), null, 0L), false ).withAdditionalTest(op -> op.getSampleMethod() == SampleOperator.Methods.RANDOM || op.getSampleMethod() == SampleOperator.Methods.RESERVOIR || op.getSampleMethod() == SampleOperator.Methods.ANY ); return SubplanPattern.createSingleton(operatorPattern); }
private SubplanPattern createSubplanPattern() { final OperatorPattern operatorPattern = new OperatorPattern<>( "pageRank", new PageRankOperator(1), false ); return SubplanPattern.createSingleton(operatorPattern); }
private SubplanPattern createSubplanPattern() { final OperatorPattern operatorPattern = new OperatorPattern<>( "sample", new SampleOperator<>(0, DataSetType.none(), null, 0L), false ).withAdditionalTest(op -> op.getSampleMethod() == SampleOperator.Methods.RANDOM || op.getSampleMethod() == SampleOperator.Methods.SHUFFLE_PARTITION_FIRST || op.getSampleMethod() == SampleOperator.Methods.BERNOULLI || op.getSampleMethod() == SampleOperator.Methods.ANY ); //TODO: check if the zero here affects execution return SubplanPattern.createSingleton(operatorPattern); }
private SubplanPattern createSubplanPattern() { final OperatorPattern operatorPattern = new OperatorPattern( "source", new CollectionSource(Collections.emptyList(), DataSetType.none()), false ); return SubplanPattern.createSingleton(operatorPattern); }
@SuppressWarnings("unchecked") private SubplanPattern createSubplanPattern() { final OperatorPattern operatorPattern = new OperatorPattern( "pageRank", new PageRankOperator(1), false); return SubplanPattern.createSingleton(operatorPattern); }
private SubplanPattern createSubplanPattern() { final OperatorPattern operatorPattern = new OperatorPattern( "repeat", new RepeatOperator<>(1, DataSetType.none()), false ); return SubplanPattern.createSingleton(operatorPattern); }
private SubplanPattern createSubplanPattern() { final OperatorPattern operatorPattern = new OperatorPattern( "sort", new SortOperator<>(null, DataSetType.none()), false ); return SubplanPattern.createSingleton(operatorPattern); }