[jira] [Created] (FLINK-14540) Rethink of TableSource#explainSource()

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Created] (FLINK-14540) Rethink of TableSource#explainSource()

Shang Yuanchun (Jira)
Jark Wu created FLINK-14540:
-------------------------------

             Summary: 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


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)