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

snuyanzin 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 5de409eeb6e [FLINK-38135][table] Fix call to non-existent method for 
RAW type hashing
5de409eeb6e is described below

commit 5de409eeb6e308476efbfa3a0b11b70277479c86
Author: dylanhz <53137516+dyla...@users.noreply.github.com>
AuthorDate: Thu Aug 7 23:24:42 2025 +0800

    [FLINK-38135][table] Fix call to non-existent method for RAW type hashing
---
 .../apache/flink/table/planner/codegen/CodeGenUtils.scala |  2 +-
 .../table/planner/runtime/batch/sql/CalcITCase.scala      | 15 +++++++++++++++
 .../runtime/utils/UserDefinedFunctionTestUtils.scala      |  6 ++++++
 3 files changed, 22 insertions(+), 1 deletion(-)

diff --git 
a/flink-table/flink-table-planner/src/main/scala/org/apache/flink/table/planner/codegen/CodeGenUtils.scala
 
b/flink-table/flink-table-planner/src/main/scala/org/apache/flink/table/planner/codegen/CodeGenUtils.scala
index 61e5d66971f..0f5e3f330d4 100644
--- 
a/flink-table/flink-table-planner/src/main/scala/org/apache/flink/table/planner/codegen/CodeGenUtils.scala
+++ 
b/flink-table/flink-table-planner/src/main/scala/org/apache/flink/table/planner/codegen/CodeGenUtils.scala
@@ -378,7 +378,7 @@ object CodeGenUtils {
             tirt.getTypeInformation.createSerializer(new SerializerConfigImpl)
         }
         val serTerm = ctx.addReusableObject(serializer, "serializer")
-        s"$BINARY_RAW_VALUE.getJavaObjectFromRawValueData($term, 
$serTerm).hashCode()"
+        s"$term.toObject($serTerm).hashCode()"
       case NULL | SYMBOL | UNRESOLVED =>
         throw new IllegalArgumentException("Illegal type: " + t)
     }
diff --git 
a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/runtime/batch/sql/CalcITCase.scala
 
b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/runtime/batch/sql/CalcITCase.scala
index a068115a651..5882aab687a 100644
--- 
a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/runtime/batch/sql/CalcITCase.scala
+++ 
b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/runtime/batch/sql/CalcITCase.scala
@@ -2333,4 +2333,19 @@ class CalcITCase extends BatchTestBase {
     // reported in FLINK-35832
     checkResult("SELECT IFNULL(JSON_VALUE('{\"a\":16}','$.a'),'0')", 
Seq(row("16")));
   }
+
+  @Test
+  def testRawHash(): Unit = {
+    // reported in FLINK-38135
+    tEnv.createTemporarySystemFunction("RawOutUDF", RawOutUDF)
+    checkResult(
+      s"""
+         |SELECT str, COUNT(1) FROM (
+         |  SELECT RawOutUDF(id) AS str FROM (VALUES (0), (1), (2), (2), (1), 
(2)) AS t(id)
+         |)
+         |GROUP BY str
+         |""".stripMargin,
+      Seq(row(0, 1), row(1, 2), row(2, 3))
+    );
+  }
 }
diff --git 
a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/runtime/utils/UserDefinedFunctionTestUtils.scala
 
b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/runtime/utils/UserDefinedFunctionTestUtils.scala
index 0556e2c529f..52dd256bdc8 100644
--- 
a/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/runtime/utils/UserDefinedFunctionTestUtils.scala
+++ 
b/flink-table/flink-table-planner/src/test/scala/org/apache/flink/table/planner/runtime/utils/UserDefinedFunctionTestUtils.scala
@@ -443,6 +443,12 @@ object UserDefinedFunctionTestUtils {
     override def getResultType(signature: Array[Class[_]]): TypeInformation[_] 
= Types.BOOLEAN
   }
 
+  @SerialVersionUID(1L)
+  object RawOutUDF extends ScalarFunction {
+    @DataTypeHint(value = "RAW", bridgedTo = classOf[String])
+    def eval(id: Int): String = id.toString
+  }
+
   // 
------------------------------------------------------------------------------------
   // POJOs
   // 
------------------------------------------------------------------------------------

Reply via email to