diff options
Diffstat (limited to 'exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ProjectPrel.java')
-rw-r--r-- | exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ProjectPrel.java | 14 |
1 files changed, 3 insertions, 11 deletions
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ProjectPrel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ProjectPrel.java index dd8e81bba..0a9e8bf1a 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ProjectPrel.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/ProjectPrel.java @@ -19,10 +19,8 @@ package org.apache.drill.exec.planner.physical; import java.io.IOException; import java.util.ArrayList; -import java.util.HashMap; import java.util.Iterator; import java.util.List; -import java.util.Map; import com.google.common.collect.Lists; import org.apache.calcite.rel.type.RelDataTypeFactory; @@ -143,7 +141,9 @@ public class ProjectPrel extends DrillProjectRelBase implements Prel{ RexBuilder builder = this.getCluster().getRexBuilder(); List<RexNode> projects = Lists.newArrayList(); projects.add(builder.makeInputRef(typeFactory.createSqlType(SqlTypeName.INTEGER), 0)); - projects.addAll(DrillRelOptUtil.transformExprs(builder, this.getProjects(), buildMap())); + // right shift the previous field indices. + projects.addAll(DrillRelOptUtil.transformExprs(builder, this.getProjects(), + DrillRelOptUtil.rightShiftColsInRowType(this.getInput().getRowType()))); List<String> fieldNames = new ArrayList<>(); List<RelDataType> fieldTypes = new ArrayList<>(); @@ -160,12 +160,4 @@ public class ProjectPrel extends DrillProjectRelBase implements Prel{ return (Prel) this.copy(this.getTraitSet(), children.get(0), projects, newRowType); } - - private Map<Integer, Integer> buildMap() { - Map<Integer, Integer> map = new HashMap<>(); - for (int i=0;i<this.getInput().getRowType().getFieldCount();i++) { - map.put(i, i+1); - } - return map; - } } |