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 // ------------------------------------------------------------------------------------