new EmptyRel( calc.getCluster(), calc.getRowType())); return; } else { calc.getTraitSet(), calc.getChild(), calc.getRowType(), builder.getProgram(), calc.getCollationList()));
final RexProgram program = child.getProgram(); final RelDataType childRowType = child.getRowType(); final int groupCount = aggregate.getGroupSet().cardinality(); IntList constantList = new IntList();
List<String> fieldNames = rel.getRowType().getFieldNames(); flattenProjections( program.getProjectList(),
RexProgram program = RexProgram.create( calc.getRowType(), project.getProjects(), null, final RexProgramBuilder progBuilder = new RexProgramBuilder( calc.getRowType(), rexBuilder); for (Pair<RexNode, String> field : project.getNamedProjects()) {
public RelNode convert(RelNode rel) { final CalcRel calc = (CalcRel) rel; // If there's a multiset, let FarragoMultisetSplitter work on it // first. final RexProgram program = calc.getProgram(); if (B && RexMultisetUtil.containsMultiset(program) || program.containsAggs()) { return null; } return new EnumerableCalcRel( rel.getCluster(), rel.getTraitSet().replace(EnumerableConvention.INSTANCE), convert( calc.getChild(), calc.getChild().getTraitSet() .replace(EnumerableConvention.INSTANCE)), calc.getRowType(), program, calc.getCollationList()); } }
List<String> fieldNames = rel.getRowType().getFieldNames(); flattenProjections( program.getProjectList(),
calc.getRowType(), project.getProjects(), null, final RexProgramBuilder progBuilder = new RexProgramBuilder( calc.getRowType(), rexBuilder); for (Pair<RexNode, String> field : project.getNamedProjects()) {
final RexProgramBuilder progBuilder = new RexProgramBuilder( calc.getRowType(), rexBuilder); progBuilder.addIdentity();
bottomCalc.getTraitSet(), bottomCalc.getChild(), topCalc.getRowType(), mergedProgram, topCalc.getCollationList());
final RexProgramBuilder progBuilder = new RexProgramBuilder( calc.getRowType(), rexBuilder); progBuilder.addIdentity();