[ https://issues.apache.org/jira/browse/HBASE-27972?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
chaijunjie updated HBASE-27972: ------------------------------- Description: When I run these tests... 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.FilterListfilter1=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! was: When I run these tests... The results is different from expectations {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.FilterListfilter1=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! > 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.17 > Reporter: chaijunjie > Priority: Major > Attachments: image-2023-07-13-17-34-03-488.png > > > When I run these tests... > 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.FilterListfilter1=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)