[ 
https://issues.apache.org/jira/browse/HBASE-10485?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13896237#comment-13896237
 ] 

ramkrishna.s.vasudevan commented on HBASE-10485:
------------------------------------------------

{code}
if (filterRowKey(currentRow, offset, length)) {
            boolean moreRows = nextRow(currentRow, offset, length);
            if (!moreRows) return false;
            results.clear();
            continue;
          }
{code}
Here filterRowKey for prefixfilter knows that we have already sure this row is 
not needed.  But we are evaluating the same row again in the filterKV by 
checking the row part alone.  That is what i mean.  
May be an easier way would  be to in PrefixFilter.filterKeyValue()
{code}
if(filterRow()) {
return skip;
} else {
return include;
}
{code}
This won't do by comparison once again.  Because the variable filterRow would 
have been already set to true or false at this point. Correct?

> PrefixFilter#filterKeyValue() should perform filtering on row key
> -----------------------------------------------------------------
>
>                 Key: HBASE-10485
>                 URL: https://issues.apache.org/jira/browse/HBASE-10485
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Ted Yu
>            Assignee: Ted Yu
>             Fix For: 0.98.0, 0.99.0
>
>         Attachments: 10485-0.94.txt, 10485-v1.txt
>
>
> Niels reported an issue under the thread 'Trouble writing custom filter for 
> use in FilterList' where his custom filter used in FilterList along with 
> PrefixFilter produced an unexpected results.
> His test can be found here:
> https://github.com/nielsbasjes/HBase-filter-problem
> This is due to PrefixFilter#filterKeyValue() using 
> FilterBase#filterKeyValue() which returns ReturnCode.INCLUDE
> When FilterList.Operator.MUST_PASS_ONE is specified, 
> FilterList#filterKeyValue() would return ReturnCode.INCLUDE even when row key 
> prefix doesn't match meanwhile the other filter's filterKeyValue() returns 
> ReturnCode.NEXT_COL



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to