You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "chaijunjie (Jira)" <ji...@apache.org> on 2023/08/04 09:36:00 UTC

[jira] (HBASE-27972) Scan result wrong when using filterlist and specifing scan colums

    [ https://issues.apache.org/jira/browse/HBASE-27972 ]


    chaijunjie deleted comment on HBASE-27972:
    ------------------------------------

was (Author: JIRAUSER286971):
This may beacasue...

org.apache.hadoop.hbase.filter.SingleColumnValueFilter#filterCell, when not matcing column will return INCLUDE..

[https://github.com/apache/hbase/blob/1d704a79ab8942b5092640d7274826fd4d31c01d/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/SingleColumnValueFilter.java#L160]

 

When set colums in scan then the KVScanner of the filter(not included for colums) will not create... 

[https://github.com/apache/hbase/blob/1d704a79ab8942b5092640d7274826fd4d31c01d/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionScannerImpl.java#L164]

 

> Scan result wrong when using filterlist and specifing scan colums
> -----------------------------------------------------------------
>
>                 Key: HBASE-27972
>                 URL: https://issues.apache.org/jira/browse/HBASE-27972
>             Project: HBase
>          Issue Type: Bug
>          Components: Filters
>    Affects Versions: 2.4.14
>            Reporter: chaijunjie
>            Priority: Major
>         Attachments: image-2023-07-13-17-34-03-488.png
>
>
> When I run these tests in hbase shell.
> like this:
> select cq1 from t1 where cq1<='2' and cq2>='5'
> select cq1 from t1 where cq1<='2' or cq2>='5'
> all these results is  is different from expectations...the results is different with MySQL and others DB...
> {code:java}
> // Test
> create 't1',{NAME=>'cf1'}
> put 't1','r1','cf1:cq1','1'
> put 't1','r1','cf1:cq2','2'
> put 't1','r2','cf1:cq1','2'
> put 't1','r2','cf1:cq2','3'
> put 't1','r3','cf1:cq1','3'
> put 't1','r3','cf1:cq2','4'
> put 't1','r4','cf1:cq1','4'
> put 't1','r4','cf1:cq2','5'
> java_import org.apache.hadoop.hbase.filter.SingleColumnValueFilter
> java_import org.apache.hadoop.hbase.util.Bytes
> java_import org.apache.hadoop.hbase.filter.CompareFilter
> java_import org.apache.hadoop.hbase.filter.FilterList
> filter1=SingleColumnValueFilter.new(Bytes::toBytes('cf1'),Bytes::toBytes('cq1'),CompareFilter::CompareOp::LESS_OR_EQUAL,Bytes::toBytes('2'))
> filter2=SingleColumnValueFilter.new(Bytes::toBytes('cf1'),Bytes::toBytes('cq2'),CompareFilter::CompareOp::GREATER_OR_EQUAL,Bytes::toBytes('5'))
> filterList1=FilterList.new(FilterList::Operator::MUST_PASS_ONE,filter1,filter2)
> filterList2=FilterList.new(FilterList::Operator::MUST_PASS_ALL,filter1,filter2)
> scan 't1',{COLUMNS=>['cf1:cq1'],FILTER =>filter1}
> scan 't1',{COLUMNS=>['cf1:cq2'],FILTER =>filter2}
> scan 't1',{COLUMNS=>['cf1:cq1'],FILTER =>filterList1}
> scan 't1',{COLUMNS=>['cf1:cq1'],FILTER =>filterList2} {code}
> !image-2023-07-13-17-34-03-488.png!



--
This message was sent by Atlassian Jira
(v8.20.10#820010)