flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FLINK-5520) Disable outer joins with non-equality predicates
Date Wed, 18 Jan 2017 03:28:27 GMT

    [ 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:

    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 
    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

View raw message