You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flink.apache.org by "Vladimir Matveev (Jira)" <ji...@apache.org> on 2023/04/17 22:47:00 UTC

[jira] [Created] (FLINK-31828) List field in a POJO data stream results in table program compilation failure

Vladimir Matveev created FLINK-31828:
----------------------------------------

             Summary: 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
         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)