[ 
https://issues.apache.org/jira/browse/FLINK-40399?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Gabor Somogyi resolved FLINK-40399.
-----------------------------------
    Fix Version/s: 2.4.0
       Resolution: Fixed

> 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
>            Assignee: Ilya Soin
>            Priority: Minor
>              Labels: pull-request-available
>             Fix For: 2.4.0
>
>
> _SavepointKeyFilter_ currently carries two unrelated responsibilities: the 
> runtime contract required by savepoint scans ({_}test{_}, {_}getExactKeys{_}) 
> and planning algebra used only while
>   combining predicates during filter push-down ({_}isEmpty{_}, 
> {_}getLowerBound{_}, {_}getUpperBound{_}, {_}intersect{_}, {_}filterKeys{_}, 
> {_}empty{_}, and {_}BoundInfo{_}). The latter is exposed through the public
>   _@Experimental_ API despite being irrelevant to DataStream API 
> implementations.
>   This task separates those responsibilities. 
> _org.apache.flink.state.api.filter.SavepointKeyFilter_ retains its runtime 
> contract and
>   _exact/range_ factories. Planning-only range bounds and 
> predicate-combination logic are kept in a private _KeyFilterPlan_ inside 
> {_}SavepointFilterTranslator{_}, which tracks predicate
>   state during translation and constructs the resulting existing runtime 
> filter implementation afterward.
>   The planning-only methods, {_}BoundInfo{_}, and _EmptyKeyFilter_ are 
> removed.
>   The task also adds coverage for previously untested runtime filters and 
> push-down paths—most importantly, ensuring predicates that cannot be pushed 
> down are returned in
>   _remaining()_ and therefore still evaluated by the runtime.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to