Wenlong Lyu created FLINK-26770:
-----------------------------------

             Summary: Nullable ArrayData should not be Object[]
                 Key: FLINK-26770
                 URL: https://issues.apache.org/jira/browse/FLINK-26770
             Project: Flink
          Issue Type: Bug
    Affects Versions: 1.15.0
            Reporter: Wenlong Lyu



sql:
         
"INSERT INTO %s "
                    + " (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) values ("
                    + "1,'dim',cast(20.2007 as 
double),false,652482,cast('2020-07-08' as date),'source_test',cast('2020-07-10 
16:28:07.737' as timestamp),"
                    + "cast(8.58965 as float),cast(ARRAY [464,98661,32489] as 
array<int>),cast(ARRAY [8589934592,8589934593,8589934594] as array<bigint>),"
                    + "ARRAY[cast(8.58967 as float),cast(96.4667 as 
float),cast(9345.16 as float)], ARRAY [cast(587897.4646746 as 
double),cast(792343.646446 as double),cast(76.46464 as double)],"
                    + "cast(ARRAY [true,true,false,true] as 
array<boolean>),cast(ARRAY ['monday','saturday','sunday'] as 
array<STRING>),true,cast(8119.21 as numeric(6,2)), cast('2020-07-10 
16:28:07.737' as timestamp)"
                    + ")";

error:

Caused by: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to 
[Ljava.lang.Integer;
        at 
org.apache.flink.table.data.GenericArrayData.toIntArray(GenericArrayData.java:297)
 ~[flink-table-common-1.15-vvr-6.0-SNAPSHOT.jar:1.15-vvr-6.0-SNAPSHOT]
        

related codegen result:

          objArray$81 = new Object[result$76.size()];
          for ( i$82 = 0; i$82 < result$76.size(); i$82++) {
          if (!result$76.isNullAt(i$82)) {
          objArray$81[i$82] = result$76.getBoolean(i$82);

cause:
          ArrayToArrayCastRule#arrayElementType use Object when a column is 
nullable, but GenericArrayData only accepts array with specified types, like 
Integer[], I think we should follow CodeGenUtils#boxedTypeTermForType 

[~slinkydeveloper]




--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to