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

Jingsong Lee commented on FLINK-14173:
--------------------------------------

Hi [~BenoitParis] , the different semantics is:

1.Condition in WHERE clause: be used to filter data after join.

2.Condition in ON clause: it will affect left outer join(UDTF only support left 
join), when condition is false, should emit data with right null values instead 
of filtering out data.

[~docete] You are right, we should support it, the reason is that this 
condition will be pulled up to calc node instead of staying in the join node. 
This is wrong for left join.

 

But at the least, we can support this ANSI-style join for inner join.

> ANSI-style JOIN with Temporal Table Function fails
> --------------------------------------------------
>
>                 Key: FLINK-14173
>                 URL: https://issues.apache.org/jira/browse/FLINK-14173
>             Project: Flink
>          Issue Type: Bug
>          Components: Table SQL / Legacy Planner, Table SQL / Planner
>    Affects Versions: 1.9.0
>         Environment: Java 1.8, Scala 2.11, Flink 1.9 (pom.xml file attached)
>            Reporter: Benoît Paris
>            Priority: Major
>         Attachments: flink-test-temporal-tables-1.9.zip
>
>
> The planner fails to generate a plan for ANSI-style joins with Temporal Table 
> Functions. The Blink planners throws with a "Missing conversion is 
> LogicalTableFunctionScan[convention: NONE -> LOGICAL]" message (and some very 
> fancy graphviz stuff). The old planner does a "This exception indicates that 
> the query uses an unsupported SQL feature."
> This fails:
> {code:java}
>  SELECT 
>    o_amount * r_amount AS amount 
>  FROM Orders 
>  JOIN LATERAL TABLE (Rates(o_proctime)) 
>    ON r_currency = o_currency {code}
> This works:
> {code:java}
>  SELECT 
>    o_amount * r_amount AS amount 
>  FROM Orders 
>     , LATERAL TABLE (Rates(o_proctime)) 
>  WHERE r_currency = o_currency{code}
> Reproduction with the attached Java and pom.xml files. Also included: stack 
> traces for both Blink and the old planner.
> I think this is a regression. I remember using ANSI-style joins with a 
> temporal table function successfully in 1.8.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to