Repository: calcite
Updated Branches:
  refs/heads/master 879139fc6 -> 458e2e1b2


[CALCITE-2114] Enable DruidAggregateFilterTransposeRule (Nishant Bangarwa)

Close apache/calcite#595


Project: http://git-wip-us.apache.org/repos/asf/calcite/repo
Commit: http://git-wip-us.apache.org/repos/asf/calcite/commit/458e2e1b
Tree: http://git-wip-us.apache.org/repos/asf/calcite/tree/458e2e1b
Diff: http://git-wip-us.apache.org/repos/asf/calcite/diff/458e2e1b

Branch: refs/heads/master
Commit: 458e2e1b23c50fb8bb6e4673e06fdf64957362d4
Parents: 879139f
Author: Nishant <[email protected]>
Authored: Sat Dec 30 00:12:38 2017 +0530
Committer: Julian Hyde <[email protected]>
Committed: Fri Dec 29 12:02:55 2017 -0800

----------------------------------------------------------------------
 .../org/apache/calcite/adapter/druid/DruidRules.java   |  5 +----
 .../java/org/apache/calcite/test/DruidAdapterIT.java   | 13 ++++++++-----
 2 files changed, 9 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/calcite/blob/458e2e1b/druid/src/main/java/org/apache/calcite/adapter/druid/DruidRules.java
----------------------------------------------------------------------
diff --git 
a/druid/src/main/java/org/apache/calcite/adapter/druid/DruidRules.java 
b/druid/src/main/java/org/apache/calcite/adapter/druid/DruidRules.java
index ae0f8fb..f2e931d 100644
--- a/druid/src/main/java/org/apache/calcite/adapter/druid/DruidRules.java
+++ b/druid/src/main/java/org/apache/calcite/adapter/druid/DruidRules.java
@@ -114,10 +114,7 @@ public class DruidRules {
   public static final List<RelOptRule> RULES =
       ImmutableList.of(FILTER,
           PROJECT_FILTER_TRANSPOSE,
-          // Disabled, per
-          //   [CALCITE-1706] DruidAggregateFilterTransposeRule
-          //   causes very fine-grained aggregations to be pushed to Druid
-          // AGGREGATE_FILTER_TRANSPOSE,
+          AGGREGATE_FILTER_TRANSPOSE,
           AGGREGATE_PROJECT,
           PROJECT,
           POST_AGGREGATION_PROJECT,

http://git-wip-us.apache.org/repos/asf/calcite/blob/458e2e1b/druid/src/test/java/org/apache/calcite/test/DruidAdapterIT.java
----------------------------------------------------------------------
diff --git a/druid/src/test/java/org/apache/calcite/test/DruidAdapterIT.java 
b/druid/src/test/java/org/apache/calcite/test/DruidAdapterIT.java
index 0b9dc4a..fff466f 100644
--- a/druid/src/test/java/org/apache/calcite/test/DruidAdapterIT.java
+++ b/druid/src/test/java/org/apache/calcite/test/DruidAdapterIT.java
@@ -2050,13 +2050,16 @@ public class DruidAdapterIT {
     final String sql = "SELECT \"product_id\"\n"
         + "from \"foodmart\"\n"
         + "where \"product_id\" = cast(NULL as varchar)\n"
-        + "group by \"product_id\"";
+        + "group by \"product_id\" order by \"product_id\" limit 5";
     final String plan = "PLAN=EnumerableInterpreter\n"
-        + "  BindableAggregate(group=[{0}])\n"
+        + "  BindableSort(sort0=[$0], dir0=[ASC], fetch=[5])\n"
         + "    BindableFilter(condition=[=($0, null)])\n"
-        + "      DruidQuery(table=[[foodmart, foodmart]], "
-        + "intervals=[[1900-01-09T00:00:00.000Z/2992-01-10T00:00:00.000Z]], 
projects=[[$1]])";
-    sql(sql).explainContains(plan);
+        + "      DruidQuery(table=[[foodmart, foodmart]], intervals="
+        + "[[1900-01-09T00:00:00.000Z/2992-01-10T00:00:00.000Z]], 
groups=[{1}], aggs=[[]])";
+    final String query = "{\"queryType\":\"groupBy\"";
+    sql(sql)
+        .explainContains(plan)
+        .queryContains(druidChecker(query));
   }
 
   @Test public void testFalseFilter() {

Reply via email to