DRILL-727: During logical transformation phase use the Project's traits instead 
of input traits when creating a DrillProjectRel.


Project: http://git-wip-us.apache.org/repos/asf/incubator-drill/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-drill/commit/ebe49ea2
Tree: http://git-wip-us.apache.org/repos/asf/incubator-drill/tree/ebe49ea2
Diff: http://git-wip-us.apache.org/repos/asf/incubator-drill/diff/ebe49ea2

Branch: refs/heads/master
Commit: ebe49ea2b606bb610c5242e61b7e5c61dd86e62a
Parents: 0648c9e
Author: Aman Sinha <[email protected]>
Authored: Thu Jun 12 19:04:04 2014 -0700
Committer: Jacques Nadeau <[email protected]>
Committed: Mon Jun 16 12:44:01 2014 -0700

----------------------------------------------------------------------
 .../apache/drill/exec/planner/logical/DrillProjectRule.java  | 4 ++--
 .../src/test/java/org/apache/drill/TestExampleQueries.java   | 8 ++++++++
 2 files changed, 10 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ebe49ea2/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillProjectRule.java
----------------------------------------------------------------------
diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillProjectRule.java
 
b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillProjectRule.java
index 109588c..7cef038 100644
--- 
a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillProjectRule.java
+++ 
b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillProjectRule.java
@@ -38,9 +38,9 @@ public class DrillProjectRule extends RelOptRule {
   public void onMatch(RelOptRuleCall call) {
     final ProjectRel project = (ProjectRel) call.rel(0);
     final RelNode input = project.getChild();
-    //final RelTraitSet traits = 
project.getTraitSet().plus(DrillRel.DRILL_LOGICAL);
+    final RelTraitSet traits = 
project.getTraitSet().plus(DrillRel.DRILL_LOGICAL);
     final RelNode convertedInput = convert(input, 
input.getTraitSet().plus(DrillRel.DRILL_LOGICAL));
-    call.transformTo(new DrillProjectRel(project.getCluster(), 
convertedInput.getTraitSet(), convertedInput, project.getProjects(), project
+    call.transformTo(new DrillProjectRel(project.getCluster(), traits, 
convertedInput, project.getProjects(), project
         .getRowType()));
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/ebe49ea2/exec/java-exec/src/test/java/org/apache/drill/TestExampleQueries.java
----------------------------------------------------------------------
diff --git 
a/exec/java-exec/src/test/java/org/apache/drill/TestExampleQueries.java 
b/exec/java-exec/src/test/java/org/apache/drill/TestExampleQueries.java
index 783c562..59556b3 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/TestExampleQueries.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/TestExampleQueries.java
@@ -39,6 +39,7 @@ public class TestExampleQueries extends BaseTestQuery{
     test("select count(*) from cp.`customer.json` limit 1");
   }
   
+
   @Test
   public void testCaseReturnValueVarChar() throws Exception{
     test("select case when employee_id < 1000 then 'ABC' else 'DEF' end from 
cp.`employee.json` limit 5");
@@ -195,4 +196,11 @@ public class TestExampleQueries extends BaseTestQuery{
     test("select cast(NON_EXIST_COL as varchar(10)) from cp.`employee.json` 
limit 2; ");
   }
   
+  @Test  // Bugs DRILL-727, DRILL-940
+  public void testOrderByDiffColumn() throws Exception {
+    test("select r_name from cp.`tpch/region.parquet` order by r_regionkey");  
+    test("select r_name from cp.`tpch/region.parquet` order by r_name, 
r_regionkey");  
+    test("select cast(r_name as varchar(20)) from cp.`tpch/region.parquet` 
order by r_name");
+  }
+  
 }

Reply via email to