You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Anton Solovev (JIRA)" <ji...@apache.org> on 2017/01/13 11:42:26 UTC

[jira] [Comment Edited] (FLINK-3849) Add FilterableTableSource interface and translation rule

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

Anton Solovev edited comment on FLINK-3849 at 1/13/17 11:41 AM:
----------------------------------------------------------------

Hi [~fhueske], so {{setPredicate(predicate: Expression)}} returns unsupported expression. What if predicate looks like {{id > 2 || (amount * 2) > anydata}} and {{id > 2}} part may be pushed into a source. Should we make sure that a source wouldn't do any logic mistakes before? And how,maybe add another method ensuring filtering or try to set predicate and a source make all checks.


was (Author: tonycox):
Hi [~fhueske], so {{setPredicate(predicate: Expression)}} returns unsupported expression. What if predicate looks like {{id > 2 || (amount * 2) > anydata}} and {{id > 2}} part may be pushed into a source ? Should we make sure that a source wouldn't do any logic mistakes before? And how, add another method ensuring filtering or try to set predicate and a source make all checks?

> 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: Anton Solovev
>
> 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.4#6332)