You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Zheng Hu (JIRA)" <ji...@apache.org> on 2017/06/05 09:43:04 UTC

[jira] [Updated] (HBASE-18160) Fix incorrect logic in FilterList.filterKeyValue

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

Zheng Hu updated HBASE-18160:
-----------------------------
    Description: 
As HBASE-17678 said, there are two problems in FilterList.filterKeyValue implementation: 

1.  FilterList did not consider INCLUDE_AND_SEEK_NEXT_ROW case( seems like INCLUDE_AND_SEEK_NEXT_ROW is a newly added case, and the dev forgot to consider FilterList), So if users use INCLUDE_AND_SEEK_NEXT_ROW in his own Filter and wrapped by a FilterList,  it'll  throw  an IllegalStateException("Received code is not valid."). 

2.  For FilterList with MUST_PASS_ONE,   if filter-A in filter list return  INCLUDE and filter-B in filter list return INCLUDE_AND_NEXT_COL,   the FilterList will return  INCLUDE_AND_NEXT_COL finally.  According to the mininal step rule , It's incorrect.  (filter list with MUST_PASS_ONE choose the mininal step among filters in filter list. Let's call it: The Mininal Step Rule).



  was:
As HBASE-17678 said, there are two problems in FilterList.filterKeyValue implementation: 

1.  FilterList did not consider INCLUDE_AND_SEEK_NEXT_ROW case( seems like INCLUDE_AND_SEEK_NEXT_ROW is a newly added case, and the dev forgot to consider FilterList), So if uses use INCLUDE_AND_SEEK_NEXT_ROW in his own Filter and wrapped by a FilterList,  it'll  throw  an IllegalStateException("Received code is not valid."). 

2.  For FilterList with MUST_PASS_ONE,   if filter-A in filter list return  INCLUDE and filter-B in filter list return INCLUDE_AND_NEXT_COL,   the FilterList will return  INCLUDE_AND_NEXT_COL finally.  According to the mininal step rule , It's incorrect.  (filter list with MUST_PASS_ONE choose the mininal step among filters in filter list. Let's call it: The Mininal Step Rule).




> Fix incorrect  logic in FilterList.filterKeyValue
> -------------------------------------------------
>
>                 Key: HBASE-18160
>                 URL: https://issues.apache.org/jira/browse/HBASE-18160
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Zheng Hu
>            Assignee: Zheng Hu
>
> As HBASE-17678 said, there are two problems in FilterList.filterKeyValue implementation: 
> 1.  FilterList did not consider INCLUDE_AND_SEEK_NEXT_ROW case( seems like INCLUDE_AND_SEEK_NEXT_ROW is a newly added case, and the dev forgot to consider FilterList), So if users use INCLUDE_AND_SEEK_NEXT_ROW in his own Filter and wrapped by a FilterList,  it'll  throw  an IllegalStateException("Received code is not valid."). 
> 2.  For FilterList with MUST_PASS_ONE,   if filter-A in filter list return  INCLUDE and filter-B in filter list return INCLUDE_AND_NEXT_COL,   the FilterList will return  INCLUDE_AND_NEXT_COL finally.  According to the mininal step rule , It's incorrect.  (filter list with MUST_PASS_ONE choose the mininal step among filters in filter list. Let's call it: The Mininal Step Rule).



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)