[ https://issues.apache.org/jira/browse/HBASE-18160?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16123479#comment-16123479 ]
Zheng Hu edited comment on HBASE-18160 at 8/11/17 3:24 PM: ----------------------------------------------------------- Attached a localcode to returncode map for filter list with or. it means: if previous return code is returncode, and the current sub-filter in filter list with OR return localcode, then current return code will be map[localcode][returncode]. was (Author: openinx): Attached a localcode to returncode map for filter list with or: {code} LocalCode\ReturnCode INCLUDE INCLUDE_AND_NEXT_COL INCLUDE_AND_SEEK_NEXT_ROW SKIP NEXT_COL NEXT_ROW NEXT_FAMILY SEEK_NEXT_USING_HINT INCLUDE INCLUDE INCLUDE INCLUDE INCLUDE INCLUDE INCLUDE INCLUDE INCLUDE INCLUDE_AND_NEXT_COL INCLUDE INCLUDE_AND_NEXT_COL INCLUDE_AND_NEXT_COL INCLUDE INCLUDE_AND_NEXT_COL INCLUDE_AND_NEXT_COL INCLUDE_AND_NEXT_COL INCLUDE INCLUDE_AND_SEEK_NEXT_ROW INCLUDE INCLUDE_AND_NEXT_COL INCLUDE_AND_SEEK_NEXT_ROW INCLUDE INCLUDE_AND_NEXT_COL INCLUDE_AND_SEEK_NEXT_ROW INCLUDE_AND_SEEK_NEXT_ROW INCLUDE SKIP INCLUDE INCLUDE INCLUDE SKIP SKIP SKIP SKIP SKIP NEXT_COL INCLUDE INCLUDE_AND_NEXT_COL INCLUDE_AND_NEXT_COL SKIP NEXT_COL NEXT_COL NEXT_COL SKIP NEXT_ROW INCLUDE INCLUDE_AND_NEXT_COL INCLUDE_AND_SEEK_NEXT_ROW SKIP NEXT_COL NEXT_ROW NEXT_ROW SKIP NEXT_FAMILY INCLUDE INCLUDE_AND_NEXT_COL INCLUDE_AND_SEEK_NEXT_ROW SKIP NEXT_COL NEXT_ROW NEXT_FAMILY SKIP SEEK_NEXT_USING_HINT INCLUDE INCLUDE INCLUDE SKIP SKIP SKIP SKIP SKIP {code} > Fix incorrect logic in FilterList.filterKeyValue > ------------------------------------------------- > > Key: HBASE-18160 > URL: https://issues.apache.org/jira/browse/HBASE-18160 > Project: HBase > Issue Type: Sub-task > Reporter: Zheng Hu > Assignee: Zheng Hu > Attachments: filter-or-map.txt, HBASE-18160.branch-1.1.v1.patch, > HBASE-18160.branch-1.v1.patch, HBASE-18160.v1.patch, HBASE-18160.v2.patch, > HBASE-18160.v2.patch, HBASE-18160.v3.patch > > > 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). -- This message was sent by Atlassian JIRA (v6.4.14#64029)