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: [email protected]
For additional commands, e-mail: [email protected]