/** * Creates a Project. * * @param cluster Cluster that this relational expression belongs to * @param traits Traits of this relational expression * @param input Input relational expression * @param projects List of expressions for the input columns * @param rowType Output row type */ protected Project( RelOptCluster cluster, RelTraitSet traits, RelNode input, List<? extends RexNode> projects, RelDataType rowType) { super(cluster, traits, input); assert rowType != null; this.exps = ImmutableList.copyOf(projects); this.rowType = rowType; assert isValid(Litmus.THROW, null); }
/** * Creates a Project. * * @param cluster Cluster that this relational expression belongs to * @param traits Traits of this relational expression * @param input Input relational expression * @param projects List of expressions for the input columns * @param rowType Output row type */ protected Project( RelOptCluster cluster, RelTraitSet traits, RelNode input, List<? extends RexNode> projects, RelDataType rowType) { super(cluster, traits, input); assert rowType != null; this.exps = ImmutableList.copyOf(projects); this.rowType = rowType; assert isValid(Litmus.THROW, null); }