Zheng Hu commented on HBASE-20565:

bq. Is the scenario limited to FilterListWithAND only ?
No , FilterListWithOR has the  similar problem  too ... because currently the 
offset is neither an absolute offset nor  relative offset,   if we passed x 
cells to FilterList (WithAND or WithOR), 
then  then the first offset cell will be abandoned, and start to include cell 
from the next , for ColumnPaginationFilter(offset, limit)....  but some times 
sub-filters  return SEEK_NEXT_USING_HINT or some other RC, so the x is 
unstable,  which means the offset is unstable (see [~jinghe]'s testing. )

> ColumnRangeFilter combined with ColumnPaginationFilter can produce incorrect 
> result since 1.4
> ---------------------------------------------------------------------------------------------
>                 Key: HBASE-20565
>                 URL: https://issues.apache.org/jira/browse/HBASE-20565
>             Project: HBase
>          Issue Type: Bug
>          Components: Filters
>    Affects Versions: 1.4.4
>            Reporter: Jerry He
>            Assignee: Zheng Hu
>            Priority: Major
>         Attachments: debug.diff, debug.log, test-branch-1.4.patch
> When ColumnPaginationFilter is combined with ColumnRangeFilter, we may see 
> incorrect result.
> Here is a simple example.
> One row with 10 columns c0, c1, c2, .., c9.  I have a ColumnRangeFilter for 
> range c2 to c9.  Then I have a ColumnPaginationFilter with limit 5 and offset 
> 0.  FileterList is FilterList(Operator.MUST_PASS_ALL, ColumnRangeFilter, 
> ColumnPaginationFilter).
> We expect 5 columns being returned.  But in HBase 1.4 and after, 4 columns 
> are returned.
> In 1.2.x, the correct 5 columns are returned.

This message was sent by Atlassian JIRA

Reply via email to