dylanhz created FLINK-38135:
-------------------------------
Summary: Non-existent method for RAW type hashing
Key: FLINK-38135
URL: https://issues.apache.org/jira/browse/FLINK-38135
Project: Flink
Issue Type: Bug
Components: Table SQL / Planner
Reporter: dylanhz
There is a broken code path for generating hash codes for {{RAW}} types in
{{CodeGenUtils#hashCodeForType}}.
During a previous refactoring, a call to the legacy method
{{getJavaObjectFromBinaryGeneric}} was renamed to
{{getJavaObjectFromRawValueData}} to align with the new {{BinaryRawValueData}}
class.
However, this new method was never declared or implemented in the
{{BinaryRawValueData}} class or any of its superclasses.
{code:java}
// MRE
public class RawHashTest {
public static void main(String[] args) throws Exception {
TableEnvironment tableEnv =
TableEnvironment.create(EnvironmentSettings.inBatchMode());
tableEnv.createTemporarySystemFunction("MyUDF", new MyUDF());
String sql =
"SELECT str, COUNT(1) FROM ("
+ "SELECT MyUDF(id) AS str FROM (VALUES (0), (1), (2))
AS t(id)"
+ ") GROUP BY str"; // group by RAW type
tableEnv.sqlQuery(sql).execute().await();
}
public static class MyUDF extends ScalarFunction {
@DataTypeHint(value = "RAW", bridgedTo = String.class)
public String eval(Integer x) {
return x.toString();
}
}
}
{code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)