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

Zheng Hu resolved HBASE-19640.
------------------------------
    Resolution: Fixed

> Change in filterAllRemaining() impl for FilterListWithOR
> --------------------------------------------------------
>
>                 Key: HBASE-19640
>                 URL: https://issues.apache.org/jira/browse/HBASE-19640
>             Project: HBase
>          Issue Type: Bug
>          Components: Filters
>    Affects Versions: 2.0.0-beta-1
>            Reporter: Ankit Singhal
>            Assignee: Zheng Hu
>
> filterAllRemaining() in FilterListWithOR will now return false if the filter 
> list is empty whereas earlier it used to return true for 
> Operator.MUST_PASS_ONE.
> *In HBase-2.0*
> {code}
>  @Override
>   public boolean filterAllRemaining() throws IOException {
>     if (isEmpty()) {
>       return super.filterAllRemaining();//false
>     }
>     for (int i = 0, n = filters.size(); i < n; i++) {
>       if (!filters.get(i).filterAllRemaining()) {
>         return false;
>       }
>     }
>     return true;
>   }
> {code}
> Earlier versions(1.3.1 atleast):-
> {code}
> @Override
>   public boolean filterAllRemaining() throws IOException {
>     int listize = filters.size();
>     for (int i = 0; i < listize; i++) {
>       if (filters.get(i).filterAllRemaining()) {
>         if (operator == Operator.MUST_PASS_ALL) {
>           return true;
>         }
>       } else {
>         if (operator == Operator.MUST_PASS_ONE) {
>           return false;
>         }
>       }
>     }
>     return operator == Operator.MUST_PASS_ONE;
>   }
> {code}
> IMO, the current implementation seems to be right, but probably this change 
> requires a release note at least as some people might have implemented the 
> filters considering the old semantics.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to