flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chengxiang Li (JIRA)" <j...@apache.org>
Subject [jira] [Created] (FLINK-3504) [SQL] Join fails while have expression inside join condition.
Date Thu, 25 Feb 2016 03:12:18 GMT
Chengxiang Li created FLINK-3504:

             Summary: [SQL] 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

    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)
This query would throw exception:
Caused by: org.apache.flink.api.table.TableException: Joins should have at least one equality
	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
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

View raw message