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 2018/07/19 09:38:00 UTC

[jira] [Commented] (HBASE-20151) Bug with SingleColumnValueFilter and FamilyFilter

    [ https://issues.apache.org/jira/browse/HBASE-20151?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16549057#comment-16549057 ] 

Zheng Hu commented on HBASE-20151:
----------------------------------

So this bug is still caused by NEXT_ROW of FamilyFilter , which was introduced by HBASE-13122  ?

HBASE-13122 does have some optimization effects, but it result in some BUG which is not particularly easy to understand (Such as this issue and HBASE-18368),   Could we just revert the HBASE-13122 , because this optimization fit only for FamilyFilter, but FilterList need frequent code adjustments for FamilyFilter ... this is an optimization that is very unfriendly to the upper layer...for me,   Keep it simple & stupid would be OK... 

> Bug with SingleColumnValueFilter and FamilyFilter
> -------------------------------------------------
>
>                 Key: HBASE-20151
>                 URL: https://issues.apache.org/jira/browse/HBASE-20151
>             Project: HBase
>          Issue Type: Bug
>         Environment: MacOS 10.13.3
> HBase 1.3.1
>            Reporter: Steven Sadowski
>            Assignee: Reid Chan
>            Priority: Major
>             Fix For: 3.0.0, 2.2.0
>
>         Attachments: HBASE-20151.master.001.patch, HBASE-20151.master.002.patch, HBASE-20151.master.003.patch, HBASE-20151.master.004.patch, HBASE-20151.master.004.patch, HBASE-20151.master.005.patch
>
>
> When running the following queries, the result is sometimes return correctly and other times incorrectly based on the qualifier queried.
> Setup:
> {code:java}
> create 'test', 'a', 'b'
> test = get_table 'test'
> test.put '1', 'a:1', nil
> test.put '1', 'a:10', nil
> test.put '1', 'b:2', nil
> {code}
>  
>  This query works fine when the SCVF's qualifier has length 1 (i.e. '1') :
> {code:java}
> test.scan({ FILTER => "( SingleColumnValueFilter('a','1',=,'binary:',true,true) AND FamilyFilter(=,'binary:b') )"})
> ROW                                       COLUMN+CELL
>  1                                        column=b:2, timestamp=1520455888059, value=
> 1 row(s) in 0.0060 seconds
> {code}
>  
> The query should return the same result when passed a qualifier of length 2 (i.e. '10') :
> {code:java}
> test.scan({ FILTER => "( SingleColumnValueFilter('a','10',=,'binary:',true,true) AND FamilyFilter(=,'binary:b') )"})
> ROW                                       COLUMN+CELL
> 0 row(s) in 0.0110 seconds
> {code}
> However, in this case, it does not return any row (expected result would be to return the same result as the first query).
>  
> Removing the family filter while the qualifier is '10' yields expected results:
> {code:java}
> test.scan({ FILTER => "( SingleColumnValueFilter('a','10',=,'binary:',true,true) )"})
> ROW                                       COLUMN+CELL
>  1                                        column=a:1, timestamp=1520455887954, value=
>  1                                        column=a:10, timestamp=1520455888024, value=
>  1                                        column=b:2, timestamp=1520455888059, value=
> 1 row(s) in 0.0140 seconds
> {code}
>  
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)