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