You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Zheng Hu (JIRA)" <ji...@apache.org> on 2017/12/27 07:49:02 UTC
[jira] [Commented] (HBASE-19640) Change in filterAllRemaining()
impl for FilterListWithOR
[ https://issues.apache.org/jira/browse/HBASE-19640?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16304300#comment-16304300 ]
Zheng Hu commented on HBASE-19640:
----------------------------------
[~ankit.singhal] , Thanks for the finding. I refactor the FilterList , and fix this bug when do the refactor . Better to add this into release note, It's true.
> Change in filterAllRemaining() impl for FilterListWithOR
> --------------------------------------------------------
>
> Key: HBASE-19640
> URL: https://issues.apache.org/jira/browse/HBASE-19640
> Project: HBase
> Issue Type: Bug
> Components: Filters
> Affects Versions: 2.0.0-beta-1
> Reporter: Ankit Singhal
>
> filterAllRemaining() in FilterListWithOR will now return false if the filter list is empty whereas earlier it used to return true for Operator.MUST_PASS_ONE.
> *In HBase-2.0*
> {code}
> @Override
> public boolean filterAllRemaining() throws IOException {
> if (isEmpty()) {
> return super.filterAllRemaining();//false
> }
> for (int i = 0, n = filters.size(); i < n; i++) {
> if (!filters.get(i).filterAllRemaining()) {
> return false;
> }
> }
> return true;
> }
> {code}
> Earlier versions(1.3.1 atleast):-
> {code}
> @Override
> public boolean filterAllRemaining() throws IOException {
> int listize = filters.size();
> for (int i = 0; i < listize; i++) {
> if (filters.get(i).filterAllRemaining()) {
> if (operator == Operator.MUST_PASS_ALL) {
> return true;
> }
> } else {
> if (operator == Operator.MUST_PASS_ONE) {
> return false;
> }
> }
> }
> return operator == Operator.MUST_PASS_ONE;
> }
> {code}
> IMO, the current implementation seems to be right, but probably this change requires a release note at least as some people might have implemented the filters considering the old semantics.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)