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

fhueske pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git


The following commit(s) were added to refs/heads/master by this push:
     new b7d0869ea26 [FLINK-39994][table] Allow the use of primitive scalar 
arguments in ProcessTableFunctionTestHarness (#28545)
b7d0869ea26 is described below

commit b7d0869ea26e5efc7a9362cb7e019ec85ab89d1b
Author: Mika Naylor <[email protected]>
AuthorDate: Fri Jun 26 08:42:13 2026 +0200

    [FLINK-39994][table] Allow the use of primitive scalar arguments in 
ProcessTableFunctionTestHarness (#28545)
---
 .../functions/ProcessTableFunctionTestHarness.java |  5 ++++-
 .../ProcessTableFunctionTestHarnessTest.java       | 24 ++++++++++++++++++++++
 2 files changed, 28 insertions(+), 1 deletion(-)

diff --git 
a/flink-table/flink-table-test-utils/src/main/java/org/apache/flink/table/runtime/functions/ProcessTableFunctionTestHarness.java
 
b/flink-table/flink-table-test-utils/src/main/java/org/apache/flink/table/runtime/functions/ProcessTableFunctionTestHarness.java
index 5a6eecb50f8..fc4e50618e1 100644
--- 
a/flink-table/flink-table-test-utils/src/main/java/org/apache/flink/table/runtime/functions/ProcessTableFunctionTestHarness.java
+++ 
b/flink-table/flink-table-test-utils/src/main/java/org/apache/flink/table/runtime/functions/ProcessTableFunctionTestHarness.java
@@ -47,6 +47,8 @@ import org.apache.flink.types.Row;
 import org.apache.flink.types.RowKind;
 import org.apache.flink.util.Collector;
 
+import org.apache.commons.lang3.ClassUtils;
+
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.lang.reflect.Parameter;
@@ -871,7 +873,8 @@ public class ProcessTableFunctionTestHarness<OUT> 
implements AutoCloseable {
 
                 if (arg instanceof ScalarArgumentInfo) {
                     Object value = ((ScalarArgumentInfo) arg).value;
-                    if (value != null && 
!paramType.isAssignableFrom(value.getClass())) {
+                    Class<?> expectedType = 
ClassUtils.primitiveToWrapper(paramType);
+                    if (value != null && 
!expectedType.isAssignableFrom(value.getClass())) {
                         throw new IllegalStateException(
                                 String.format(
                                         "Type mismatch for scalar argument 
'%s' at position %d: "
diff --git 
a/flink-table/flink-table-test-utils/src/test/java/org/apache/flink/table/runtime/functions/ProcessTableFunctionTestHarnessTest.java
 
b/flink-table/flink-table-test-utils/src/test/java/org/apache/flink/table/runtime/functions/ProcessTableFunctionTestHarnessTest.java
index 88e1c8b32d8..fe0fac2390a 100644
--- 
a/flink-table/flink-table-test-utils/src/test/java/org/apache/flink/table/runtime/functions/ProcessTableFunctionTestHarnessTest.java
+++ 
b/flink-table/flink-table-test-utils/src/test/java/org/apache/flink/table/runtime/functions/ProcessTableFunctionTestHarnessTest.java
@@ -299,6 +299,14 @@ class ProcessTableFunctionTestHarnessTest {
         }
     }
 
+    /** PTF with primitive scalar arguments. */
+    @DataTypeHint("ROW<sum INT>")
+    public static class PrimitiveScalarPTF extends ProcessTableFunction<Row> {
+        public void eval(int a, int b) {
+            collect(Row.of(a + b));
+        }
+    }
+
     /** PTF with Context parameter - should be rejected by test harness. */
     @DataTypeHint("ROW<value INT>")
     public static class PTFWithContext extends ProcessTableFunction<Row> {
@@ -528,6 +536,22 @@ class ProcessTableFunctionTestHarnessTest {
         }
     }
 
+    @Test
+    void testPrimitiveScalarArguments() throws Exception {
+        try (ProcessTableFunctionTestHarness<Row> harness =
+                
ProcessTableFunctionTestHarness.ofClass(PrimitiveScalarPTF.class)
+                        .withScalarArgument("a", 10)
+                        .withScalarArgument("b", 20)
+                        .build()) {
+
+            harness.process();
+
+            List<Row> output = harness.getOutput();
+            assertThat(output).hasSize(1);
+            assertThat(output.get(0).getField("sum")).isEqualTo(30);
+        }
+    }
+
     @Test
     void testScalarOnlyPTFWithWrongArgumentTypes() {
         Exception exception =

Reply via email to