This is an automated email from the ASF dual-hosted git repository.

codope pushed a commit to branch release-0.12.0
in repository https://gitbox.apache.org/repos/asf/hudi.git

commit d013cf5cec47e3320116d1e19e3d7aa0c57f7fcd
Author: ForwardXu <[email protected]>
AuthorDate: Thu Aug 4 12:32:08 2022 +0800

    [HUDI-4533] Fix RunCleanProcedure's ArrayIndexOutOfBoundsException (#6293)
---
 .../apache/spark/sql/hudi/command/procedures/RunCleanProcedure.scala | 5 +++--
 .../org/apache/spark/sql/hudi/procedure/TestCleanProcedure.scala     | 4 ++++
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git 
a/hudi-spark-datasource/hudi-spark/src/main/scala/org/apache/spark/sql/hudi/command/procedures/RunCleanProcedure.scala
 
b/hudi-spark-datasource/hudi-spark/src/main/scala/org/apache/spark/sql/hudi/command/procedures/RunCleanProcedure.scala
index b5d942d5e6..2a0143bafb 100644
--- 
a/hudi-spark-datasource/hudi-spark/src/main/scala/org/apache/spark/sql/hudi/command/procedures/RunCleanProcedure.scala
+++ 
b/hudi-spark-datasource/hudi-spark/src/main/scala/org/apache/spark/sql/hudi/command/procedures/RunCleanProcedure.scala
@@ -17,7 +17,6 @@
 
 package org.apache.spark.sql.hudi.command.procedures
 
-import java.util.function.Supplier
 import org.apache.hudi.HoodieCLIUtils
 import org.apache.hudi.common.table.timeline.HoodieActiveTimeline
 import org.apache.hudi.common.util.JsonUtils
@@ -26,6 +25,8 @@ import org.apache.spark.internal.Logging
 import org.apache.spark.sql.Row
 import org.apache.spark.sql.types.{DataTypes, Metadata, StructField, 
StructType}
 
+import java.util.function.Supplier
+
 class RunCleanProcedure extends BaseProcedure with ProcedureBuilder with 
Logging {
 
   private val PARAMETERS = Array[ProcedureParameter](
@@ -76,7 +77,7 @@ class RunCleanProcedure extends BaseProcedure with 
ProcedureBuilder with Logging
     val client = HoodieCLIUtils.createHoodieClientFromPath(sparkSession, 
basePath, props)
     val hoodieCleanMeta = client.clean(cleanInstantTime, scheduleInLine, 
skipLocking)
 
-    if (hoodieCleanMeta == null) Seq(Row.empty)
+    if (hoodieCleanMeta == null) Seq.empty
     else Seq(Row(hoodieCleanMeta.getStartCleanTime,
       hoodieCleanMeta.getTimeTakenInMillis,
       hoodieCleanMeta.getTotalFilesDeleted,
diff --git 
a/hudi-spark-datasource/hudi-spark/src/test/scala/org/apache/spark/sql/hudi/procedure/TestCleanProcedure.scala
 
b/hudi-spark-datasource/hudi-spark/src/test/scala/org/apache/spark/sql/hudi/procedure/TestCleanProcedure.scala
index f93be88fe0..7986c304c7 100644
--- 
a/hudi-spark-datasource/hudi-spark/src/test/scala/org/apache/spark/sql/hudi/procedure/TestCleanProcedure.scala
+++ 
b/hudi-spark-datasource/hudi-spark/src/test/scala/org/apache/spark/sql/hudi/procedure/TestCleanProcedure.scala
@@ -56,6 +56,10 @@ class TestCleanProcedure extends 
HoodieSparkProcedureTestBase {
       checkAnswer(s"select id, name, price, ts from $tableName order by id") (
         Seq(1, "a1", 13, 1000)
       )
+
+      val result2 = spark.sql(s"call run_clean(table => '$tableName', 
retain_commits => 1)")
+        .collect()
+      assertResult(0)(result2.length)
     }
   }
 

Reply via email to