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

    https://github.com/apache/spark/pull/22078#discussion_r228881824
  
    --- Diff: 
sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/InsertIntoHadoopFsRelationCommand.scala
 ---
    @@ -261,4 +272,69 @@ case class InsertIntoHadoopFsRelationCommand(
           }
         }.toMap
       }
    +
    +  private def isExtendedAclEnabled(hadoopConf: Configuration): Boolean =
    +    hadoopConf.getBoolean(DFS_NAMENODE_ACLS_ENABLED_KEY, 
DFS_NAMENODE_ACLS_ENABLED_DEFAULT)
    +
    +  private def getFullFileStatus(
    +      conf: SQLConf,
    +      hadoopConf: Configuration,
    +      pathExists: Boolean,
    +      fs: FileSystem,
    +      file: Path): (Option[FsPermission], Option[AclStatus]) = {
    +    var permission: Option[FsPermission] = None
    +    var aclStatus: Option[AclStatus] = None
    +    if (conf.isDataSouceTableInheritPerms && pathExists) {
    +      permission = Some(fs.getFileStatus(file).getPermission)
    +      if (isExtendedAclEnabled(hadoopConf)) aclStatus = 
Some(fs.getAclStatus(file))
    +    }
    +    (permission, aclStatus)
    --- End diff --
    
    I would remove `var` by, for instance:
    
    ```scala
    val shouldFetchPermission = conf.isDataSouceTableInheritPerms && pathExists
    val shouldFetchAclStatus = shouldFetchPermission && 
isExtendedAclEnabled(hadoopConf)
    
    val permission = if (shouldFetchPermission) {
      Some(fs.getFileStatus(file).getPermission)
    } else {
      None
    }
    val aclStatus = if (shouldFetchAclStatus) {
      Some(fs.getAclStatus(file))
    } else {
      None
    }
    
    (permission, aclStatus)
    ```


---

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

Reply via email to