use of io.dingodb.exec.base.Output in project dingo by dingodb.
the class DingoJobVisitor method visit.
@Override
public Collection<Output> visit(@Nonnull DingoAggregate rel) {
Collection<Output> inputs = dingo(rel.getInput()).accept(this);
List<Output> outputs = new LinkedList<>();
for (Output input : inputs) {
Operator operator = new AggregateOperator(rel.getKeys(), rel.getAggList());
Task task = input.getTask();
operator.setId(idGenerator.get());
task.putOperator(operator);
input.setLink(operator.getInput(0));
outputs.addAll(operator.getOutputs());
}
return outputs;
}
use of io.dingodb.exec.base.Output in project dingo by dingodb.
the class DingoJobVisitor method visit.
@Override
public Collection<Output> visit(@Nonnull DingoProject rel) {
Collection<Output> inputs = dingo(rel.getInput()).accept(this);
List<Output> outputs = new ArrayList<>(inputs.size());
for (Output input : inputs) {
Operator operator = new ProjectOperator(RexConverter.toString(rel.getProjects()), TupleSchema.fromRelDataType(rel.getInput().getRowType()));
Task task = input.getTask();
operator.setId(idGenerator.get());
task.putOperator(operator);
input.setLink(operator.getInput(0));
operator.getSoleOutput().copyHint(input);
outputs.addAll(operator.getOutputs());
}
return outputs;
}
use of io.dingodb.exec.base.Output in project dingo by dingodb.
the class PartitionOperator method createOutputs.
public void createOutputs(String tableName, @Nonnull Map<String, Location> partLocations) {
outputs = new HashMap<>(partLocations.size());
for (Map.Entry<String, Location> partLocation : partLocations.entrySet()) {
OutputHint hint = OutputHint.of(tableName, partLocation.getKey());
hint.setLocation(partLocation.getValue());
Output output = OutputIml.of(this);
output.setHint(hint);
outputs.put(partLocation.getKey(), output);
}
}
Aggregations