public BlockStatement compileToBlock(List<RexNode> nodes, RelDataType inputRowType) { final RexProgramBuilder programBuilder = new RexProgramBuilder(inputRowType, rexBuilder); for (RexNode node : nodes) { programBuilder.addProject(node, null); } return compileToBlock(programBuilder.getProgram()); }
public String compile(List<RexNode> nodes, RelDataType inputRowType, String className) { final RexProgramBuilder programBuilder = new RexProgramBuilder(inputRowType, rexBuilder); for (RexNode node : nodes) { programBuilder.addProject(node, null); } return compile(programBuilder.getProgram(), className); }
@Override public EnumerableRel implementEnumerable(List<EnumerableRel> inputs) { // keep it for having clause RexBuilder rexBuilder = getCluster().getRexBuilder(); RelDataType inputRowType = getInput().getRowType(); RexProgramBuilder programBuilder = new RexProgramBuilder(inputRowType, rexBuilder); programBuilder.addIdentity(); programBuilder.addCondition(this.condition); RexProgram program = programBuilder.getProgram(); return new EnumerableCalc(getCluster(), getCluster().traitSetOf(EnumerableConvention.INSTANCE), // sole(inputs), program); }
@Deprecated // to be removed before 2.0 public static RexProgramBuilder create( RexBuilder rexBuilder, final RelDataType inputRowType, final List<RexNode> exprList, final List<? extends RexNode> projectList, final RexNode condition, final RelDataType outputRowType, boolean normalize, boolean simplify_) { RexSimplify simplify = null; if (simplify_) { simplify = new RexSimplify(rexBuilder, RelOptPredicateList.EMPTY, RexUtil.EXECUTOR); } return new RexProgramBuilder(rexBuilder, inputRowType, exprList, projectList, condition, outputRowType, normalize, simplify); }
@Deprecated // to be removed before 2.0 public static RexProgramBuilder create( RexBuilder rexBuilder, final RelDataType inputRowType, final List<RexNode> exprList, final List<? extends RexNode> projectList, final RexNode condition, final RelDataType outputRowType, boolean normalize, boolean simplify_) { RexSimplify simplify = null; if (simplify_) { simplify = new RexSimplify(rexBuilder, RelOptPredicateList.EMPTY, RexUtil.EXECUTOR); } return new RexProgramBuilder(rexBuilder, inputRowType, exprList, projectList, condition, outputRowType, normalize, simplify); }
public BlockStatement compileToBlock(List<RexNode> nodes, RelDataType inputRowType) { final RexProgramBuilder programBuilder = new RexProgramBuilder(inputRowType, rexBuilder); for (RexNode node : nodes) { programBuilder.addProject(node, null); } return compileToBlock(programBuilder.getProgram()); }
public String compile(List<RexNode> nodes, RelDataType inputRowType, String className) { final RexProgramBuilder programBuilder = new RexProgramBuilder(inputRowType, rexBuilder); for (RexNode node : nodes) { programBuilder.addProject(node, null); } return compile(programBuilder.getProgram(), className); }
/** * Creates a RexProgram corresponding to a LogicalFilter * * @param filterRel * the LogicalFilter * @return created RexProgram */ private RexProgram createProgram(Filter filterRel) { RexProgramBuilder programBuilder = new RexProgramBuilder(filterRel.getRowType(), filterRel.getCluster().getRexBuilder()); programBuilder.addIdentity(); programBuilder.addCondition(filterRel.getCondition()); return programBuilder.getProgram(); }
/** * Creates a RexProgram corresponding to a LogicalFilter * * @param filterRel the LogicalFilter * @return created RexProgram */ private RexProgram createProgram(Filter filterRel) { RexProgramBuilder programBuilder = new RexProgramBuilder( filterRel.getRowType(), filterRel.getCluster().getRexBuilder()); programBuilder.addIdentity(); programBuilder.addCondition(filterRel.getCondition()); return programBuilder.getProgram(); } }
/** * Creates a RexProgram corresponding to a LogicalFilter * * @param filterRel the LogicalFilter * @return created RexProgram */ private RexProgram createProgram(Filter filterRel) { RexProgramBuilder programBuilder = new RexProgramBuilder( filterRel.getRowType(), filterRel.getCluster().getRexBuilder()); programBuilder.addIdentity(); programBuilder.addCondition(filterRel.getCondition()); return programBuilder.getProgram(); } }
/** * Creates a RexProgram corresponding to a LogicalFilter * * @param filterRel the LogicalFilter * @return created RexProgram */ private RexProgram createProgram(Filter filterRel) { RexProgramBuilder programBuilder = new RexProgramBuilder( filterRel.getRowType(), filterRel.getCluster().getRexBuilder()); programBuilder.addIdentity(); programBuilder.addCondition(filterRel.getCondition()); return programBuilder.getProgram(); } }
public void onMatch(RelOptRuleCall call) { final LogicalFilter filter = call.rel(0); final RelNode rel = filter.getInput(); // Create a program containing a filter. final RexBuilder rexBuilder = filter.getCluster().getRexBuilder(); final RelDataType inputRowType = rel.getRowType(); final RexProgramBuilder programBuilder = new RexProgramBuilder(inputRowType, rexBuilder); programBuilder.addIdentity(); programBuilder.addCondition(filter.getCondition()); final RexProgram program = programBuilder.getProgram(); final LogicalCalc calc = LogicalCalc.create(rel, program); call.transformTo(calc); } }
@Override public EnumerableRel implementEnumerable(List<EnumerableRel> inputs) { // keep it for having clause RexBuilder rexBuilder = getCluster().getRexBuilder(); RelDataType inputRowType = getInput().getRowType(); RexProgramBuilder programBuilder = new RexProgramBuilder(inputRowType, rexBuilder); programBuilder.addIdentity(); programBuilder.addCondition(this.condition); RexProgram program = programBuilder.getProgram(); return new EnumerableCalc(getCluster(), getCluster().traitSetOf(EnumerableConvention.INSTANCE), // sole(inputs), program); }
public void onMatch(RelOptRuleCall call) { final EnumerableFilter filter = call.rel(0); final RelNode input = filter.getInput(); // Create a program containing a filter. final RexBuilder rexBuilder = filter.getCluster().getRexBuilder(); final RelDataType inputRowType = input.getRowType(); final RexProgramBuilder programBuilder = new RexProgramBuilder(inputRowType, rexBuilder); programBuilder.addIdentity(); programBuilder.addCondition(filter.getCondition()); final RexProgram program = programBuilder.getProgram(); final EnumerableCalc calc = EnumerableCalc.create(input, program); call.transformTo(calc); } }
public void onMatch(RelOptRuleCall call) { final EnumerableFilter filter = call.rel(0); final RelNode input = filter.getInput(); // Create a program containing a filter. final RexBuilder rexBuilder = filter.getCluster().getRexBuilder(); final RelDataType inputRowType = input.getRowType(); final RexProgramBuilder programBuilder = new RexProgramBuilder(inputRowType, rexBuilder); programBuilder.addIdentity(); programBuilder.addCondition(filter.getCondition()); final RexProgram program = programBuilder.getProgram(); final EnumerableCalc calc = EnumerableCalc.create(input, program); call.transformTo(calc); } }
public void onMatch(RelOptRuleCall call) { final LogicalFilter filter = call.rel(0); final RelNode rel = filter.getInput(); // Create a program containing a filter. final RexBuilder rexBuilder = filter.getCluster().getRexBuilder(); final RelDataType inputRowType = rel.getRowType(); final RexProgramBuilder programBuilder = new RexProgramBuilder(inputRowType, rexBuilder); programBuilder.addIdentity(); programBuilder.addCondition(filter.getCondition()); final RexProgram program = programBuilder.getProgram(); final LogicalCalc calc = LogicalCalc.create(rel, program); call.transformTo(calc); } }
new RexProgramBuilder( calc.getRowType(), rexBuilder);
new RexProgramBuilder( calc.getRowType(), rexBuilder);
Expression predicate(EnumerableRelImplementor implementor, BlockBuilder builder, PhysType leftPhysType, PhysType rightPhysType, RexNode condition) { final ParameterExpression left_ = Expressions.parameter(leftPhysType.getJavaRowType(), "left"); final ParameterExpression right_ = Expressions.parameter(rightPhysType.getJavaRowType(), "right"); final RexProgramBuilder program = new RexProgramBuilder( implementor.getTypeFactory().builder() .addAll(left.getRowType().getFieldList()) .addAll(right.getRowType().getFieldList()) .build(), getCluster().getRexBuilder()); program.addCondition(condition); builder.add( Expressions.return_(null, RexToLixTranslator.translateCondition(program.getProgram(), implementor.getTypeFactory(), builder, new RexToLixTranslator.InputGetterImpl( ImmutableList.of(Pair.of((Expression) left_, leftPhysType), Pair.of((Expression) right_, rightPhysType))), implementor.allCorrelateVariables, implementor.getConformance()))); return Expressions.lambda(Predicate2.class, builder.toBlock(), left_, right_); } }
Expression predicate(EnumerableRelImplementor implementor, BlockBuilder builder, PhysType leftPhysType, PhysType rightPhysType, RexNode condition) { final ParameterExpression left_ = Expressions.parameter(leftPhysType.getJavaRowType(), "left"); final ParameterExpression right_ = Expressions.parameter(rightPhysType.getJavaRowType(), "right"); final RexProgramBuilder program = new RexProgramBuilder( implementor.getTypeFactory().builder() .addAll(left.getRowType().getFieldList()) .addAll(right.getRowType().getFieldList()) .build(), getCluster().getRexBuilder()); program.addCondition(condition); builder.add( Expressions.return_(null, RexToLixTranslator.translateCondition(program.getProgram(), implementor.getTypeFactory(), builder, new RexToLixTranslator.InputGetterImpl( ImmutableList.of(Pair.of((Expression) left_, leftPhysType), Pair.of((Expression) right_, rightPhysType))), implementor.allCorrelateVariables, implementor.getConformance()))); return Expressions.lambda(Predicate2.class, builder.toBlock(), left_, right_); } }