[
https://issues.apache.org/jira/browse/HBASE-10965?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13968349#comment-13968349
]
Anoop Sam John commented on HBASE-10965:
----------------------------------------
{code}
+ if (hasFilterRow == null) {
+ for (Filter filter : filters) {
+ if (FilterWrapper.isFilterMethodImplemented(filter, "filterRow")) {
+ this.hasFilterRow = true;
+ return true;
+ }
}
+ this.hasFilterRow = false;
}
{code}
This will be problematic When a FL contains another FL, the inner one will
always say hasFilterRow as true.
So here as per V4 patch we will auto detect presence of filterRow() overridden
alone?
FilterWrapper#hasFilterRow() just checks presence of filterRow() ? ! When
Filter extending
filterRowCells(List<Cell> kvs) or filterRow(List<KeyValue> kvs) hasFilter()
have to return true (And we need fail in HRegion a scan with filter and batch
being set)
> 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)