You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flink.apache.org by "Jark Wu (Jira)" <ji...@apache.org> on 2021/09/08 04:36:00 UTC

[jira] [Created] (FLINK-24204) Failed to insert nested types using value constructed functions

Jark Wu created FLINK-24204:
-------------------------------

             Summary: Failed to insert nested types using value constructed functions 
                 Key: FLINK-24204
                 URL: https://issues.apache.org/jira/browse/FLINK-24204
             Project: Flink
          Issue Type: Bug
          Components: Table SQL / API
    Affects Versions: 1.13.2
            Reporter: Jark Wu


{code}
Flink SQL> CREATE TABLE nested_type (
>     row_type ROW<id BIGINT, data STRING>,
>     map_type MAP<STRING, BIGINT>,
>     array_type ARRAY<BIGINT>
> ) WITH ('connector'='print');
[INFO] Execute statement succeed.

Flink SQL> INSERT INTO nested_type VALUES ((1, 'data'), MAP['key', 1], ARRAY[1,2,3])
> ;
[INFO] Submitting SQL update statement to the cluster...
[ERROR] Could not execute SQL statement. Reason:
org.apache.flink.table.planner.codegen.CodeGenException: Unsupported cast from 'MAP<CHAR(3) NOT NULL, INT NOT NULL> NOT NULL' to 'MAP<STRING, BIGINT>'.
{code}

The query works if we change the sink table definition to :

{code}
CREATE TABLE nested_type (
    row_type ROW<id BIGINT, data STRING>,
    map_type MAP<STRING, INT>,
    array_type ARRAY<INT>
) WITH (
     'connector'='print'
);
{code}

Therefore, I think the root cause of this problem is Flink SQL doesn't support cast for nested types when code generation. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)