@Override public PhysicalOperator getPhysicalOperator(PhysicalPlanCreator creator) throws IOException { JdbcGroupScan output = new JdbcGroupScan(sql, convention.getPlugin(), rows); return creator.addMetadata(this, output); }
@Override public PhysicalOperator getPhysicalOperator(PhysicalPlanCreator creator) throws IOException { Prel child = (Prel) this.getInput(); PhysicalOperator childPOP = child.getPhysicalOperator(creator); Screen s = new Screen(childPOP, creator.getContext().getCurrentEndpoint()); return creator.addMetadata(this, s); }
protected PhysicalOperator convertToPop(Prel prel) throws IOException { PhysicalPlanCreator creator = new PhysicalPlanCreator(context, PrelSequencer.getIdMap(prel)); PhysicalOperator op = prel.getPhysicalOperator(creator); return op; }
@Override public PhysicalOperator getPhysicalOperator(PhysicalPlanCreator creator) throws IOException { return creator.addMetadata(this, unnestPOP); }
@Override public PhysicalOperator getPhysicalOperator(PhysicalPlanCreator creator) throws IOException { return creator.addMetadata(this, this.getGroupScan()); }
@Override public PhysicalOperator getPhysicalOperator(PhysicalPlanCreator creator) throws IOException { return creator.addMetadata(this, this.getGroupScan()); }
@Override public PhysicalOperator getPhysicalOperator(PhysicalPlanCreator creator) throws IOException { return creator.addMetadata(this, new Values(content)); }
@Override public PhysicalOperator getPhysicalOperator(PhysicalPlanCreator creator) throws IOException { List<PhysicalOperator> inputPops = Lists.newArrayList(); for (int i = 0; i < this.getInputs().size(); i++) { inputPops.add( ((Prel)this.getInputs().get(i)).getPhysicalOperator(creator)); } UnionAll unionall = new UnionAll(inputPops); return creator.addMetadata(this, unionall); }
@Override public PhysicalOperator getPhysicalOperator(PhysicalPlanCreator creator) throws IOException { List<PhysicalOperator> inputPops = Lists.newArrayList(); for (int i = 0; i < this.getInputs().size(); i++) { inputPops.add( ((Prel)this.getInputs().get(i)).getPhysicalOperator(creator)); } ///TODO: change this to UnionDistinct once implemented end-to-end.. UnionAll unionAll = new UnionAll(inputPops); return creator.addMetadata(this, unionAll); }
@Override public PhysicalOperator getPhysicalOperator(PhysicalPlanCreator creator) throws IOException { Prel child = (Prel) this.getInput(); StreamingAggregate g = new StreamingAggregate(child.getPhysicalOperator(creator), keys, aggExprs, 1.0f); return creator.addMetadata(this, g); }
@Override public PhysicalOperator getPhysicalOperator(PhysicalPlanCreator creator) throws IOException { Prel child = (Prel) this.getInput(); HashAggregate g = new HashAggregate(child.getPhysicalOperator(creator), operPhase, keys, aggExprs, 1.0f); return creator.addMetadata(this, g); }
@Override public PhysicalOperator getPhysicalOperator(PhysicalPlanCreator creator) throws IOException { ComplexToJson p = new ComplexToJson(((Prel) getInput()).getPhysicalOperator(creator)); return creator.addMetadata(this, p); }
@Override public PhysicalOperator getPhysicalOperator(PhysicalPlanCreator creator) throws IOException { RuntimeFilterPOP r = new RuntimeFilterPOP( ((Prel)getInput()).getPhysicalOperator(creator), identifier); return creator.addMetadata(this, r); }
@Override public PhysicalOperator getPhysicalOperator(PhysicalPlanCreator creator) throws IOException { Prel child = (Prel) this.getInput(); PhysicalOperator childPOP = child.getPhysicalOperator(creator); UnorderedMuxExchange p = new UnorderedMuxExchange(childPOP); return creator.addMetadata(this, p); }
@Override public PhysicalOperator getPhysicalOperator(PhysicalPlanCreator creator) throws IOException { PhysicalOperator leftPop = ((Prel)left).getPhysicalOperator(creator); PhysicalOperator rightPop = ((Prel)right).getPhysicalOperator(creator); RowKeyJoinPOP rkPop = new RowKeyJoinPOP(leftPop, rightPop); return creator.addMetadata(this, rkPop); }
@Override public PhysicalOperator getPhysicalOperator(PhysicalPlanCreator creator) throws IOException { SelectionVectorRemover r = new SelectionVectorRemover( ((Prel)getInput()).getPhysicalOperator(creator)); return creator.addMetadata(this, r); }
@Override public PhysicalOperator getPhysicalOperator(PhysicalPlanCreator creator) throws IOException { Prel child = (Prel) this.getInput(); PhysicalOperator childPOP = child.getPhysicalOperator(creator); ProducerConsumer pop = new ProducerConsumer(childPOP, queueSize); return creator.addMetadata(this, pop); }
@Override public PhysicalOperator getPhysicalOperator(PhysicalPlanCreator creator) throws IOException { PhysicalOperator leftPop = ((Prel)left).getPhysicalOperator(creator); PhysicalOperator rightPop = ((Prel)right).getPhysicalOperator(creator); SemiJoinType jtype = this.getJoinType(); List<SchemaPath> excludedColumns = new ArrayList<>(); if (getColumn() != null) { excludedColumns.add(getColumn()); } LateralJoinPOP ljoin = new LateralJoinPOP(leftPop, rightPop, jtype.toJoinType(), DrillLateralJoinRelBase.IMPLICIT_COLUMN, excludedColumns); return creator.addMetadata(this, ljoin); }
@Override public PhysicalOperator getPhysicalOperator(PhysicalPlanCreator creator) throws IOException { Prel child = (Prel) this.getInput(); PhysicalOperator g = getCreateTableEntry().getWriter(child.getPhysicalOperator(creator)); return creator.addMetadata(this, g); }
@Override public PhysicalOperator getPhysicalOperator(PhysicalPlanCreator creator) throws IOException { Prel child = (Prel) this.getInput(); PhysicalOperator childPOP = child.getPhysicalOperator(creator); // First offset to include into results (inclusive). Null implies it is starting from offset 0 int first = offset != null ? Math.max(0, RexLiteral.intValue(offset)) : 0; // Last offset to stop including into results (exclusive), translating fetch row counts into an offset. // Null value implies including entire remaining result set from first offset Integer last = fetch != null ? Math.max(0, RexLiteral.intValue(fetch)) + first : null; Limit limit; if (isPartitioned) { limit = new PartitionLimit(childPOP, first, last, DrillRelOptUtil.IMPLICIT_COLUMN); } else { limit = new Limit(childPOP, first, last); } return creator.addMetadata(this, limit); }