You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Tzu-Li (Gordon) Tai (JIRA)" <ji...@apache.org> on 2018/03/12 15:40:01 UTC
[jira] [Reopened] (FLINK-7596) fix bug when Set Operation handles
ANY type
[ https://issues.apache.org/jira/browse/FLINK-7596?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Tzu-Li (Gordon) Tai reopened FLINK-7596:
----------------------------------------
> fix bug when Set Operation handles ANY type
> -------------------------------------------
>
> Key: FLINK-7596
> URL: https://issues.apache.org/jira/browse/FLINK-7596
> Project: Flink
> Issue Type: Bug
> Components: Table API & SQL
> Reporter: Ruidong Li
> Assignee: Ruidong Li
> Priority: Major
> Fix For: 1.4.0, 1.3.4
>
>
> If two inputs with Any(GenericRelDataType), when they comes to Set Operation({{UNION}}, {{MINUS}},...), it will cause a {{TableException}} with info is "Type is not supported: ANY"
> Here is the test case:
> {code}
> @Test
> def testUnion(): Unit = {
> val list = List((1, new NODE), (2, new NODE))
> val list2 = List((3, new NODE), (4, new NODE))
> val env = StreamExecutionEnvironment.getExecutionEnvironment
> val tEnv = TableEnvironment.getTableEnvironment(env)
> val s1 = tEnv.fromDataStream(env.fromCollection(list))
> val s2 = tEnv.fromDataStream(env.fromCollection(list2))
> val result = s1.unionAll(s2).toAppendStream[Row]
> result.addSink(new StreamITCase.StringSink[Row])
> env.execute()
> }
> class NODE {
> val x = new util.HashMap[String, String]()
> }
> {code}
> This bug happens because Flink doesn't handle {{createSqlType(ANY)}} and Calcite doesn't know the differences between {{ANY}} and {{ANY(GenericRelDataType)}}, so the {{createSqlType(ANY)}} of Calcite will return a {{BasicSqlType}} instead.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)