...
Rejected Alternatives
Reject Plan A
Add default method enableFilterPushDown in SupportsFilterPushDown interface.
In FilterPushDownSpec, determine whether filter pushdown is allowed. If it is not allowed, the applyFilters logic will not be executed.
Code Block | ||
---|---|---|
| ||
@PublicEvolving public interface SupportsFilterPushDown { /** * Provides a list of filters in conjunctive form. A source can pick filters and return the * accepted and remaining filters. * * <p>See the documentation of {@link SupportsFilterPushDown} for more information. */ Result applyFilters(List<ResolvedExpression> filters); /** * Returns whether filter push down is enabled. */ default boolean enableFilterPushDown() { return true; } } |
Reject Reason
The current interface can already satisfy the requirements. The connector can reject all the filters by returning the input filters as `Result#remainingFilters`.
Reject Plan B
Add a common configuration source.filter-push-down.enabled to disable filter push down for connectors.
The user specifies option for sources through a new connector option:
...