[ 
https://issues.apache.org/jira/browse/FLINK-5255?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15750737#comment-15750737
 ] 

ASF GitHub Bot commented on FLINK-5255:
---------------------------------------

GitHub user AlexanderShoshin opened a pull request:

    https://github.com/apache/flink/pull/3009

    [FLINK-5255] Improve single row check in DataSetSingleRowJoinRule

    DataSetSingleRowJoinRule now supports not only `LogicalAggregate` as single 
row input, but also `LogicalCalc`, `LogicalProject` and `LogicalFilter` 
followed by `LogicalAggregate`.
    If `LogicalFilter` returns empty set `DataSetSingleRowJoin` will also 
return empty set.


You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/AlexanderShoshin/flink FLINK-5255

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/flink/pull/3009.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #3009
    
----
commit f822d7c0320860a632ff6879f16ffec2c9f14350
Author: Alexander Shoshin <alexander_shos...@epam.com>
Date:   2016-12-14T10:59:08Z

    added tests for LogicalCalc support in DataSetSingleRowJoinRule

commit d954455c86532c4362c88d578f26e8bbe8ffb060
Author: Alexander Shoshin <alexander_shos...@epam.com>
Date:   2016-12-14T11:04:49Z

    [FLINK-5255] Enable single row LogicalCalc as input in 
DataSetSingleRowJoinRule

----


> Improve single row check in DataSetSingleRowJoinRule
> ----------------------------------------------------
>
>                 Key: FLINK-5255
>                 URL: https://issues.apache.org/jira/browse/FLINK-5255
>             Project: Flink
>          Issue Type: Improvement
>          Components: Table API & SQL
>    Affects Versions: 1.2.0
>            Reporter: Fabian Hueske
>            Assignee: Alexander Shoshin
>
> {{DataSetSingleRowJoinRule}} checks converts an arbitrary inner join (cross, 
> theta, equi) where one input has exactly one row into a broadcast-map join.
> Currently, the condition to check for the single row is that the input of the 
> join must be a global aggregation. The check fails if the input is a 
> {{LogicalCalc}} followed by {{LogicalAggregate}}.
> Hence, the following query cannot be executed:
> {code}
> SELECT absum, x.a
> FROM x, (SELECT a.sum + b.sum AS absum FROM y)
> {code}
> The single row check should be extended to accept a {{LogicalCalc}} that has 
> no condition {{(RexProgram.getCondition() == null)}}.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to