diff options
Diffstat (limited to 'exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/SortPrel.java')
-rw-r--r-- | exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/SortPrel.java | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/SortPrel.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/SortPrel.java index 77fb4c8bb..8064c4287 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/SortPrel.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/SortPrel.java @@ -27,6 +27,7 @@ import org.apache.calcite.rel.RelFieldCollation; import org.apache.drill.exec.ExecConstants; import org.apache.drill.exec.physical.base.PhysicalOperator; import org.apache.drill.exec.physical.config.ExternalSort; +import org.apache.drill.exec.planner.common.OrderedRel; import org.apache.drill.exec.planner.cost.DrillCostBase; import org.apache.drill.exec.planner.cost.DrillCostBase.DrillCostFactory; import org.apache.drill.exec.planner.physical.visitor.PrelVisitor; @@ -40,16 +41,25 @@ import org.apache.calcite.plan.RelOptPlanner; import org.apache.calcite.plan.RelTraitSet; import org.apache.calcite.rex.RexNode; -public class SortPrel extends org.apache.calcite.rel.core.Sort implements Prel { +public class SortPrel extends org.apache.calcite.rel.core.Sort implements OrderedRel,Prel { + private final boolean isRemovable; /** Creates a DrillSortRel. */ public SortPrel(RelOptCluster cluster, RelTraitSet traits, RelNode input, RelCollation collation) { super(cluster, traits, input, collation); + isRemovable = true; } /** Creates a DrillSortRel with offset and fetch. */ public SortPrel(RelOptCluster cluster, RelTraitSet traits, RelNode input, RelCollation collation, RexNode offset, RexNode fetch) { super(cluster, traits, input, collation, offset, fetch); + isRemovable = true; + } + + /** Creates a DrillSortRel. */ + public SortPrel(RelOptCluster cluster, RelTraitSet traits, RelNode input, RelCollation collation, boolean isRemovable) { + super(cluster, traits, input, collation); + this.isRemovable = isRemovable; } @Override @@ -141,4 +151,20 @@ public class SortPrel extends org.apache.calcite.rel.core.Sort implements Prel { return this.copy(traits, children.get(0), collationTrait, this.offset, this.fetch); } + + @Override + public RexNode getOffset() { + return offset; + } + + @Override + public RexNode getFetch() { + return fetch; + } + + @Override + public boolean canBeDropped() { + return isRemovable; + } + } |