[
https://issues.apache.org/jira/browse/FLINK-14540?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16960792#comment-16960792
]
Jark Wu commented on FLINK-14540:
---------------------------------
cc [~rongrong] [~ykt836] [~godfreyhe] [~lzljs3620320] [~twalthr]
> Rethink of TableSource#explainSource()
> --------------------------------------
>
> Key: FLINK-14540
> URL: https://issues.apache.org/jira/browse/FLINK-14540
> Project: Flink
> Issue Type: Improvement
> Components: Table SQL / API
> Reporter: Jark Wu
> Priority: Major
>
> In FLINK-12399 and FLINK-14132, the returned String of
> {{TableSource#explainSource}} is used as part of digest of {{TableScan}}.
> User have to give the correct digest for projectable or filterable or
> limitable sources when pushdown has been tried. They have to overwrite
> {{TableSource#explainSource()}} to reflect such changes.
> However, I have some concerns about this:
> 1) such important restriction is not mentioned in the Javadoc of
> {{TableSource#explainSource()}}, {{ProjectableTableSouce}} and
> {{FilterableTableSource}}.
> 2) It pushes some dirty work to users which can be done by the framework, it
> makes connectors more difficult to be developed **correctly** (by reflecting
> all the push-downed information correctly).
> 3) the explainTerm/digest format of source maybe not unified and fully
> described.
> Regarding how to generate digest by planner, I think we can put the
> push-downed information in {{TableSourceTable}} (e.g. we already put
> {{selectedFields}} in it), and generate the digest using
> {{TableSourceTable}}.
> But I may miss something that we have to push the changes to explainSource.
> We can discuss this under this JIRA issue.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)