roczei commented on code in PR #37679:
URL: https://github.com/apache/spark/pull/37679#discussion_r973767185


##########
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/catalog/SessionCatalog.scala:
##########
@@ -286,7 +284,7 @@ class SessionCatalog(
 
   def dropDatabase(db: String, ignoreIfNotExists: Boolean, cascade: Boolean): 
Unit = {
     val dbName = format(db)
-    if (dbName == DEFAULT_DATABASE) {
+    if (dbName == defaultDatabase) {

Review Comment:
   @cloud-fan,
   
   If the default database is xyz and the current database is abc, we cannot 
drop the xyz database. Here are my validation steps:
   
   1)
   
   Test setup where the default database is the "default" and created the abc 
and the xyz databases:
   
   ```
   $ ./spark-shell --conf spark.sql.catalogImplementation=hive
   Setting default log level to "WARN".
   To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use 
setLogLevel(newLevel).
   22/09/18 21:23:12 WARN NativeCodeLoader: Unable to load native-hadoop 
library for your platform... using builtin-java classes where applicable
   Spark context Web UI available at http://localhost:4040
   Spark context available as 'sc' (master = local[*], app id = 
local-1663528992732).
   Spark session available as 'spark'.
   Welcome to
         ____              __
        / __/__  ___ _____/ /__
       _\ \/ _ \/ _ `/ __/  '_/
      /___/ .__/\_,_/_/ /_/\_\   version 3.4.0-SNAPSHOT
         /_/
            
   Using Scala version 2.12.16 (OpenJDK 64-Bit Server VM, Java 11.0.16)
   Type in expressions to have them evaluated.
   Type :help for more information.
   
   scala> spark.sql("create database xyz")
   22/09/18 21:23:19 WARN HiveConf: HiveConf of name hive.stats.jdbc.timeout 
does not exist
   22/09/18 21:23:19 WARN HiveConf: HiveConf of name hive.stats.retries.wait 
does not exist
   22/09/18 21:23:21 WARN ObjectStore: Version information not found in 
metastore. hive.metastore.schema.verification is not enabled so recording the 
schema version 2.3.0
   22/09/18 21:23:21 WARN ObjectStore: setMetaStoreSchemaVersion called but 
recording version is disabled: version = 2.3.0, comment = Set by MetaStore 
roczei@192.168.0.38
   22/09/18 21:23:21 WARN ObjectStore: Failed to get database default, 
returning NoSuchObjectException
   22/09/18 21:23:21 WARN ObjectStore: Failed to get database xyz, returning 
NoSuchObjectException
   22/09/18 21:23:21 WARN ObjectStore: Failed to get database xyz, returning 
NoSuchObjectException
   22/09/18 21:23:21 WARN ObjectStore: Failed to get database global_temp, 
returning NoSuchObjectException
   22/09/18 21:23:21 WARN ObjectStore: Failed to get database xyz, returning 
NoSuchObjectException
   res0: org.apache.spark.sql.DataFrame = []
   
   scala> spark.sql("create database abc")
   22/09/18 21:23:40 WARN ObjectStore: Failed to get database abc, returning 
NoSuchObjectException
   22/09/18 21:23:40 WARN ObjectStore: Failed to get database abc, returning 
NoSuchObjectException
   22/09/18 21:23:40 WARN ObjectStore: Failed to get database abc, returning 
NoSuchObjectException
   res1: org.apache.spark.sql.DataFrame = []
   
   scala> spark.sql("show databases").show()
   +---------+
   |namespace|
   +---------+
   |      abc|
   |  default|
   |      xyz|
   +---------+
   
   scala> :quit
   ```
   
   
   2)
   
   ```
   $ ./spark-shell --conf spark.sql.catalogImplementation=hive --conf 
spark.sql.catalog.spark_catalog.defaultDatabase=xyz
   Setting default log level to "WARN".
   To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use 
setLogLevel(newLevel).
   22/09/18 21:24:05 WARN NativeCodeLoader: Unable to load native-hadoop 
library for your platform... using builtin-java classes where applicable
   Spark context Web UI available at http://localhost:4040
   Spark context available as 'sc' (master = local[*], app id = 
local-1663529046120).
   Spark session available as 'spark'.
   Welcome to
         ____              __
        / __/__  ___ _____/ /__
       _\ \/ _ \/ _ `/ __/  '_/
      /___/ .__/\_,_/_/ /_/\_\   version 3.4.0-SNAPSHOT
         /_/
            
   Using Scala version 2.12.16 (OpenJDK 64-Bit Server VM, Java 11.0.16)
   Type in expressions to have them evaluated.
   Type :help for more information.
   
   scala> spark.sql("show databases").show()
   22/09/18 21:24:11 WARN HiveConf: HiveConf of name hive.stats.jdbc.timeout 
does not exist
   22/09/18 21:24:11 WARN HiveConf: HiveConf of name hive.stats.retries.wait 
does not exist
   22/09/18 21:24:13 WARN ObjectStore: Version information not found in 
metastore. hive.metastore.schema.verification is not enabled so recording the 
schema version 2.3.0
   22/09/18 21:24:13 WARN ObjectStore: setMetaStoreSchemaVersion called but 
recording version is disabled: version = 2.3.0, comment = Set by MetaStore 
roczei@192.168.0.38
   +---------+
   |namespace|
   +---------+
   |      abc|
   |  default|
   |      xyz|
   +---------+
   
   scala> spark.sql("use database abc")
   22/09/18 21:42:11 WARN HiveConf: HiveConf of name hive.stats.jdbc.timeout 
does not exist
   22/09/18 21:42:11 WARN HiveConf: HiveConf of name hive.stats.retries.wait 
does not exist
   22/09/18 21:42:12 WARN ObjectStore: Version information not found in 
metastore. hive.metastore.schema.verification is not enabled so recording the 
schema version 2.3.0
   22/09/18 21:42:12 WARN ObjectStore: setMetaStoreSchemaVersion called but 
recording version is disabled: version = 2.3.0, comment = Set by MetaStore 
roczei@192.168.0.38
   22/09/18 21:42:12 WARN ObjectStore: Failed to get database global_temp, 
returning NoSuchObjectException
   res0: org.apache.spark.sql.DataFrame = []
   
   scala> spark.sql("SELECT current_database() AS db").show()
   +---+
   | db|
   +---+
   |abc|
   +---+
   
   
   scala> spark.sql("drop database xyz")
   org.apache.spark.sql.AnalysisException: Can not drop default database
     at 
org.apache.spark.sql.errors.QueryCompilationErrors$.cannotDropDefaultDatabaseError(QueryCompilationErrors.scala:635)
     at 
org.apache.spark.sql.catalyst.catalog.SessionCatalog.dropDatabase(SessionCatalog.scala:288)
     at 
org.apache.spark.sql.execution.datasources.v2.V2SessionCatalog.dropNamespace(V2SessionCatalog.scala:300)
     at 
org.apache.spark.sql.execution.datasources.v2.DropNamespaceExec.run(DropNamespaceExec.scala:42)
     at 
org.apache.spark.sql.execution.datasources.v2.V2CommandExec.result$lzycompute(V2CommandExec.scala:43)
     at 
org.apache.spark.sql.execution.datasources.v2.V2CommandExec.result(V2CommandExec.scala:43)
     at 
org.apache.spark.sql.execution.datasources.v2.V2CommandExec.executeCollect(V2CommandExec.scala:49)
     at 
org.apache.spark.sql.execution.QueryExecution$$anonfun$eagerlyExecuteCommands$1.$anonfun$applyOrElse$1(QueryExecution.scala:98)
     at 
org.apache.spark.sql.execution.SQLExecution$.$anonfun$withNewExecutionId$6(SQLExecution.scala:111)
     at 
org.apache.spark.sql.execution.SQLExecution$.withSQLConfPropagated(SQLExecution.scala:171)
     at 
org.apache.spark.sql.execution.SQLExecution$.$anonfun$withNewExecutionId$1(SQLExecution.scala:95)
     at org.apache.spark.sql.SparkSession.withActive(SparkSession.scala:779)
     at 
org.apache.spark.sql.execution.SQLExecution$.withNewExecutionId(SQLExecution.scala:64)
     at 
org.apache.spark.sql.execution.QueryExecution$$anonfun$eagerlyExecuteCommands$1.applyOrElse(QueryExecution.scala:98)
     at 
org.apache.spark.sql.execution.QueryExecution$$anonfun$eagerlyExecuteCommands$1.applyOrElse(QueryExecution.scala:94)
     at 
org.apache.spark.sql.catalyst.trees.TreeNode.$anonfun$transformDownWithPruning$1(TreeNode.scala:505)
     at 
org.apache.spark.sql.catalyst.trees.CurrentOrigin$.withOrigin(TreeNode.scala:97)
     at 
org.apache.spark.sql.catalyst.trees.TreeNode.transformDownWithPruning(TreeNode.scala:505)
     at 
org.apache.spark.sql.catalyst.plans.logical.LogicalPlan.org$apache$spark$sql$catalyst$plans$logical$AnalysisHelper$$super$transformDownWithPruning(LogicalPlan.scala:30)
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org

Reply via email to