Github user gatorsmile commented on a diff in the pull request:
https://github.com/apache/spark/pull/17001#discussion_r102783506
--- Diff:
sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveExternalCatalog.scala ---
@@ -408,7 +408,13 @@ private[spark] class HiveExternalCatalog(conf:
SparkConf, hadoopConf: Configurat
}
private def defaultTablePath(tableIdent: TableIdentifier): String = {
- val dbLocation = getDatabase(tableIdent.database.get).locationUri
+ // default database's location always use the warehouse path,
+ // and since the location of database stored in metastore is qualified,
+ // here we also make qualify for warehouse location
+ val dbLocation = if (tableIdent.database.orNull ==
SessionCatalog.DEFAULT_DATABASE) {
+ SessionCatalog.makeQualifiedPath(conf.get(WAREHOUSE_PATH),
hadoopConf).toString
+ } else getDatabase(tableIdent.database.get).locationUri
--- End diff --
Actually, this change fixes an existing issue, if my understanding is
correct
If the default database has already been created in the metastore (which
could be shared), any following changes of `spark.sql.default.warehouse.dir`
can trigger an issue when we create a managed table in the default database
(Here, we assume Hive support is enabled). [The table path will be based on
this
function](https://github.com/windpiger/spark/blob/8f8063f8c4e11cb4f6158c90d21d8a0985d38584/sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveExternalCatalog.scala#L209-L216).
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]