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