Skip to content

Commit

Permalink
[CARBONDATA-3258] Add more test case for mv datamap
Browse files Browse the repository at this point in the history
  • Loading branch information
qiuchenjian committed Jan 28, 2019
1 parent 891fca5 commit 97cdb74
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 31 deletions.
Expand Up @@ -26,34 +26,26 @@ class MVExceptionTestCase extends QueryTest with BeforeAndAfterAll {
sql("create table main_table (name string,age int,height int) stored by 'carbondata'")
}



test("test mv no base table") {
sql("drop datamap if exists main_table_mv")


val ex = intercept[NoSuchTableException] {
sql("create datamap main_table_mv on table main_table_error using 'mv' as select sum(age),name from main_table group by name")
}

assertResult("Table or view 'main_table_error' not found in database 'default';")(ex.getMessage())
sql("drop datamap if exists main_table_mv")
}

test("test mv reduplicate mv table") {
sql("drop datamap if exists main_table_mv")

val ex = intercept[UnsupportedOperationException] {
sql("create datamap main_table_mv on table main_table using 'mv' as select sum(age),name from main_table group by name")
sql("create datamap main_table_mv on table main_table using 'mv' as select sum(age),name from main_table group by name")
sql("create datamap main_table_mv1 on table main_table using 'mv' as select sum(age),name from main_table group by name")
sql("create datamap main_table_mv1 on table main_table using 'mv' as select sum(age),name from main_table group by name")
}
assertResult("MV with same query present")(ex.getMessage)
sql("drop datamap if exists main_table_mv")
}

def drop(): Unit = {
sql("drop table IF EXISTS main_table")
sql("drop table if exists main_table_error")
sql("drop datamap if exists main_table_mv")
sql("drop datamap if exists main_table_mv1")
}

override def afterAll(): Unit = {
Expand Down
Expand Up @@ -20,20 +20,28 @@ import org.apache.spark.sql.test.util.QueryTest
import org.scalatest.BeforeAndAfterAll

class MVInvalidTestCase extends QueryTest with BeforeAndAfterAll {
test("test mv different filter") {
val querySQL = "select age,name from main_table where name = 'lily' order by name limit 10"

override def beforeAll(): Unit = {
drop
sql("create table main_table (name string,age int,height int) stored by 'carbondata'")
}

def drop {
sql("drop datamap if exists main_table_mv")
sql("drop table if exists main_table")
sql("create table main_table (name string,age int,height int) stored by 'carbondata'")
}

test("test mv different filter") {
val querySQL = "select age,name from main_table where name = 'lily' order by name limit 10"
sql("insert into main_table select 'tom',20,170")
sql("insert into main_table select 'lily',30,160")
sql("create datamap main_table_mv on table main_table using 'mv' as select age,name,height from main_table where name = 'tom'")
sql("rebuild datamap main_table_mv")

assert(!MVUtils.verifyMVDataMap(sql(querySQL).queryExecution.analyzed, "main_table_mv"))
}

sql("drop datamap if exists main_table_mv")
sql("drop table if exists main_table")
override def afterAll(): Unit = {
drop
}
}
Expand Up @@ -20,14 +20,13 @@ import org.apache.spark.sql.Row
import org.apache.spark.sql.test.util.QueryTest
import org.scalatest.BeforeAndAfterAll

class MVFunctionTest extends QueryTest with BeforeAndAfterAll {
class MVValidFunctionTest extends QueryTest with BeforeAndAfterAll {

override def beforeAll(): Unit = {
drop
sql("create table main_table (name string,age int,height int) stored by 'carbondata'")
sql("create table dim_table (name string,age int,height int) stored by 'carbondata'")
sql("create table sdr_table (name varchar(20),score int) stored by 'carbondata'")

}

def drop() {
Expand All @@ -36,44 +35,32 @@ class MVFunctionTest extends QueryTest with BeforeAndAfterAll {
sql("drop table if exists dim_table")
sql("drop table if exists sdr_table")
sql("drop datamap if exists main_table_mv1")

}

test("test mv no filter and query with filter") {
val querySQL = "select sum(age),name from main_table where name = 'tom' group by name"

sql("insert into main_table select 'tom',20,170")
sql("insert into main_table select 'lily',30,160")
sql("create datamap main_table_mv on table main_table using 'mv' as select sum(age),name from main_table group by name")
sql("rebuild datamap main_table_mv")

assert(MVUtils.verifyMVDataMap(sql(querySQL).queryExecution.analyzed, "main_table_mv"))
checkAnswer(sql(querySQL), Seq(Row(20,"tom")))



}

test("test mv rebuild twice and varchar string") {
val querySQL = "select A.sum_score,A.name from (select sum(score) as sum_score,age,sdr.name as name from sdr_table sdr " +
"left join dim_table dim on sdr.name = dim.name where sdr.name in ('tom','lily') group by sdr.name,age) A where name = 'tom'"

sql("insert into dim_table select 'tom',20,170")
sql("insert into dim_table select 'lily',30,160")

sql("create datamap main_table_mv1 using 'mv' " +
"as select count(score),sum(score),age,sdr.name from sdr_table sdr left join dim_table dim on sdr.name = dim.name group by sdr.name,age")
sql("rebuild datamap main_table_mv1")

sql("insert into sdr_table select 'tom',70")
sql("insert into sdr_table select 'tom',50")
sql("insert into sdr_table select 'lily',80")

sql("rebuild datamap main_table_mv1")

assert(MVUtils.verifyMVDataMap(sql(querySQL).queryExecution.analyzed, "main_table_mv1"))
checkAnswer(sql(querySQL), Seq(Row(120,"tom")))

}

override def afterAll(): Unit = {
Expand Down

0 comments on commit 97cdb74

Please sign in to comment.