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 a user 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).
Attachments
Attachments
Issue Links
- relates to
-
HBASE-18957 add test that confirms 2 FamilyFilters in a FilterList using MUST_PASS_ONE operator will return results that match either of the FamilyFilters and revert as needed to make it pass.
- Resolved
-
HBASE-17678 FilterList with MUST_PASS_ONE may lead to redundant cells returned
- Resolved
- links to