[
https://issues.apache.org/jira/browse/FLINK-5520?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15827375#comment-15827375
]
ASF GitHub Bot commented on FLINK-5520:
---------------------------------------
Github user wuchong commented on the issue:
https://github.com/apache/flink/pull/3141
Hi @lincoln-lil , thank your for the PR. I think the issue is only for
1.2.0, so please create a new pull request to commit into `release-1.2`. For
`master` we will directly fix the bug.
I have taken a quick look at it. I think a better approach is to disable
outer joins with non-equality in
[`DataSetJoinRule`](https://github.com/apache/flink/blob/master/flink-libraries/flink-table/src/main/scala/org/apache/flink/table/plan/rules/dataSet/DataSetJoinRule.scala#L43),
not mix the code in SQL translation. such as
```scala
override def matches(call: RelOptRuleCall): Boolean = {
val join: LogicalJoin = call.rel(0).asInstanceOf[LogicalJoin]
val joinInfo = join.analyzeCondition
// joins require an equi-condition or a conjunctive predicate with at
least one equi-condition
// and outer joins with non-equality predicates is not supported
currently
!joinInfo.pairs().isEmpty && (join.getJoinType == JoinRelType.INNER ||
joinInfo.isEqui)
}
```
And also please add checks in
[`operators.scala`](https://github.com/apache/flink/blob/release-1.2/flink-libraries/flink-table/src/main/scala/org/apache/flink/table/plan/logical/operators.scala#L455)
to give a good exception for TableAPI outer joins.
> Disable outer joins with non-equality predicates
> ------------------------------------------------
>
> Key: FLINK-5520
> URL: https://issues.apache.org/jira/browse/FLINK-5520
> Project: Flink
> Issue Type: Bug
> Components: Table API & SQL
> Affects Versions: 1.2.0
> Reporter: Fabian Hueske
> Assignee: lincoln.lee
> Priority: Blocker
> Fix For: 1.2.0
>
>
> Outer joins with non-equality predicates (and at least one equality
> predicate) compute incorrect results.
> Since this is not a very common requirement, I propose to disable this
> feature for the 1.2.0 release and correctly implement it for a later version.
> The fix should add checks in the Table API validation phase (to get a good
> error message) and in the DataSetJoinRule to prevent translation of SQL
> queries with non-equality predicates on outer joins.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)