Github user cloud-fan commented on a diff in the pull request:

    https://github.com/apache/spark/pull/14750#discussion_r86656644
  
    --- Diff: 
sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveExternalCatalog.scala ---
    @@ -417,11 +437,17 @@ private[spark] class HiveExternalCatalog(conf: 
SparkConf, hadoopConf: Configurat
       }
     
       override def renameTable(db: String, oldName: String, newName: String): 
Unit = withClient {
    -    val rawTable = client.getTable(db, oldName)
    -
    -    val storageWithNewPath = if (rawTable.tableType == MANAGED) {
    -      // If it's a managed table and we are renaming it, then the path 
option becomes inaccurate
    -      // and we need to update it according to the new table name.
    +    val rawTable = getRawTable(db, oldName)
    +
    +    // Note that Hive serde tables don't use path option in storage 
properties to store the value
    +    // of table location, but use `locationUri` field to store it 
directly. And `locationUri` field
    +    // will be updated automatically in Hive metastore by the `alterTable` 
call at the end of this
    +    // method. Here we only update the path option if the path option 
already exists in storage
    +    // properties, to avoid adding a unnecessary path option for Hive 
serde tables.
    +    val hasPathOption = new 
CaseInsensitiveMap(rawTable.storage.properties).contains("path")
    --- End diff --
    
    not related, but it's a follow up of 
https://github.com/apache/spark/pull/15024/files#diff-159191585e10542f013cb3a714f26075R422
 , which may add an extra path option to Hive serde tables.


---
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]

Reply via email to