[jira] [Created] (FLINK-19659) Array type supports equals and not_equals operator when element types are different but castable

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Created] (FLINK-19659) Array type supports equals and not_equals operator when element types are different but castable

Shang Yuanchun (Jira)
hailong wang created FLINK-19659:
------------------------------------

             Summary: Array type supports equals and not_equals operator when element types are different but castable
                 Key: FLINK-19659
                 URL: https://issues.apache.org/jira/browse/FLINK-19659
             Project: Flink
          Issue Type: New Feature
          Components: Table SQL / Planner
    Affects Versions: 1.11.0
            Reporter: hailong wang


Currently, Array type supports `equals` and `not_equals` when element is the same or can not be cased. For example,
{code:java}
Array[1] <> Array[1] -> true{code}
{code:java}
Array[1] <> Array[cast(x'01' as binary)] -> false
{code}
But for the element types which are castable, it will throw error,

 
{code:java}
org.apache.flink.table.planner.codegen.CodeGenException: Unsupported cast from 'ARRAY<INT NOT NULL> NOT NULL' to 'ARRAY<BIGINT NOT NULL> NOT NULL'.org.apache.flink.table.planner.codegen.CodeGenException: Unsupported cast from 'ARRAY<INT NOT NULL> NOT NULL' to 'ARRAY<BIGINT NOT NULL> NOT NULL'. at org.apache.flink.table.planner.codegen.calls.ScalarOperatorGens$.generateCast(ScalarOperatorGens.scala:1295) at org.apache.flink.table.planner.codegen.ExprCodeGenerator.generateCallExpression(ExprCodeGenerator.scala:703) at org.apache.flink.table.planner.codegen.ExprCodeGenerator.visitCall(ExprCodeGenerator.scala:498) at org.apache.flink.table.planner.codegen.ExprCodeGenerator.visitCall(ExprCodeGenerator.scala:55) at org.apache.calcite.rex.RexCall.accept(RexCall.java:288){code}
 

But the result should be false or true,  for example,

 
{code:java}
/Array[1] <> Array[cast(1 as bigint)] -> true
{code}
 

BTW, Map and MultiSet type are same as this, If it did, I am pleasure to open other issue to track those.

 



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