[
https://issues.apache.org/jira/browse/FLINK-38135?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sergey Nuyanzin resolved FLINK-38135.
-------------------------------------
Fix Version/s: 2.2.0
Resolution: Fixed
> 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
> Assignee: dylanhz
> Priority: Major
> Labels: pull-request-available
> Fix For: 2.2.0
>
>
> 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)