[ https://issues.apache.org/jira/browse/FLINK-3504?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Chengxiang Li updated FLINK-3504: --------------------------------- Summary: Join fails while have expression inside join condition. (was: [SQL] Join fails while have expression inside join condition.) > Join fails while have expression inside join condition. > ------------------------------------------------------- > > Key: FLINK-3504 > URL: https://issues.apache.org/jira/browse/FLINK-3504 > Project: Flink > Issue Type: Bug > Components: Table API > Reporter: Chengxiang Li > > {noformat} > val ds1 = CollectionDataSets.get3TupleDataSet(env).as('a, 'b, 'c) > val ds2 = CollectionDataSets.get5TupleDataSet(env).as('d, 'e, 'f, 'g, 'h) > val joinT = ds1.join(ds2).filter('a + 3 === 'd).select('c, 'g) > {noformat} > This query would throw exception: > {noformat} > Caused by: org.apache.flink.api.table.TableException: Joins should have at > least one equality condition > at > org.apache.flink.api.table.plan.rules.dataset.DataSetJoinRule.convert(DataSetJoinRule.scala:57) > at > org.apache.calcite.rel.convert.ConverterRule.onMatch(ConverterRule.java:116) > at > org.apache.calcite.plan.volcano.VolcanoRuleCall.onMatch(VolcanoRuleCall.java:228) > ... 44 more > {noformat} > There are 2 issues here: > # DataSetJoinRule does not support expression inside join condition. > # JoinPushExpressionsRulewould add a Project to calculate expression value > before Join, so the join condition does not include expression any more, > however, it's not returned after the logical optimization. -- This message was sent by Atlassian JIRA (v6.3.4#6332)