Github user dilipbiswal commented on a diff in the pull request:
https://github.com/apache/spark/pull/9588#discussion_r45953994
--- Diff:
sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveMetastoreCatalog.scala ---
@@ -491,10 +493,14 @@ private[hive] class HiveMetastoreCatalog(val client:
ClientInterface, hive: Hive
result.copy(expectedOutputAttributes = Some(metastoreRelation.output))
}
- override def getTables(databaseName: Option[String]): Seq[(String,
Boolean)] = {
+ override def getTables(databaseName: Option[String]): Seq[(String,
Boolean)] = {hive
val db = databaseName.getOrElse(client.currentDatabase)
+ client.listTables(db).map(tableName => getTable(db, tableName))
--- End diff --
@I00357089 Hi...just looked at the code. So are you saying that we should
be holding some sort of a lock after the call to listTables ? That seems a
little odd to me .. Also i saw other callers to getTable() in
HiveMetastoreCatalog and don't see them acquiring any lock. Can you please
point me to an example where they acquire lock before accessing catalog
artifacts ? Actually i am working on michael's suggestion to by pass hive
metastore catalog for temporary tables. I am not actively working on this patch
anymore as mike felt we should not change the hive interface much if we are
going the other way. Having said that, i am still curious to know about this
failure.
---
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]