You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@drill.apache.org by ja...@apache.org on 2014/05/16 22:33:59 UTC

[1/2] git commit: Create 2 phase plan for qualified plain aggregates (no group-by).

Repository: incubator-drill
Updated Branches:
  refs/heads/master cdd2ce905 -> 4ea36c3f1


Create 2 phase plan for qualified plain aggregates (no group-by).


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

Branch: refs/heads/master
Commit: 62a8bf2f582acb28d35b704a12e1b75ecbc8aa9f
Parents: cdd2ce9
Author: Aman Sinha <as...@maprtech.com>
Authored: Thu May 15 18:19:27 2014 -0700
Committer: Aman Sinha <as...@maprtech.com>
Committed: Thu May 15 18:20:03 2014 -0700

----------------------------------------------------------------------
 .../exec/planner/physical/StreamAggPrule.java   | 36 ++++++++++++++++++--
 1 file changed, 33 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/62a8bf2f/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/StreamAggPrule.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/StreamAggPrule.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/StreamAggPrule.java
index bccdea5..ff648a4 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/StreamAggPrule.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/StreamAggPrule.java
@@ -65,10 +65,40 @@ public class StreamAggPrule extends AggPruleBase {
     try {
       if (aggregate.getGroupSet().isEmpty()) {
         DrillDistributionTrait singleDist = DrillDistributionTrait.SINGLETON;
-        traits = call.getPlanner().emptyTraitSet().plus(Prel.DRILL_PHYSICAL).plus(collation).plus(singleDist);
-        createTransformRequest(call, aggregate, input, traits);
-      } else {
+        RelTraitSet singleDistTrait = call.getPlanner().emptyTraitSet().plus(Prel.DRILL_PHYSICAL).plus(singleDist);
+        
+        if (create2PhasePlan(call, aggregate)) {
+          traits = call.getPlanner().emptyTraitSet().plus(Prel.DRILL_PHYSICAL) ;
+
+          RelNode convertedInput = convert(input, traits);  
+
+          if (convertedInput instanceof RelSubset) {
+            RelSubset subset = (RelSubset) convertedInput;
+            for (RelNode rel : subset.getRelList()) {
+              if (!rel.getTraitSet().getTrait(DrillDistributionTraitDef.INSTANCE).equals(DrillDistributionTrait.DEFAULT)) {
+                DrillDistributionTrait toDist = rel.getTraitSet().getTrait(DrillDistributionTraitDef.INSTANCE);              
+                traits = call.getPlanner().emptyTraitSet().plus(Prel.DRILL_PHYSICAL).plus(toDist);
+                RelNode newInput = convert(input, traits);
+
+                StreamAggPrel phase1Agg = new StreamAggPrel(aggregate.getCluster(), traits, newInput,
+                    aggregate.getGroupSet(),
+                    aggregate.getAggCallList());
+
+                UnionExchangePrel exch = 
+                    new UnionExchangePrel(phase1Agg.getCluster(), singleDistTrait, phase1Agg);
+        
+                StreamAggPrel phase2Agg =  new StreamAggPrel(aggregate.getCluster(), singleDistTrait, exch,
+                    aggregate.getGroupSet(),
+                    aggregate.getAggCallList());
 
+                call.transformTo(phase2Agg);  
+              }
+            }
+          }
+        } else {        
+          createTransformRequest(call, aggregate, input, singleDistTrait);
+        }
+      } else {
         // hash distribute on all grouping keys
         DrillDistributionTrait distOnAllKeys = 
             new DrillDistributionTrait(DrillDistributionTrait.DistributionType.HASH_DISTRIBUTED, 


[2/2] git commit: Disable tests that rely on Pacific timezone until fixes can be made

Posted by ja...@apache.org.
Disable tests that rely on Pacific timezone until fixes can be made


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

Branch: refs/heads/master
Commit: 4ea36c3f18841b229aca5048b7d162ea16bfd5a1
Parents: 62a8bf2
Author: Jacques Nadeau <ja...@apache.org>
Authored: Fri May 16 20:31:20 2014 +0000
Committer: Jacques Nadeau <ja...@apache.org>
Committed: Fri May 16 20:31:20 2014 +0000

----------------------------------------------------------------------
 .../java/org/apache/drill/exec/fn/impl/TestDateFunctions.java     | 3 +++
 .../test/java/org/apache/drill/jdbc/test/TestHiveScalarUDFs.java  | 3 ++-
 2 files changed, 5 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/4ea36c3f/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestDateFunctions.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestDateFunctions.java b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestDateFunctions.java
index a2ba851..8d065d4 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestDateFunctions.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestDateFunctions.java
@@ -31,6 +31,7 @@ import org.apache.drill.exec.server.RemoteServiceSet;
 import org.apache.drill.exec.vector.ValueVector;
 import org.apache.drill.exec.vector.BigIntVector;
 import org.junit.Test;
+import org.junit.Ignore;
 
 import java.util.List;
 
@@ -73,6 +74,7 @@ public class TestDateFunctions extends PopUnitTestBase {
     }
 
     @Test
+    @Ignore("relies on particular timezone")
     public void testDateIntervalArithmetic() throws Exception {
         String expectedResults[] = {"2009-02-23T00:00:00.000-08:00",
                                     "2008-02-24T00:00:00.000-08:00",
@@ -131,6 +133,7 @@ public class TestDateFunctions extends PopUnitTestBase {
     }
 
     @Test
+    @Ignore("relies on particular time zone")
     public void testToDateType() throws Exception {
         String expectedResults[] = {"2008-02-23T00:00:00.000-08:00",
                                     "1970-01-01T12:20:30.000-08:00",

http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/4ea36c3f/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/TestHiveScalarUDFs.java
----------------------------------------------------------------------
diff --git a/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/TestHiveScalarUDFs.java b/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/TestHiveScalarUDFs.java
index 76af1b0..ce26c55 100644
--- a/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/TestHiveScalarUDFs.java
+++ b/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/TestHiveScalarUDFs.java
@@ -24,7 +24,7 @@ import org.apache.hadoop.hive.ql.exec.UDF;
 import org.apache.hadoop.hive.ql.udf.generic.GenericUDF;
 import org.junit.BeforeClass;
 import org.junit.Test;
-
+import org.junit.Ignore;
 
 public class TestHiveScalarUDFs {
 
@@ -35,6 +35,7 @@ public class TestHiveScalarUDFs {
 
   /** Test a hive function that implements the interface {@link org.apache.hadoop.hive.ql.exec.UDF}. */
   @Test
+  @Ignore("relies on particular timezone")
   public void simpleUDF() throws Exception {
     JdbcAssert.withNoDefaultSchema()
         .sql("SELECT " +