[ https://issues.apache.org/jira/browse/HBASE-27972?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
chaijunjie updated HBASE-27972: ------------------------------- Attachment: 截图.PNG > 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, test2.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! > when setFilterIfMissing.... it also wrong > > {code:java} > 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')) > filter1::setFilterIfMissing(true) > filter2=SingleColumnValueFilter.new(Bytes::toBytes('cf1'),Bytes::toBytes('cq2'),CompareFilter::CompareOp::GREATER_OR_EQUAL,Bytes::toBytes('5')) > filter2::setFilterIfMissing(true) > 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} > !file:///C:/Users/c00580863/AppData/Roaming/eSpace_Desktop/UserData/c00580863/imagefiles/FA2B0B2E-C50A-4159-989A-FAA7B3CD04B1.png|id=FA2B0B2E-C50A-4159-989A-FAA7B3CD04B1,vspace=3! > -- This message was sent by Atlassian Jira (v8.20.10#820010)