diff --git a/dev/kyuubi-codecov/pom.xml b/dev/kyuubi-codecov/pom.xml index 5d62b1f6822..40b8b5cd9c2 100644 --- a/dev/kyuubi-codecov/pom.xml +++ b/dev/kyuubi-codecov/pom.xml @@ -243,7 +243,11 @@ kyuubi-spark-connector-hive_${scala.binary.version} ${project.version} - + + org.apache.kyuubi + kyuubi-spark-authz_${scala.binary.version} + ${project.version} + org.apache.kyuubi kyuubi-spark-lineage_${scala.binary.version} diff --git a/extensions/spark/kyuubi-spark-authz/src/main/resources/META-INF/services/org.apache.kyuubi.plugin.spark.authz.serde.TableExtractor b/extensions/spark/kyuubi-spark-authz/src/main/resources/META-INF/services/org.apache.kyuubi.plugin.spark.authz.serde.TableExtractor index 663cd4962e8..99fbb05f249 100644 --- a/extensions/spark/kyuubi-spark-authz/src/main/resources/META-INF/services/org.apache.kyuubi.plugin.spark.authz.serde.TableExtractor +++ b/extensions/spark/kyuubi-spark-authz/src/main/resources/META-INF/services/org.apache.kyuubi.plugin.spark.authz.serde.TableExtractor @@ -22,6 +22,7 @@ org.apache.kyuubi.plugin.spark.authz.serde.DataSourceV2RelationTableExtractor org.apache.kyuubi.plugin.spark.authz.serde.ExpressionSeqTableExtractor org.apache.kyuubi.plugin.spark.authz.serde.HudiCallProcedureInputTableExtractor org.apache.kyuubi.plugin.spark.authz.serde.HudiCallProcedureOutputTableExtractor +org.apache.kyuubi.plugin.spark.authz.serde.HudiCatalogTableTableExtractor org.apache.kyuubi.plugin.spark.authz.serde.HudiDataSourceV2RelationTableExtractor org.apache.kyuubi.plugin.spark.authz.serde.HudiMergeIntoTargetTableExtractor org.apache.kyuubi.plugin.spark.authz.serde.IdentifierTableExtractor diff --git a/extensions/spark/kyuubi-spark-authz/src/main/resources/table_command_spec.json b/extensions/spark/kyuubi-spark-authz/src/main/resources/table_command_spec.json index 1e6e10380af..50e955bab43 100644 --- a/extensions/spark/kyuubi-spark-authz/src/main/resources/table_command_spec.json +++ b/extensions/spark/kyuubi-spark-authz/src/main/resources/table_command_spec.json @@ -303,6 +303,27 @@ "opType" : "QUERY", "queryDescs" : [ ], "uriDescs" : [ ] +}, { + "classname" : "org.apache.spark.sql.catalyst.plans.logical.DeleteFromTableWithFilters", + "tableDescs" : [ { + "fieldName" : "table", + "fieldExtractor" : "DataSourceV2RelationTableExtractor", + "columnDesc" : null, + "actionTypeDesc" : { + "fieldName" : null, + "fieldExtractor" : null, + "actionType" : "UPDATE", + "comment" : "" + }, + "tableTypeDesc" : null, + "catalogDesc" : null, + "isInput" : false, + "setCurrentDatabaseIfMissing" : false, + "comment" : "" + } ], + "opType" : "QUERY", + "queryDescs" : [ ], + "uriDescs" : [ ] }, { "classname" : "org.apache.spark.sql.catalyst.plans.logical.DescribeRelation", "tableDescs" : [ { @@ -2328,8 +2349,8 @@ }, { "classname" : "org.apache.spark.sql.hudi.command.DeleteHoodieTableCommand", "tableDescs" : [ { - "fieldName" : "dft", - "fieldExtractor" : "HudiDataSourceV2RelationTableExtractor", + "fieldName" : "catalogTable", + "fieldExtractor" : "HudiCatalogTableTableExtractor", "columnDesc" : null, "actionTypeDesc" : { "fieldName" : null, diff --git a/extensions/spark/kyuubi-spark-authz/src/main/scala/org/apache/kyuubi/plugin/spark/authz/serde/tableExtractors.scala b/extensions/spark/kyuubi-spark-authz/src/main/scala/org/apache/kyuubi/plugin/spark/authz/serde/tableExtractors.scala index c036660691c..375bd506db2 100644 --- a/extensions/spark/kyuubi-spark-authz/src/main/scala/org/apache/kyuubi/plugin/spark/authz/serde/tableExtractors.scala +++ b/extensions/spark/kyuubi-spark-authz/src/main/scala/org/apache/kyuubi/plugin/spark/authz/serde/tableExtractors.scala @@ -307,6 +307,15 @@ class TableTableExtractor extends TableExtractor { } } +/** + * org.apache.spark.sql.catalyst.catalog.HoodieCatalogTable + */ +class HudiCatalogTableTableExtractor extends TableExtractor { + override def apply(spark: SparkSession, v1: AnyRef): Option[Table] = { + lookupExtractor[CatalogTableTableExtractor].apply(spark, invokeAs[CatalogTable](v1, "table")) + } +} + class HudiDataSourceV2RelationTableExtractor extends TableExtractor { override def apply(spark: SparkSession, v1: AnyRef): Option[Table] = { invokeAs[LogicalPlan](v1, "table") match { diff --git a/pom.xml b/pom.xml index 3efcd24e6d4..da123288ac0 100644 --- a/pom.xml +++ b/pom.xml @@ -160,7 +160,7 @@ false 4.5.14 4.4.16 - 1.0.1 + 1.1.1 hudi-spark${spark.binary.version}-bundle_${scala.binary.version} 1.10.0 iceberg-spark-runtime-${spark.binary.version}_${scala.binary.version} @@ -2048,13 +2048,11 @@ 4.13.1 4.0.0 delta-spark_${scala.binary.version} - - hudi-spark3.5-bundle_${scala.binary.version} paimon-common - org.scalatest.tags.Slow,org.apache.kyuubi.tags.PaimonTest,org.apache.kyuubi.tags.HudiTest,org.apache.kyuubi.tags.SparkLocalClusterTest + org.scalatest.tags.Slow,org.apache.kyuubi.tags.PaimonTest,org.apache.kyuubi.tags.SparkLocalClusterTest spark-${spark.version}-bin-hadoop3.tgz