Fix order with limit
Project: http://git-wip-us.apache.org/repos/asf/incubator-drill/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-drill/commit/e11c2e5e Tree: http://git-wip-us.apache.org/repos/asf/incubator-drill/tree/e11c2e5e Diff: http://git-wip-us.apache.org/repos/asf/incubator-drill/diff/e11c2e5e Branch: refs/heads/master Commit: e11c2e5e9d6c6291b885513d380c4d1098e35d5a Parents: ecb5e15 Author: Timothy Chen <[email protected]> Authored: Sat Sep 28 11:04:17 2013 -0700 Committer: Timothy Chen <[email protected]> Committed: Mon Oct 14 12:06:18 2013 -0700 ---------------------------------------------------------------------- .../java/org/apache/drill/optiq/DrillLimitRel.java | 2 +- .../java/org/apache/drill/optiq/DrillLimitRule.java | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/e11c2e5e/sqlparser/src/main/java/org/apache/drill/optiq/DrillLimitRel.java ---------------------------------------------------------------------- diff --git a/sqlparser/src/main/java/org/apache/drill/optiq/DrillLimitRel.java b/sqlparser/src/main/java/org/apache/drill/optiq/DrillLimitRel.java index e05a10a..c1bf3d2 100644 --- a/sqlparser/src/main/java/org/apache/drill/optiq/DrillLimitRel.java +++ b/sqlparser/src/main/java/org/apache/drill/optiq/DrillLimitRel.java @@ -46,7 +46,7 @@ public class DrillLimitRel extends SingleRel implements DrillRel { @Override public int implement(DrillImplementor implementor) { int inputId = implementor.visitChild(this, 0, getChild()); - final ObjectNode limit = implementor.mapper.createObjectNode(); + // First offset to include into results (inclusive). Null implies it is starting from offset 0 int first = offset != null ? Math.max(0, RexLiteral.intValue(offset)) : 0; http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/e11c2e5e/sqlparser/src/main/java/org/apache/drill/optiq/DrillLimitRule.java ---------------------------------------------------------------------- diff --git a/sqlparser/src/main/java/org/apache/drill/optiq/DrillLimitRule.java b/sqlparser/src/main/java/org/apache/drill/optiq/DrillLimitRule.java index 6a7d3ba..2662156 100644 --- a/sqlparser/src/main/java/org/apache/drill/optiq/DrillLimitRule.java +++ b/sqlparser/src/main/java/org/apache/drill/optiq/DrillLimitRule.java @@ -41,19 +41,19 @@ public class DrillLimitRule extends RelOptRule { if (sort.offset == null && sort.fetch == null) { return; } - final RelTraitSet traits = sort.getTraitSet().plus(DrillRel.CONVENTION); + final RelTraitSet traits = sort.getTraitSet(); RelNode input = sort.getChild(); if (!sort.getCollation().getFieldCollations().isEmpty()) { input = sort.copy( - sort.getTraitSet().replace(RelCollationImpl.EMPTY), - input, - RelCollationImpl.EMPTY, + sort.getTraitSet(), + sort, + sort.getCollation(), null, null); } - RelNode x = convert( - input, - input.getTraitSet().replace(DrillRel.CONVENTION)); - call.transformTo(new DrillLimitRel(sort.getCluster(), traits, x, sort.offset, sort.fetch)); + //RelNode x = convert( + // input, + // input.getTraitSet()); + call.transformTo(new DrillLimitRel(sort.getCluster(), traits, input, sort.offset, sort.fetch)); } }
