Github user yhuai commented on a diff in the pull request:

    https://github.com/apache/spark/pull/11836#discussion_r56755343
  
    --- Diff: 
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/catalog/SessionCatalog.scala
 ---
    @@ -31,17 +32,34 @@ import 
org.apache.spark.sql.catalyst.plans.logical.{LogicalPlan, SubqueryAlias}
      * proxy to the underlying metastore (e.g. Hive Metastore) and it also 
manages temporary
      * tables and functions of the Spark Session that it belongs to.
      */
    -class SessionCatalog(externalCatalog: ExternalCatalog) {
    +class SessionCatalog(externalCatalog: ExternalCatalog, conf: CatalystConf) 
{
       import ExternalCatalog._
     
    -  private[this] val tempTables = new ConcurrentHashMap[String, LogicalPlan]
    -  private[this] val tempFunctions = new ConcurrentHashMap[String, 
CatalogFunction]
    +  def this(externalCatalog: ExternalCatalog) {
    +    this(externalCatalog, new SimpleCatalystConf(true))
    +  }
    +
    +  protected[this] val tempTables = new ConcurrentHashMap[String, 
LogicalPlan]
    +  protected[this] val tempFunctions = new ConcurrentHashMap[String, 
CatalogFunction]
     
       // Note: we track current database here because certain operations do 
not explicitly
       // specify the database (e.g. DROP TABLE my_table). In these cases we 
must first
       // check whether the temporary table or function exists, then, if not, 
operate on
       // the corresponding item in the current database.
    -  private[this] var currentDb = "default"
    +  protected[this] var currentDb = {
    +    val defaultName = "default"
    +    val defaultDbDefinition = CatalogDatabase(defaultName, "default 
database", "", Map())
    +    // Initialize default database if it doesn't already exist
    +    createDatabase(defaultDbDefinition, ignoreIfExists = true)
    +    defaultName
    +  }
    +
    +  /**
    +   * Format table name, taking into account case sensitivity.
    +   */
    +  protected[this] def formatTableName(name: String): String = {
    +    if (conf.caseSensitiveAnalysis) name else name.toLowerCase
    --- End diff --
    
    Later, it will be good to use this to handle other db name as well for the 
consistency reason (it will not actually have any effect right now though).


---
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 infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

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

Reply via email to