You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@carbondata.apache.org by ja...@apache.org on 2018/08/07 12:43:06 UTC

carbondata git commit: [CARBONDATA-2539]Fix mv classcast exception issue

Repository: carbondata
Updated Branches:
  refs/heads/master 78438451b -> 3d7fa1276


[CARBONDATA-2539]Fix mv classcast exception issue

Class cast exception happens during min type aggregate function happening. It is corrected in this PR

This closes #2602


Project: http://git-wip-us.apache.org/repos/asf/carbondata/repo
Commit: http://git-wip-us.apache.org/repos/asf/carbondata/commit/3d7fa127
Tree: http://git-wip-us.apache.org/repos/asf/carbondata/tree/3d7fa127
Diff: http://git-wip-us.apache.org/repos/asf/carbondata/diff/3d7fa127

Branch: refs/heads/master
Commit: 3d7fa1276914df183a09ceb6942b3c83ca49526a
Parents: 7843845
Author: ravipesala <ra...@gmail.com>
Authored: Thu Aug 2 17:13:58 2018 +0530
Committer: Jacky Li <ja...@qq.com>
Committed: Tue Aug 7 20:42:50 2018 +0800

----------------------------------------------------------------------
 .../org/apache/carbondata/mv/rewrite/Utils.scala      |  2 +-
 .../carbondata/mv/rewrite/MVCreateTestCase.scala      | 14 ++++++++++++++
 2 files changed, 15 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/carbondata/blob/3d7fa127/datamap/mv/core/src/main/scala/org/apache/carbondata/mv/rewrite/Utils.scala
----------------------------------------------------------------------
diff --git a/datamap/mv/core/src/main/scala/org/apache/carbondata/mv/rewrite/Utils.scala b/datamap/mv/core/src/main/scala/org/apache/carbondata/mv/rewrite/Utils.scala
index d8af8ab..fa2ea10 100644
--- a/datamap/mv/core/src/main/scala/org/apache/carbondata/mv/rewrite/Utils.scala
+++ b/datamap/mv/core/src/main/scala/org/apache/carbondata/mv/rewrite/Utils.scala
@@ -147,7 +147,7 @@ object Utils extends PredicateHelper {
                                alias_m(alias.toAttribute).child.asInstanceOf[AggregateExpression]
                                  .aggregateFunction.isInstanceOf[Min] => {
             val min_a = alias_m(alias.toAttribute).child.asInstanceOf[AggregateExpression]
-            val expr_a = min_a.aggregateFunction.asInstanceOf[Max].child
+            val expr_a = min_a.aggregateFunction.asInstanceOf[Min].child
             if (min_a.isDistinct != min_q.isDistinct) {
               false
             } else {

http://git-wip-us.apache.org/repos/asf/carbondata/blob/3d7fa127/datamap/mv/core/src/test/scala/org/apache/carbondata/mv/rewrite/MVCreateTestCase.scala
----------------------------------------------------------------------
diff --git a/datamap/mv/core/src/test/scala/org/apache/carbondata/mv/rewrite/MVCreateTestCase.scala b/datamap/mv/core/src/test/scala/org/apache/carbondata/mv/rewrite/MVCreateTestCase.scala
index 9f834a9..fac80eb 100644
--- a/datamap/mv/core/src/test/scala/org/apache/carbondata/mv/rewrite/MVCreateTestCase.scala
+++ b/datamap/mv/core/src/test/scala/org/apache/carbondata/mv/rewrite/MVCreateTestCase.scala
@@ -886,6 +886,20 @@ class MVCreateTestCase extends QueryTest with BeforeAndAfterAll {
     sql("drop datamap if exists datamap_subqry")
   }
 
+  test("jira carbondata-2539-1") {
+    sql("drop datamap if exists datamap_comp_maxsumminavg")
+    sql("create datamap datamap_comp_maxsumminavg using 'mv' as select empname,max(projectenddate),sum(salary),min(projectjoindate),avg(attendance) from fact_table1 group by empname")
+    sql("rebuild datamap datamap_comp_maxsumminavg")
+    sql("drop datamap if exists datamap_subqry")
+    sql("create datamap datamap_subqry using 'mv' as select min(salary) from fact_table1")
+    sql("rebuild datamap datamap_subqry")
+    val frame = sql(
+      "SELECT max(utilization) FROM fact_table1 WHERE salary IN (select min(salary) from fact_table1) group by empname")
+    val analyzed = frame.queryExecution.analyzed
+    assert(verifyMVDataMap(analyzed, "datamap_subqry"))
+    sql("drop datamap if exists datamap_subqry")
+  }
+
   test("basic scenario") {
 
     sql("drop table if exists mvtable1")