You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Aitozi (Jira)" <ji...@apache.org> on 2023/04/21 17:48:00 UTC
[jira] [Commented] (FLINK-31828) List field in a POJO data stream results in table program compilation failure
[ https://issues.apache.org/jira/browse/FLINK-31828?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17715111#comment-17715111 ]
Aitozi commented on FLINK-31828:
--------------------------------
Hi [~netvl] Thanks for this detailed bug report.
I have reproduced your problem. And I also spend some time to dig the way to use RAW type to declare the List type in your case. I found that there's a bug in the cast rule (using the wrong serializer), so it will fail with EOF exception as you mentioned (hope it's the same error with you).
I will prepare a PR to solve this bugĀ
> List field in a POJO data stream results in table program compilation failure
> -----------------------------------------------------------------------------
>
> Key: FLINK-31828
> URL: https://issues.apache.org/jira/browse/FLINK-31828
> Project: Flink
> Issue Type: Bug
> Components: Table SQL / Runtime
> Affects Versions: 1.16.1
> Environment: Java 11
> Flink 1.16.1
> Reporter: Vladimir Matveev
> Priority: Major
> Attachments: MainPojo.java, generated-code.txt, stacktrace.txt
>
>
> Suppose I have a POJO class like this:
> {code:java}
> public class Example {
> private String key;
> private List<Map<String, String>> values;
> // getters, setters, equals+hashCode omitted
> }
> {code}
> When a DataStream with this class is converted to a table, and some operations are performed on it, it results in an exception which explicitly says that I should file a ticket:
> {noformat}
> Caused by: org.apache.flink.api.common.InvalidProgramException: Table program cannot be compiled. This is a bug. Please file an issue.
> {noformat}
> Please find the example Java code and the full stack trace attached.
> From the exception and generated code it seems that Flink is upset with the list field being treated as an array - but I cannot have an array type there in the real code.
> Also note that if I _don't_ specify the schema explicitly, it then maps the {{values}} field to a `RAW('java.util.List', '...')` type, which also does not work correctly and fails the job in case of even simplest operations like printing.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)