[ 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)