[FLINK-7227][Table API & SQL]Fix the the TableSource predicate push… #4608
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
… down issue for OR and AND expression with more than 2 predicates
What is the purpose of the change
Currently, we can't push more than 2 predicates for OR expression in TableSource. In this PR, we want to solve this issue.
Brief change log
For predicate push down, first we are converting expression to conjunctive normal form then passing to RexNodeToExpressionConverter. So issue was only generated for OR expression, but we handle this issue for non-conjunctive normal form to solve for AND expression.
Verifying this change
Add tests to verify that RexNodeToExpressionConverter is handling conjunctive and non-conjunctive normal forms successfully.
To verify predicate push down for OR and AND expression following test is added
this test depends on TestFilterableTableSource#applyPredicate function, so we made changes in applyPredicate function to verify this test.
Does this pull request potentially affect one of the following parts:
@Public(Evolving)
:noDocumentation