Ilya Soin created FLINK-40399:
---------------------------------
Summary: Separate the SavepointKeyFilter runtime contract from
push-down planning
Key: FLINK-40399
URL: https://issues.apache.org/jira/browse/FLINK-40399
Project: Flink
Issue Type: Improvement
Components: API / State Processor
Affects Versions: 2.4.0
Reporter: Ilya Soin
_SavepointKeyFilter_ currently carries two unrelated responsibilities: the
contract the savepoint scan needs ({_}test{_}, {_}getExactKeys{_}) and the
algebra used only while combining predicates during filter push-down
({_}isEmpty, getLowerBound, getUpperBound, intersect, filterKeys, empty,{_}
plus {_}BoundInfo{_}). The second group is public and _@Experimental_ despite
being unusable outside push-down translation.
This task splits the two:
_org.apache.flink.state.api.filter.SavepointKeyFilter_ keeps only the runtime
contract, and the planning algebra moves to an _@Internal
SavepointKeyFilterPlan_ in {_}org.apache.flink.state.table.filter{_}, alongside
the connector that is its only user. No behaviour change.
Also adds test coverage for existing push-down paths that had none — most
importantly that predicates which cannot be pushed are returned in
_remaining()_ so the runtime still evaluates them.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)