[
https://issues.apache.org/jira/browse/HBASE-10965?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ted Yu updated HBASE-10965:
---------------------------
Attachment: 10965-v4.txt
Patch v4 is based on patch v3 and has the following additional change:
{code}
- if ((isEmptyRow || ret == FilterWrapper.FilterRowRetCode.EXCLUDE) ||
filterRow()) {
+ if ((isEmptyRow || ret == FilterWrapper.FilterRowRetCode.EXCLUDE)) {
{code}
The above is feasible because detection of presence of filterRow() is much more
reliable now. We don't need to call filterRow twice.
All \*Filter\* tests pass.
> 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)