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

stack commented on HBASE-10965:
-------------------------------

bq. 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). 

The particular filter implementation is broke then?  You would change how we 
run filters to accommodate brokenly implemented filters?

bq. 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.

Why do we need this?  Who has this problem?  Are folks implementing filters w/o 
reading the Interface (is it not clear on what needs overriding -- if not, 
shouldn't we fix that?) or who is implementing filters w/o test that proves 
their filter "does the right thing?"  Is the filter API broke?  Should we fix 
that rather than add what looks like a band-aid, one that may 'surprise' 
implementors?



> 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