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)

Reply via email to