This is an automated email from the ASF dual-hosted git repository.
chengpan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kyuubi.git
The following commit(s) were added to refs/heads/master by this push:
new e707bbccc [KYUUBI #5557][AUTHZ] Refactor code about handle
PermanentViewMarker
e707bbccc is described below
commit e707bbccc5b411f0c23e76bfa4a1618fdfd886f7
Author: Angerszhuuuu <[email protected]>
AuthorDate: Mon Oct 30 16:37:16 2023 +0800
[KYUUBI #5557][AUTHZ] Refactor code about handle PermanentViewMarker
### _Why are the changes needed?_
To close #5557
Refactor code about handle PermanentViewMarker
### _How was this patch tested?_
- [ ] Add some test cases that check the changes thoroughly including
negative and positive cases if possible
- [ ] Add screenshots for manual tests if appropriate
- [x] [Run
test](https://kyuubi.readthedocs.io/en/master/contributing/code/testing.html#running-tests)
locally before make a pull request
### _Was this patch authored or co-authored using generative AI tooling?_
No
Closes #5558 from AngersZhuuuu/KYUUBI-5557.
Closes #5557
ff55e50e8 [Angerszhuuuu] [KYUUBI #5557][AUTHZ] Refactor code about handle
PermanentViewMarker
Authored-by: Angerszhuuuu <[email protected]>
Signed-off-by: Cheng Pan <[email protected]>
---
.../kyuubi/plugin/spark/authz/PrivilegesBuilder.scala | 18 +++++++-----------
.../authz/rule/permanentview/PermanentViewMarker.scala | 2 +-
.../permanentview/RuleApplyPermanentViewMarker.scala | 7 ++-----
3 files changed, 10 insertions(+), 17 deletions(-)
diff --git
a/extensions/spark/kyuubi-spark-authz/src/main/scala/org/apache/kyuubi/plugin/spark/authz/PrivilegesBuilder.scala
b/extensions/spark/kyuubi-spark-authz/src/main/scala/org/apache/kyuubi/plugin/spark/authz/PrivilegesBuilder.scala
index 73b80fc3b..07ed71011 100644
---
a/extensions/spark/kyuubi-spark-authz/src/main/scala/org/apache/kyuubi/plugin/spark/authz/PrivilegesBuilder.scala
+++
b/extensions/spark/kyuubi-spark-authz/src/main/scala/org/apache/kyuubi/plugin/spark/authz/PrivilegesBuilder.scala
@@ -63,19 +63,15 @@ object PrivilegesBuilder {
conditionList: Seq[NamedExpression] = Nil,
spark: SparkSession): Unit = {
- def getOutputColumnNames(plan: LogicalPlan): Seq[String] = {
- plan match {
- case pvm: PermanentViewMarker
- if pvm.isSubqueryExpressionPlaceHolder || pvm.output.isEmpty =>
- pvm.visitColNames
- case _ =>
- plan.output.map(_.name)
- }
- }
-
def mergeProjection(table: Table, plan: LogicalPlan): Unit = {
if (projectionList.isEmpty) {
- privilegeObjects += PrivilegeObject(table, getOutputColumnNames(plan))
+ plan match {
+ case pvm: PermanentViewMarker
+ if pvm.isSubqueryExpressionPlaceHolder || pvm.output.isEmpty =>
+ privilegeObjects += PrivilegeObject(table, pvm.outputColNames)
+ case _ =>
+ privilegeObjects += PrivilegeObject(table, plan.output.map(_.name))
+ }
} else {
val cols = (projectionList ++ conditionList).flatMap(collectLeaves)
.filter(plan.outputSet.contains).map(_.name).distinct
diff --git
a/extensions/spark/kyuubi-spark-authz/src/main/scala/org/apache/kyuubi/plugin/spark/authz/rule/permanentview/PermanentViewMarker.scala
b/extensions/spark/kyuubi-spark-authz/src/main/scala/org/apache/kyuubi/plugin/spark/authz/rule/permanentview/PermanentViewMarker.scala
index d58f8ac29..18b58e4d8 100644
---
a/extensions/spark/kyuubi-spark-authz/src/main/scala/org/apache/kyuubi/plugin/spark/authz/rule/permanentview/PermanentViewMarker.scala
+++
b/extensions/spark/kyuubi-spark-authz/src/main/scala/org/apache/kyuubi/plugin/spark/authz/rule/permanentview/PermanentViewMarker.scala
@@ -26,7 +26,7 @@ import
org.apache.kyuubi.plugin.spark.authz.util.WithInternalChild
case class PermanentViewMarker(
child: LogicalPlan,
catalogTable: CatalogTable,
- visitColNames: Seq[String],
+ outputColNames: Seq[String],
isSubqueryExpressionPlaceHolder: Boolean = false) extends UnaryNode
with WithInternalChild {
diff --git
a/extensions/spark/kyuubi-spark-authz/src/main/scala/org/apache/kyuubi/plugin/spark/authz/rule/permanentview/RuleApplyPermanentViewMarker.scala
b/extensions/spark/kyuubi-spark-authz/src/main/scala/org/apache/kyuubi/plugin/spark/authz/rule/permanentview/RuleApplyPermanentViewMarker.scala
index 09d31f43f..1a0024abb 100644
---
a/extensions/spark/kyuubi-spark-authz/src/main/scala/org/apache/kyuubi/plugin/spark/authz/rule/permanentview/RuleApplyPermanentViewMarker.scala
+++
b/extensions/spark/kyuubi-spark-authz/src/main/scala/org/apache/kyuubi/plugin/spark/authz/rule/permanentview/RuleApplyPermanentViewMarker.scala
@@ -36,7 +36,7 @@ class RuleApplyPermanentViewMarker extends Rule[LogicalPlan] {
plan mapChildren {
case p: PermanentViewMarker => p
case permanentView: View if hasResolvedPermanentView(permanentView) =>
- val resolvedSubquery = permanentView.transformAllExpressions {
+ val resolved = permanentView.transformAllExpressions {
case subquery: SubqueryExpression =>
subquery.withNewPlan(plan =
PermanentViewMarker(
@@ -45,10 +45,7 @@ class RuleApplyPermanentViewMarker extends Rule[LogicalPlan]
{
permanentView.output.map(_.name),
true))
}
- PermanentViewMarker(
- resolvedSubquery,
- resolvedSubquery.desc,
- resolvedSubquery.output.map(_.name))
+ PermanentViewMarker(resolved, resolved.desc,
resolved.output.map(_.name))
case other => apply(other)
}
}