aboutsummaryrefslogtreecommitdiff
path: root/sql/core
diff options
context:
space:
mode:
authorWenchen Fan <wenchen@databricks.com>2016-10-11 15:21:28 +0800
committerWenchen Fan <wenchen@databricks.com>2016-10-11 15:21:28 +0800
commit7388ad94d717784a1837ac5a4a9b53219892d080 (patch)
tree1a4e396fd19e63f299b3d0e55289ddec3174b42c /sql/core
parent658c7147f5bf637f36e8c66b9207d94b1e7c74c5 (diff)
downloadspark-7388ad94d717784a1837ac5a4a9b53219892d080.tar.gz
spark-7388ad94d717784a1837ac5a4a9b53219892d080.tar.bz2
spark-7388ad94d717784a1837ac5a4a9b53219892d080.zip
[SPARK-17338][SQL][FOLLOW-UP] add global temp view
## What changes were proposed in this pull request? address post hoc review comments for https://github.com/apache/spark/pull/14897 ## How was this patch tested? N/A Author: Wenchen Fan <wenchen@databricks.com> Closes #15424 from cloud-fan/global-temp-view.
Diffstat (limited to 'sql/core')
-rw-r--r--sql/core/src/main/scala/org/apache/spark/sql/Dataset.scala9
-rw-r--r--sql/core/src/main/scala/org/apache/spark/sql/catalog/Catalog.scala7
-rw-r--r--sql/core/src/main/scala/org/apache/spark/sql/internal/CatalogImpl.scala4
3 files changed, 10 insertions, 10 deletions
diff --git a/sql/core/src/main/scala/org/apache/spark/sql/Dataset.scala b/sql/core/src/main/scala/org/apache/spark/sql/Dataset.scala
index 30349ba3cb..a7a84730a6 100644
--- a/sql/core/src/main/scala/org/apache/spark/sql/Dataset.scala
+++ b/sql/core/src/main/scala/org/apache/spark/sql/Dataset.scala
@@ -2494,7 +2494,7 @@ class Dataset[T] private[sql](
* preserved database `_global_temp`, and we must use the qualified name to refer a global temp
* view, e.g. `SELECT * FROM _global_temp.view1`.
*
- * @throws TempTableAlreadyExistsException if the view name already exists
+ * @throws AnalysisException if the view name already exists
*
* @group basic
* @since 2.1.0
@@ -2508,12 +2508,7 @@ class Dataset[T] private[sql](
viewName: String,
replace: Boolean,
global: Boolean): CreateViewCommand = {
- val viewType = if (global) {
- GlobalTempView
- } else {
- LocalTempView
- }
-
+ val viewType = if (global) GlobalTempView else LocalTempView
CreateViewCommand(
name = sparkSession.sessionState.sqlParser.parseTableIdentifier(viewName),
userSpecifiedColumns = Nil,
diff --git a/sql/core/src/main/scala/org/apache/spark/sql/catalog/Catalog.scala b/sql/core/src/main/scala/org/apache/spark/sql/catalog/Catalog.scala
index 717fb29190..18cba8ce28 100644
--- a/sql/core/src/main/scala/org/apache/spark/sql/catalog/Catalog.scala
+++ b/sql/core/src/main/scala/org/apache/spark/sql/catalog/Catalog.scala
@@ -269,10 +269,14 @@ abstract class Catalog {
* created it, i.e. it will be automatically dropped when the session terminates. It's not
* tied to any databases, i.e. we can't use `db1.view1` to reference a local temporary view.
*
+ * Note that, the return type of this method was Unit in Spark 2.0, but changed to Boolean
+ * in Spark 2.1.
+ *
* @param viewName the name of the view to be dropped.
+ * @return true if the view is dropped successfully, false otherwise.
* @since 2.0.0
*/
- def dropTempView(viewName: String): Unit
+ def dropTempView(viewName: String): Boolean
/**
* Drops the global temporary view with the given view name in the catalog.
@@ -284,6 +288,7 @@ abstract class Catalog {
* view, e.g. `SELECT * FROM _global_temp.view1`.
*
* @param viewName the name of the view to be dropped.
+ * @return true if the view is dropped successfully, false otherwise.
* @since 2.1.0
*/
def dropGlobalTempView(viewName: String): Boolean
diff --git a/sql/core/src/main/scala/org/apache/spark/sql/internal/CatalogImpl.scala b/sql/core/src/main/scala/org/apache/spark/sql/internal/CatalogImpl.scala
index c05bda3f1b..f6c297e91b 100644
--- a/sql/core/src/main/scala/org/apache/spark/sql/internal/CatalogImpl.scala
+++ b/sql/core/src/main/scala/org/apache/spark/sql/internal/CatalogImpl.scala
@@ -371,8 +371,8 @@ class CatalogImpl(sparkSession: SparkSession) extends Catalog {
* @group ddl_ops
* @since 2.0.0
*/
- override def dropTempView(viewName: String): Unit = {
- sparkSession.sessionState.catalog.getTempView(viewName).foreach { tempView =>
+ override def dropTempView(viewName: String): Boolean = {
+ sparkSession.sessionState.catalog.getTempView(viewName).exists { tempView =>
sparkSession.sharedState.cacheManager.uncacheQuery(Dataset.ofRows(sparkSession, tempView))
sessionCatalog.dropTempView(viewName)
}