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

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

bq.This will be problematic When a FL contains another FL, the inner one will 
always say hasFilterRow as true.
Good catch.
We could deprecate hasFilterRow() if there is a consensus in removing it.  
Later can remove it.
You mean to use the hasFilterrow() only in openScanner and not use in every 
next() calls? Ideally if the 
{code}
if ((isEmptyRow || ret == FilterWrapper.FilterRowRetCode.EXCLUDE) || 
filterRow()) {
{code}
filterRow() is getting removed here then hasfilterRow() is called to check the 
stopRow alone.  In that case moving it to the openScanner makes sense instead 
of doing the reflection way of using it.


> Automate detection of presence of Filter#filterRow()
> ----------------------------------------------------
>
>                 Key: HBASE-10965
>                 URL: https://issues.apache.org/jira/browse/HBASE-10965
>             Project: HBase
>          Issue Type: Task
>            Reporter: Ted Yu
>            Assignee: Ted Yu
>         Attachments: 10965-v1.txt, 10965-v2.txt, 10965-v3.txt, 10965-v4.txt
>
>
> There is potential inconsistency between the return value of 
> Filter#hasFilterRow() and presence of Filter#filterRow().
> Filters may override Filter#filterRow() while leaving return value of 
> Filter#hasFilterRow() being false (inherited from FilterBase).
> This JIRA aims to remove the inconsistency by automatically detecting the 
> presence of overridden Filter#filterRow(). If filterRow() is implemented and 
> not inherited from FilterBase, it is equivalent to having hasFilterRow() 
> return true.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to