|Modifier and Type||Method and Description|
Check and pick all predicates this table source can support.
Return the flag to indicate whether filter push down has been tried.
TableSource<T> applyPredicate(List<Expression> predicates)
WARNING: Flink planner will push down PlannerExpressions
(which are defined in flink-table-planner module), while Blink planner will push down
So the implementation for Flink planner and Blink planner should be different and incompatible.
PlannerExpression will be removed in the future.
After trying to push predicates down, we should return a new
instance which holds all pushed down predicates. Even if we actually pushed nothing down,
it is recommended that we still return a new
TableSource instance since we will
mark the returned instance as filter push down has been tried.
We also should note to not changing the form of the predicates passed in. It has been organized in CNF conjunctive form, and we should only take or leave each element from the list. Don't try to reorganize the predicates if you are absolutely confident with that.
predicates- A list contains conjunctive predicates, you should pick and remove all expressions that can be pushed down. The remaining elements of this list will further evaluated by framework.
TableSourcewith or without any filters been pushed into it.
Copyright © 2014–2020 The Apache Software Foundation. All rights reserved.