You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "hailong wang (Jira)" <ji...@apache.org> on 2020/10/16 12:35:00 UTC
[jira] [Commented] (FLINK-19659) Array type supports equals and
not_equals operator when element types are different but castable
[ https://issues.apache.org/jira/browse/FLINK-19659?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17215374#comment-17215374 ]
hailong wang commented on FLINK-19659:
--------------------------------------
WDYT [~jark], CC in your free time~
> 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
> Priority: Major
> Fix For: 1.12.0
>
>
> Currently, Array type supports `equals` and `not_equals` when element types are 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 issues to track those.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)