[CARBONDATA-2542][MV] Fix the mv query from table with different database Problem: database name is not added to the table name while generating mv query. Solution: Add the database name to the table name while creating mv query.
This closes #2479 Project: http://git-wip-us.apache.org/repos/asf/carbondata/repo Commit: http://git-wip-us.apache.org/repos/asf/carbondata/commit/9680fd44 Tree: http://git-wip-us.apache.org/repos/asf/carbondata/tree/9680fd44 Diff: http://git-wip-us.apache.org/repos/asf/carbondata/diff/9680fd44 Branch: refs/heads/branch-1.4 Commit: 9680fd4489353d0d1e0b5c2b733b95d8ef6e4230 Parents: 5e22e9e Author: ravipesala <[email protected]> Authored: Sun Jul 15 17:38:47 2018 +0530 Committer: ravipesala <[email protected]> Committed: Tue Jul 31 00:10:41 2018 +0530 ---------------------------------------------------------------------- .../mv/rewrite/MVCreateTestCase.scala | 23 +++++++++++++++++++- .../carbondata/mv/plans/util/Printers.scala | 2 +- 2 files changed, 23 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/carbondata/blob/9680fd44/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 7ac3c83..264eb96 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 @@ -762,6 +762,28 @@ class MVCreateTestCase extends QueryTest with BeforeAndAfterAll { sql("drop datamap if exists MV_exp") } + test("jira carbondata-2542") { + sql("""drop database if exists xy cascade""") + sql("""create database if not exists xy""") + sql( + """ + | CREATE TABLE xy.fact_tablexy (empname String, designation String, doj Timestamp, + | workgroupcategory int, workgroupcategoryname String, deptno int, deptname String, + | projectcode int, projectjoindate Timestamp, projectenddate Timestamp,attendance int, + | utilization int,salary int) + | STORED BY 'org.apache.carbondata.format' + """.stripMargin) + sql("drop datamap if exists MV_exp") + sql("create datamap MV_exp using 'mv' as select doj,sum(salary) from xy.fact_tablexy group by doj") + sql("rebuild datamap MV_exp") + val frame = sql( + "select doj,sum(salary) from xy.fact_tablexy group by doj") + val analyzed = frame.queryExecution.analyzed + assert(verifyMVDataMap(analyzed, "MV_exp")) + sql("drop datamap if exists MV_exp") + sql("""drop database if exists xy cascade""") + } + def verifyMVDataMap(logicalPlan: LogicalPlan, dataMapName: String): Boolean = { val tables = logicalPlan collect { case l: LogicalRelation => l.catalogTable.get @@ -769,7 +791,6 @@ class MVCreateTestCase extends QueryTest with BeforeAndAfterAll { tables.exists(_.identifier.table.equalsIgnoreCase(dataMapName+"_table")) } - def drop(): Unit = { sql("drop table IF EXISTS fact_table1") sql("drop table IF EXISTS fact_table2") http://git-wip-us.apache.org/repos/asf/carbondata/blob/9680fd44/datamap/mv/plan/src/main/scala/org/apache/carbondata/mv/plans/util/Printers.scala ---------------------------------------------------------------------- diff --git a/datamap/mv/plan/src/main/scala/org/apache/carbondata/mv/plans/util/Printers.scala b/datamap/mv/plan/src/main/scala/org/apache/carbondata/mv/plans/util/Printers.scala index b7641d5..d3ce38d 100644 --- a/datamap/mv/plan/src/main/scala/org/apache/carbondata/mv/plans/util/Printers.scala +++ b/datamap/mv/plan/src/main/scala/org/apache/carbondata/mv/plans/util/Printers.scala @@ -180,7 +180,7 @@ trait Printers { } def printTable(name: Seq[String]): Unit = { - print("%s".format(name.last)) + print("%s".format(name.mkString("."))) } trait ExprSeq extends Seq[SortOrder]
