You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@carbondata.apache.org by ku...@apache.org on 2019/06/21 09:07:21 UTC
[carbondata] branch master updated: [CARBONDATA-3398]Block
show/drop metacache directly on child table
This is an automated email from the ASF dual-hosted git repository.
kunalkapoor pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/carbondata.git
The following commit(s) were added to refs/heads/master by this push:
new 5a9d1e2 [CARBONDATA-3398]Block show/drop metacache directly on child table
5a9d1e2 is described below
commit 5a9d1e2e6997c60f21a09d001fd76150474f4ff0
Author: Indhumathi27 <in...@gmail.com>
AuthorDate: Fri Jun 21 09:14:58 2019 +0530
[CARBONDATA-3398]Block show/drop metacache directly on child table
Problem:
show/drop metacache directly on mv child table is not blocked
Solution:
Blocked show/drop metacache directly on mv child table
This closes #3302
---
.../carbondata/mv/rewrite/TestAllOperationsOnMV.scala | 15 +++++++++++++++
.../execution/command/cache/DropCacheEventListeners.scala | 2 +-
.../execution/command/cache/ShowCacheEventListeners.scala | 2 +-
3 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/datamap/mv/core/src/test/scala/org/apache/carbondata/mv/rewrite/TestAllOperationsOnMV.scala b/datamap/mv/core/src/test/scala/org/apache/carbondata/mv/rewrite/TestAllOperationsOnMV.scala
index d7fc2b3..c74bb94 100644
--- a/datamap/mv/core/src/test/scala/org/apache/carbondata/mv/rewrite/TestAllOperationsOnMV.scala
+++ b/datamap/mv/core/src/test/scala/org/apache/carbondata/mv/rewrite/TestAllOperationsOnMV.scala
@@ -520,5 +520,20 @@ class TestAllOperationsOnMV extends QueryTest with BeforeAndAfterEach {
sql("drop table IF EXISTS maintable")
}
+ test("test drop/show meta cache directly on mv datamap table") {
+ sql("drop table IF EXISTS maintable")
+ sql("create table maintable(name string, c_code int, price int) stored by 'carbondata'")
+ sql("insert into table maintable select 'abc',21,2000")
+ sql("drop datamap if exists dm ")
+ sql("create datamap dm using 'mv' as select name, sum(price) from maintable group by name")
+ sql("select name, sum(price) from maintable group by name").collect()
+ intercept[UnsupportedOperationException] {
+ sql("show metacache on table dm_table").show(false)
+ }.getMessage.contains("Operation not allowed on child table.")
+ intercept[UnsupportedOperationException] {
+ sql("drop metacache on table dm_table").show(false)
+ }.getMessage.contains("Operation not allowed on child table.")
+ }
+
}
diff --git a/integration/spark2/src/main/scala/org/apache/spark/sql/execution/command/cache/DropCacheEventListeners.scala b/integration/spark2/src/main/scala/org/apache/spark/sql/execution/command/cache/DropCacheEventListeners.scala
index 6c8bb54..61d546e 100644
--- a/integration/spark2/src/main/scala/org/apache/spark/sql/execution/command/cache/DropCacheEventListeners.scala
+++ b/integration/spark2/src/main/scala/org/apache/spark/sql/execution/command/cache/DropCacheEventListeners.scala
@@ -49,7 +49,7 @@ object DropCachePreAggEventListener extends OperationEventListener {
val carbonTable = dropCacheEvent.carbonTable
val sparkSession = dropCacheEvent.sparkSession
val internalCall = dropCacheEvent.internalCall
- if (carbonTable.isChildDataMap && !internalCall) {
+ if ((carbonTable.isChildDataMap || carbonTable.isChildTable) && !internalCall) {
throw new UnsupportedOperationException("Operation not allowed on child table.")
}
diff --git a/integration/spark2/src/main/scala/org/apache/spark/sql/execution/command/cache/ShowCacheEventListeners.scala b/integration/spark2/src/main/scala/org/apache/spark/sql/execution/command/cache/ShowCacheEventListeners.scala
index 70f63a4..3eab81a 100644
--- a/integration/spark2/src/main/scala/org/apache/spark/sql/execution/command/cache/ShowCacheEventListeners.scala
+++ b/integration/spark2/src/main/scala/org/apache/spark/sql/execution/command/cache/ShowCacheEventListeners.scala
@@ -52,7 +52,7 @@ object ShowCachePreAggEventListener extends OperationEventListener {
val carbonTable = showTableCacheEvent.carbonTable
val sparkSession = showTableCacheEvent.sparkSession
val internalCall = showTableCacheEvent.internalCall
- if (carbonTable.isChildDataMap && !internalCall) {
+ if ((carbonTable.isChildDataMap || carbonTable.isChildTable) && !internalCall) {
throw new UnsupportedOperationException("Operation not allowed on child table.")
}