[
https://issues.apache.org/jira/browse/FLINK-3849?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15928012#comment-15928012
]
ASF GitHub Bot commented on FLINK-3849:
---------------------------------------
Github user fhueske commented on the issue:
https://github.com/apache/flink/pull/3520
Sure, a `FilterableTableSource` can implement its accepted predicates as it
likes.
However, I think we could expect that `getPredicates()` returns the
accepted filter expressions as it got them. This makes it easier to check a
correct behavior of the `FilterableTableSource`. Internally, the accepted
expressions can be decomposed or otherwise changed.
Similarly, we would need to check that the Expressions which remain in the
mutable list are also present in the input list.
> Add FilterableTableSource interface and translation rule
> --------------------------------------------------------
>
> Key: FLINK-3849
> URL: https://issues.apache.org/jira/browse/FLINK-3849
> Project: Flink
> Issue Type: New Feature
> Components: Table API & SQL
> Reporter: Fabian Hueske
> Assignee: Kurt Young
>
> Add a {{FilterableTableSource}} interface for {{TableSource}} implementations
> which support filter push-down.
> The interface could look as follows
> {code}
> def trait FilterableTableSource {
> // returns unsupported predicate expression
> def setPredicate(predicate: Expression): Expression
> }
> {code}
> In addition we need Calcite rules to push a predicate (or parts of it) into a
> TableScan that refers to a {{FilterableTableSource}}. We might need to tweak
> the cost model as well to push the optimizer in the right direction.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)