[
https://issues.apache.org/jira/browse/HBASE-19057?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16214380#comment-16214380
]
Anoop Sam John commented on HBASE-19057:
----------------------------------------
[~openinx] Checked the test case and got it.. So the order of filter methods
invocation- This is being used by filters like PrefixFilter. Only at
filterRowKey, the prefix is been checked. So if we change this now , it will
be big behave change. So better dont do this. Checking the old code, seems
even for AND filter, we were not doing the bypass.
{code}
for (int i = 0; i < listize; i++) {
Filter filter = filters.get(i);
if (this.operator == Operator.MUST_PASS_ALL) {
if (filter.filterAllRemaining() || filter.filterRowKey(firstRowCell)) {
flag = true;
}
} else if (this.operator == Operator.MUST_PASS_ONE) {
if (!filter.filterAllRemaining() && !filter.filterRowKey(firstRowCell))
{
flag = false;
}
}
}
return flag;
{code}
So we better not change even that. Pls add some fat comments here saying why
we are not doing the short circuit return path.
> Merge branch HBASE-18410 to master branch
> -----------------------------------------
>
> Key: HBASE-19057
> URL: https://issues.apache.org/jira/browse/HBASE-19057
> Project: HBase
> Issue Type: Sub-task
> Components: Filters
> Reporter: Zheng Hu
> Assignee: Zheng Hu
> Priority: Blocker
> Fix For: 2.0.0-alpha-4
>
> Attachments: HBASE-19057-HBASE-18410.v1.patch
>
>
> Open this issue to fix conflict , run HadoopQA and gather other feedback.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)