GitHub user KurtYoung opened a pull request:
https://github.com/apache/flink/pull/3520
[FLINK-3849] [table] Add FilterableTableSource interface and rules for
pushing it
This PR is based on #3166 , and added following changes:
1. Refactor `RexProgramExpressionExtractor` and
`RexProgramExpressionExtractor` to `RexProgramExtractor` and
`RexProgramRewriter`. `RexProgramExtractor` is responsible for retract either
projection expressions or filter expression.
2. Make sure we don't fail during extracting and converting filter RexNodes
to expressions. The expressions which successfully translated and unconverted
RexNodes will both be returned.
3. Add some tests for `RexProgramExtractor`.
4. Provide unified `PushFilterIntoTableSourceScanRuleBase` to support
filter push down in both batch and stream mode.
5. Add some logical tests for filter push down in different situations,
like fully push down and partial push down.
5. Slight change of testing class `TestFilterableTableSource` to make it
less specialized.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/KurtYoung/flink flink-3849
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/flink/pull/3520.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #3520
----
commit 0a7af41509d9a0db3e791cb9f4dc5a1a8086f0b2
Author: tonycox <[email protected]>
Date: 2017-01-11T09:15:49Z
[FLINK-3849] Add FilterableTableSource interface and Rules for pushing it
commit 549b4e00e68d32f070e196fc6eb9a7f5f9e937c3
Author: tonycox <[email protected]>
Date: 2017-01-31T12:41:52Z
fix filterable test
commit 9aa82062832e0aabcb003e582c8130aeecc91a73
Author: tonycox <[email protected]>
Date: 2017-02-16T13:32:33Z
rebase and trying fix rexnode parsing
commit 646a6931224c7dcc58501ec014ab675925bb105d
Author: tonycox <[email protected]>
Date: 2017-02-17T16:48:40Z
create wrapper and update rules
commit abfa38d894aa86b7a5c91dd29bf398b880c8bfe7
Author: Kurt Young <[email protected]>
Date: 2017-03-13T07:30:13Z
[FLINK-3849] [table] Add FilterableTableSource interface and rules for
pushing it
----
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---