@Override public RelNode convert(RelNode rel) { final Calc calc = (Calc) rel; final RelNode input = calc.getInput(); return new StreamsCalcRel(calc.getCluster(), calc.getTraitSet().replace(StreamsLogicalConvention.INSTANCE), convert(input, input.getTraitSet().replace(StreamsLogicalConvention.INSTANCE)), calc.getProgram()); } }
/** * Constructs a CalcRelSplitter. * * @param calc Calc to split * @param relTypes Array of rel types, e.g. {Java, Fennel}. Must be * distinct. */ CalcRelSplitter(Calc calc, RelBuilder relBuilder, RelType[] relTypes) { this.relBuilder = relBuilder; for (int i = 0; i < relTypes.length; i++) { assert relTypes[i] != null; for (int j = 0; j < i; j++) { assert relTypes[i] != relTypes[j] : "Rel types must be distinct"; } } this.program = calc.getProgram(); this.cluster = calc.getCluster(); this.traits = calc.getTraitSet(); this.typeFactory = calc.getCluster().getTypeFactory(); this.child = calc.getInput(); this.relTypes = relTypes; }
/** * Constructs a CalcRelSplitter. * * @param calc Calc to split * @param relTypes Array of rel types, e.g. {Java, Fennel}. Must be * distinct. */ CalcRelSplitter(Calc calc, RelBuilder relBuilder, RelType[] relTypes) { this.relBuilder = relBuilder; for (int i = 0; i < relTypes.length; i++) { assert relTypes[i] != null; for (int j = 0; j < i; j++) { assert relTypes[i] != relTypes[j] : "Rel types must be distinct"; } } this.program = calc.getProgram(); this.cluster = calc.getCluster(); this.traits = calc.getTraitSet(); this.typeFactory = calc.getCluster().getTypeFactory(); this.child = calc.getInput(); this.relTypes = relTypes; }
public RelNode convert(RelNode rel) { final Calc calc = (Calc) rel; // If there's a multiset, let FarragoMultisetSplitter work on it // first. if (RexMultisetUtil.containsMultiset(calc.getProgram())) { return null; } return new JdbcCalc(rel.getCluster(), rel.getTraitSet().replace(out), convert(calc.getInput(), calc.getTraitSet().replace(out)), calc.getProgram()); } }
public RelNode convert(RelNode rel) { final Calc calc = (Calc) rel; // If there's a multiset, let FarragoMultisetSplitter work on it // first. if (RexMultisetUtil.containsMultiset(calc.getProgram())) { return null; } return new JdbcCalc(rel.getCluster(), rel.getTraitSet().replace(out), convert(calc.getInput(), calc.getTraitSet().replace(out)), calc.getProgram()); } }
calc.copy(calc.getTraitSet(), calc.getInput(), builder.getProgram()));
calc.copy(calc.getTraitSet(), calc.getInput(), builder.getProgram()));
final Calc newCalc = topCalc.copy( topCalc.getTraitSet(), bottomCalc.getInput(), mergedProgram);
final Calc newCalc = topCalc.copy( topCalc.getTraitSet(), bottomCalc.getInput(), mergedProgram);
calc.copy(calc.getTraitSet(), newJoinRel, topProgramBuilder.getProgram());