private PlannerOp planProject(EnumerableProject op, RelDataType rowType) { PlannerOp input = convertRelNode(op.getInput(), null, false); final List<RexNode> projects = op.getProjects(); final RelDataType _rowType = rowType == null ? op.getRowType() : rowType; Projection projection = buildProjection(projects, _rowType, false, null); return new ProjectOp(projection, input); }
public EnumerableProject copy(RelTraitSet traitSet, RelNode input, List<RexNode> projects, RelDataType rowType) { return new EnumerableProject(getCluster(), traitSet, input, projects, rowType); }
/** * Creates an EnumerableProject. * * <p>Use {@link #create} unless you know what you're doing. * * @param cluster Cluster this relational expression belongs to * @param traitSet Traits of this relational expression * @param input Input relational expression * @param projects List of expressions for the input columns * @param rowType Output row type */ public EnumerableProject( RelOptCluster cluster, RelTraitSet traitSet, RelNode input, List<? extends RexNode> projects, RelDataType rowType) { super(cluster, traitSet, input, projects, rowType); assert getConvention() instanceof EnumerableConvention; }
public void onMatch(RelOptRuleCall call) { final EnumerableProject 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 EnumerableCalc calc = EnumerableCalc.create(input, program); call.transformTo(calc); } }
if (project.getInput() instanceof EnumerableValues) { EnumerableValues values = (EnumerableValues) project.getInput(); if (values.getTuples().size() == 1) { final TableImpl tableImpl Table table = tableImpl.tableManager.getTable(); int index = 0; List<RexNode> projects = project.getProjects(); List<CompiledSQLExpression> keyValueExpression = new ArrayList<>(); List<String> keyExpressionToColumn = new ArrayList<>();
static RelNode create(RelNode child, List<? extends RexNode> projects, List<String> fieldNames) { final RelOptCluster cluster = child.getCluster(); final RelDataType rowType = RexUtil.createStructType(cluster.getTypeFactory(), projects, fieldNames, SqlValidatorUtil.F_SUGGESTER); return create(child, projects, rowType); }
/** Creates an EnumerableProject, specifying row type rather than field * names. */ public static EnumerableProject create(final RelNode input, final List<? extends RexNode> projects, RelDataType rowType) { final RelOptCluster cluster = input.getCluster(); final RelMetadataQuery mq = cluster.getMetadataQuery(); final RelTraitSet traitSet = cluster.traitSet().replace(EnumerableConvention.INSTANCE) .replaceIfs(RelCollationTraitDef.INSTANCE, () -> RelMdCollation.project(mq, input, projects)); return new EnumerableProject(cluster, traitSet, input, projects, rowType); }
public void onMatch(RelOptRuleCall call) { final EnumerableProject 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 EnumerableCalc calc = EnumerableCalc.create(input, program); call.transformTo(calc); } }
static RelNode create(RelNode child, List<? extends RexNode> projects, List<String> fieldNames) { final RelOptCluster cluster = child.getCluster(); final RelDataType rowType = RexUtil.createStructType(cluster.getTypeFactory(), projects, fieldNames, SqlValidatorUtil.F_SUGGESTER); return create(child, projects, rowType); }
/** Creates an EnumerableProject, specifying row type rather than field * names. */ public static EnumerableProject create(final RelNode input, final List<? extends RexNode> projects, RelDataType rowType) { final RelOptCluster cluster = input.getCluster(); final RelMetadataQuery mq = cluster.getMetadataQuery(); final RelTraitSet traitSet = cluster.traitSet().replace(EnumerableConvention.INSTANCE) .replaceIfs(RelCollationTraitDef.INSTANCE, () -> RelMdCollation.project(mq, input, projects)); return new EnumerableProject(cluster, traitSet, input, projects, rowType); }
public RelNode convert(RelNode rel) { final EnumerableProject project = (EnumerableProject) rel; return new JdbcRules.JdbcProject( rel.getCluster(), rel.getTraitSet().replace(getOutConvention()), convert(project.getInput(), project.getInput().getTraitSet().replace(getOutConvention())), project.getProjects(), project.getRowType()); } }
public EnumerableProject copy(RelTraitSet traitSet, RelNode input, List<RexNode> projects, RelDataType rowType) { return new EnumerableProject(getCluster(), traitSet, input, projects, rowType); }
public RelNode convert(RelNode rel) { final LogicalProject project = (LogicalProject) rel; return EnumerableProject.create( convert(project.getInput(), project.getInput().getTraitSet() .replace(EnumerableConvention.INSTANCE)), project.getProjects(), project.getRowType()); } }
/** * Creates an EnumerableProject. * * <p>Use {@link #create} unless you know what you're doing. * * @param cluster Cluster this relational expression belongs to * @param traitSet Traits of this relational expression * @param input Input relational expression * @param projects List of expressions for the input columns * @param rowType Output row type */ public EnumerableProject( RelOptCluster cluster, RelTraitSet traitSet, RelNode input, List<? extends RexNode> projects, RelDataType rowType) { super(cluster, traitSet, input, projects, rowType); assert getConvention() instanceof EnumerableConvention; }
public RelNode convert(RelNode rel) { final EnumerableProject project = (EnumerableProject) rel; return new JdbcRules.JdbcProject( rel.getCluster(), rel.getTraitSet().replace(getOutConvention()), convert(project.getInput(), project.getInput().getTraitSet().replace(getOutConvention())), project.getProjects(), project.getRowType()); } }
public RelNode convert(RelNode rel) { final LogicalProject project = (LogicalProject) rel; return EnumerableProject.create( convert(project.getInput(), project.getInput().getTraitSet() .replace(EnumerableConvention.INSTANCE)), project.getProjects(), project.getRowType()); } }