@Override public RelNode copy(RelTraitSet traitSet, List<RelNode> inputs) { return new EnumerableInterpreter(getCluster(), traitSet, sole(inputs), factor); }
@Override public RelNode convert(RelNode rel) { return EnumerableInterpreter.create(rel, 0.5d); } }
/** * Creates an EnumerableInterpreter. * * <p>Use {@link #create} unless you know what you're doing. * * @param cluster Cluster * @param traitSet Traits * @param input Input relation * @param factor Cost multiply factor */ public EnumerableInterpreter(RelOptCluster cluster, RelTraitSet traitSet, RelNode input, double factor) { super(cluster, traitSet, input); assert getConvention() instanceof EnumerableConvention; this.factor = factor; }
public Result implement(EnumerableRelImplementor implementor, Prefer pref) { final JavaTypeFactory typeFactory = implementor.getTypeFactory(); final BlockBuilder builder = new BlockBuilder(); final PhysType physType = PhysTypeImpl.of(typeFactory, getRowType(), JavaRowFormat.ARRAY); final Expression interpreter_ = builder.append("interpreter", Expressions.new_(Interpreter.class, implementor.getRootExpression(), implementor.stash(getInput(), RelNode.class))); final Expression sliced_ = getRowType().getFieldCount() == 1 ? Expressions.call(BuiltInMethod.SLICE0.method, interpreter_) : interpreter_; builder.add(sliced_); return implementor.result(physType, builder.toBlock()); } }
private PlannerOp planInterpreter(EnumerableInterpreter op, RelDataType rowType, boolean returnValues) { // NOOP return convertRelNode(op.getInput(), rowType, returnValues); }
/** * Creates an EnumerableInterpreter. * * @param input Input relation * @param factor Cost multiply factor */ public static EnumerableInterpreter create(RelNode input, double factor) { final RelTraitSet traitSet = input.getTraitSet() .replace(EnumerableConvention.INSTANCE); return new EnumerableInterpreter(input.getCluster(), traitSet, input, factor); }
public Result implement(EnumerableRelImplementor implementor, Prefer pref) { final JavaTypeFactory typeFactory = implementor.getTypeFactory(); final BlockBuilder builder = new BlockBuilder(); final PhysType physType = PhysTypeImpl.of(typeFactory, getRowType(), JavaRowFormat.ARRAY); final Expression interpreter_ = builder.append("interpreter", Expressions.new_(Interpreter.class, implementor.getRootExpression(), implementor.stash(getInput(), RelNode.class))); final Expression sliced_ = getRowType().getFieldCount() == 1 ? Expressions.call(BuiltInMethod.SLICE0.method, interpreter_) : interpreter_; builder.add(sliced_); return implementor.result(physType, builder.toBlock()); } }
/** * Creates an EnumerableInterpreter. * * @param input Input relation * @param factor Cost multiply factor */ public static EnumerableInterpreter create(RelNode input, double factor) { final RelTraitSet traitSet = input.getTraitSet() .replace(EnumerableConvention.INSTANCE); return new EnumerableInterpreter(input.getCluster(), traitSet, input, factor); }
@Override public RelNode copy(RelTraitSet traitSet, List<RelNode> inputs) { return new EnumerableInterpreter(getCluster(), traitSet, sole(inputs), factor); }
@Override public RelNode convert(RelNode rel) { return EnumerableInterpreter.create(rel, 0.5d); } }
/** * Creates an EnumerableInterpreter. * * <p>Use {@link #create} unless you know what you're doing. * * @param cluster Cluster * @param traitSet Traits * @param input Input relation * @param factor Cost multiply factor */ public EnumerableInterpreter(RelOptCluster cluster, RelTraitSet traitSet, RelNode input, double factor) { super(cluster, traitSet, input); assert getConvention() instanceof EnumerableConvention; this.factor = factor; }