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)
     }
   }

Reply via email to