protected RelNode makeRel(RelOptCluster cluster, RelTraitSet traitSet, RelBuilder relBuilder, RelNode input, RexProgram program) { return LogicalCalc.create(input, program); }
protected RelNode makeRel(RelOptCluster cluster, RelTraitSet traitSet, RelBuilder relBuilder, RelNode input, RexProgram program) { return LogicalCalc.create(input, program); }
null, typeFactory.createStructType(outputTypeList, outputNameList)); return LogicalCalc.create(rel, program);
null, typeFactory.createStructType(outputTypeList, outputNameList)); return LogicalCalc.create(rel, program);
public void onMatch(RelOptRuleCall call) { final LogicalProject project = call.rel(0); final RelNode input = project.getInput(); final RexProgram program = RexProgram.create( input.getRowType(), project.getProjects(), null, project.getRowType(), project.getCluster().getRexBuilder()); final LogicalCalc calc = LogicalCalc.create(input, program); call.transformTo(calc); } }
public void onMatch(RelOptRuleCall call) { final LogicalProject project = call.rel(0); final RelNode input = project.getInput(); final RexProgram program = RexProgram.create( input.getRowType(), project.getProjects(), null, project.getRowType(), project.getCluster().getRexBuilder()); final LogicalCalc calc = LogicalCalc.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); } }
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); } }
project.getCluster().getRexBuilder()); final LogicalCalc calc = LogicalCalc.create(input, program); final CalcRelSplitter transform = new WindowedAggRelSplitter(calc, call.builder()) {
public void onMatch(RelOptRuleCall call) { LogicalCalc calc = call.rel(0); // Expand decimals in every expression in this program. If no // expression changes, don't apply the rule. final RexProgram program = calc.getProgram(); if (!RexUtil.requiresDecimalExpansion(program, true)) { return; } final RexBuilder rexBuilder = calc.getCluster().getRexBuilder(); final RexShuttle shuttle = new DecimalShuttle(rexBuilder); RexProgramBuilder programBuilder = RexProgramBuilder.create( rexBuilder, calc.getInput().getRowType(), program.getExprList(), program.getProjectList(), program.getCondition(), program.getOutputRowType(), shuttle, true); final RexProgram newProgram = programBuilder.getProgram(); LogicalCalc newCalc = LogicalCalc.create(calc.getInput(), newProgram); call.transformTo(newCalc); }
project.getCluster().getRexBuilder()); final LogicalCalc calc = LogicalCalc.create(input, program); final CalcRelSplitter transform = new WindowedAggRelSplitter(calc, call.builder()) {
public void onMatch(RelOptRuleCall call) { LogicalCalc calc = call.rel(0); // Expand decimals in every expression in this program. If no // expression changes, don't apply the rule. final RexProgram program = calc.getProgram(); if (!RexUtil.requiresDecimalExpansion(program, true)) { return; } final RexBuilder rexBuilder = calc.getCluster().getRexBuilder(); final RexShuttle shuttle = new DecimalShuttle(rexBuilder); RexProgramBuilder programBuilder = RexProgramBuilder.create( rexBuilder, calc.getInput().getRowType(), program.getExprList(), program.getProjectList(), program.getCondition(), program.getOutputRowType(), shuttle, true); final RexProgram newProgram = programBuilder.getProgram(); LogicalCalc newCalc = LogicalCalc.create(calc.getInput(), newProgram); call.transformTo(newCalc); }
rexBuilder); final LogicalCalc newCalc = LogicalCalc.create(calc.getInput(), mergedProgram); call.transformTo(newCalc);
rexBuilder); final LogicalCalc newCalc = LogicalCalc.create(calc.getInput(), mergedProgram); call.transformTo(newCalc);
LogicalCalc newRel = LogicalCalc.create(newInput, newProgram); setNewForOldRel(rel, newRel);
LogicalCalc newRel = LogicalCalc.create(newInput, newProgram); setNewForOldRel(rel, newRel);
case CALC: final MutableCalc calc = (MutableCalc) node; return LogicalCalc.create(fromMutable(calc.input, relBuilder), calc.program); case EXCHANGE: final MutableExchange exchange = (MutableExchange) node;
case CALC: final MutableCalc calc = (MutableCalc) node; return LogicalCalc.create(fromMutable(calc.input, relBuilder), calc.program); case EXCHANGE: final MutableExchange exchange = (MutableExchange) node;