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

Shuyi Chen commented on FLINK-7179:
-----------------------------------

[~fhueske] I think the problem is in PushProjectIntoTableSourceScanRule in 
streaming mode, when there is rowtime involved. An example logical plan is as 
follows:

FlinkLogicalCalc.LOGICAL(input=rel#44:Subset#0.LOGICAL,expr#0..5={inputs},first=$t0,rowtime=$t5,id=$t1)

$t5 here refers to a virtual column of TimeIndicatorType, which does not exist 
in the physical table directly. Therefore, it will generate a 
ArrayIndexOutOfBoundException when ProjectableTableSource.projectFields is 
called since there is only 5 columns in the physical table, and $t5 tries to 
refer to the 6th column. 

This problem only exist in Streaming. For batch, we can use a physical column 
of SqlTimeType in the physical table in the window function, so it's fine.

What do you think how we can resolve it?

> ProjectableTableSource interface doesn't compatible with 
> BoundedOutOfOrdernessTimestampExtractor
> ------------------------------------------------------------------------------------------------
>
>                 Key: FLINK-7179
>                 URL: https://issues.apache.org/jira/browse/FLINK-7179
>             Project: Flink
>          Issue Type: Bug
>          Components: Table API & SQL
>    Affects Versions: 1.3.1
>            Reporter: Zhenqiu Huang
>            Assignee: Zhenqiu Huang
>
> In the implementation of window of stream sql, 
> BoundedOutOfOrdernessTimestampExtractor is designed to extract row time from 
> each row. It assumes the ts field is in the data stream by default. On the 
> other hand, ProjectableTableSource is designed to help projection push down. 
> If there is no row time related field in a query, the extractor can't 
> function well. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to