aboutsummaryrefslogtreecommitdiff
path: root/sql/hive
diff options
context:
space:
mode:
authorBurak Yavuz <brkyvz@gmail.com>2016-11-22 13:03:50 -0800
committerHerman van Hovell <hvanhovell@databricks.com>2016-11-22 13:03:50 -0800
commitbdc8153e8689262708c7fade5c065bd7fc8a84fc (patch)
tree6657628fcf26e1f8074b0e4370a38ef2634b6119 /sql/hive
parent702cd403fc8e5ce8281fe8828197ead46bdb8832 (diff)
downloadspark-bdc8153e8689262708c7fade5c065bd7fc8a84fc.tar.gz
spark-bdc8153e8689262708c7fade5c065bd7fc8a84fc.tar.bz2
spark-bdc8153e8689262708c7fade5c065bd7fc8a84fc.zip
[SPARK-18465] Add 'IF EXISTS' clause to 'UNCACHE' to not throw exceptions when table doesn't exist
## What changes were proposed in this pull request? While this behavior is debatable, consider the following use case: ```sql UNCACHE TABLE foo; CACHE TABLE foo AS SELECT * FROM bar ``` The command above fails the first time you run it. But I want to run the command above over and over again, and I don't want to change my code just for the first run of it. The issue is that subsequent `CACHE TABLE` commands do not overwrite the existing table. Now we can do: ```sql UNCACHE TABLE IF EXISTS foo; CACHE TABLE foo AS SELECT * FROM bar ``` ## How was this patch tested? Unit tests Author: Burak Yavuz <brkyvz@gmail.com> Closes #15896 from brkyvz/uncache.
Diffstat (limited to 'sql/hive')
-rw-r--r--sql/hive/src/test/scala/org/apache/spark/sql/hive/CachedTableSuite.scala5
1 files changed, 4 insertions, 1 deletions
diff --git a/sql/hive/src/test/scala/org/apache/spark/sql/hive/CachedTableSuite.scala b/sql/hive/src/test/scala/org/apache/spark/sql/hive/CachedTableSuite.scala
index fc35304c80..3871b3d785 100644
--- a/sql/hive/src/test/scala/org/apache/spark/sql/hive/CachedTableSuite.scala
+++ b/sql/hive/src/test/scala/org/apache/spark/sql/hive/CachedTableSuite.scala
@@ -101,13 +101,16 @@ class CachedTableSuite extends QueryTest with SQLTestUtils with TestHiveSingleto
sql("DROP TABLE IF EXISTS nonexistantTable")
}
- test("correct error on uncache of nonexistant tables") {
+ test("uncache of nonexistant tables") {
+ // make sure table doesn't exist
+ intercept[NoSuchTableException](spark.table("nonexistantTable"))
intercept[NoSuchTableException] {
spark.catalog.uncacheTable("nonexistantTable")
}
intercept[NoSuchTableException] {
sql("UNCACHE TABLE nonexistantTable")
}
+ sql("UNCACHE TABLE IF EXISTS nonexistantTable")
}
test("no error on uncache of non-cached table") {