This is an automated email from the ASF dual-hosted git repository. etudenhoefner pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/iceberg.git
The following commit(s) were added to refs/heads/main by this push: new 04bb3eed34 Spark 3.5: Add Parallelism Parameter Validation to AddFilesProcedure. (#12784) 04bb3eed34 is described below commit 04bb3eed3451522a4ee53daf38b198853844d815 Author: slfan1989 <55643692+slfan1...@users.noreply.github.com> AuthorDate: Tue Apr 22 14:57:19 2025 +0800 Spark 3.5: Add Parallelism Parameter Validation to AddFilesProcedure. (#12784) --- .../iceberg/spark/extensions/TestAddFilesProcedure.java | 16 ++++++++++++++++ .../iceberg/spark/procedures/AddFilesProcedure.java | 1 + 2 files changed, 17 insertions(+) diff --git a/spark/v3.5/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestAddFilesProcedure.java b/spark/v3.5/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestAddFilesProcedure.java index 56aa40aba9..141de608ea 100644 --- a/spark/v3.5/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestAddFilesProcedure.java +++ b/spark/v3.5/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestAddFilesProcedure.java @@ -1109,6 +1109,22 @@ public class TestAddFilesProcedure extends ExtensionsTestBase { sql("SELECT id, name, dept, subdept FROM %s ORDER BY id", tableName)); } + @TestTemplate + public void testAddFilesWithInvalidParallelism() { + createUnpartitionedHiveTable(); + + createIcebergTable( + "id Integer, name String, dept String, subdept String", "PARTITIONED BY (id)"); + + assertThatThrownBy( + () -> + sql( + "CALL %s.system.add_files(table => '%s', source_table => '%s', parallelism => -1)", + catalogName, tableName, sourceTableName)) + .isInstanceOf(IllegalArgumentException.class) + .hasMessage("Parallelism should be larger than 0"); + } + @TestTemplate public void testAddFilesToTableWithManySpecs() { createPartitionedHiveTable(); diff --git a/spark/v3.5/spark/src/main/java/org/apache/iceberg/spark/procedures/AddFilesProcedure.java b/spark/v3.5/spark/src/main/java/org/apache/iceberg/spark/procedures/AddFilesProcedure.java index 1e14b748c0..f2b3f8658f 100644 --- a/spark/v3.5/spark/src/main/java/org/apache/iceberg/spark/procedures/AddFilesProcedure.java +++ b/spark/v3.5/spark/src/main/java/org/apache/iceberg/spark/procedures/AddFilesProcedure.java @@ -118,6 +118,7 @@ class AddFilesProcedure extends BaseProcedure { boolean checkDuplicateFiles = input.asBoolean(CHECK_DUPLICATE_FILES_PARAM, true); int parallelism = input.asInt(PARALLELISM, 1); + Preconditions.checkArgument(parallelism > 0, "Parallelism should be larger than 0"); return importToIceberg( tableIdent, sourceIdent, partitionFilter, checkDuplicateFiles, parallelism);