[ https://issues.apache.org/jira/browse/HBASE-10850?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13949230#comment-13949230 ]
haosdent commented on HBASE-10850: ---------------------------------- Reproduce this issue on MiniCluster. > Unexpected behavior when using filter SingleColumnValueFilter > ------------------------------------------------------------- > > Key: HBASE-10850 > URL: https://issues.apache.org/jira/browse/HBASE-10850 > Project: HBase > Issue Type: Bug > Components: Filters > Affects Versions: 0.96.1.1 > Reporter: Fabien Le Gallo > Attachments: HBaseSingleColumnValueFilterTest.java > > > When using the filter SingleColumnValueFilter, and depending of the columns > specified in the scan (filtering column always specified), the results can be > different. > Here is an example. > Suppose the following table: > ||key||a:foo||a:bar||b:foo||b:bar|| > |1|false|_flag_|_flag_|_flag_| > |2|true|_flag_|_flag_|_flag_| > |3| |_flag_|_flag_|_flag_| > With this filter: > {code} > SingleColumnValueFilter filter = new > SingleColumnValueFilter(Bytes.toBytes("a"), Bytes.toBytes("foo"), > CompareOp.EQUAL, new BinaryComparator(Bytes.toBytes("false"))); > filter.setFilterIfMissing(true); > {code} > Depending of how I specify the list of columns to add in the scan, the result > is different. Yet, all examples below should always return only the first row > (key '1'): > OK: > {code} > scan.addFamily(Bytes.toBytes("a")); > {code} > KO (2 results returned, row '3' without 'a:foo' qualifier is returned): > {code} > scan.addFamily(Bytes.toBytes("a")); > scan.addFamily(Bytes.toBytes("b")); > {code} > KO (2 results returned, row '3' without 'a:foo' qualifier is returned): > {code} > scan.addColumn(Bytes.toBytes("a"), Bytes.toBytes("foo")); > scan.addColumn(Bytes.toBytes("a"), Bytes.toBytes("bar")); > scan.addColumn(Bytes.toBytes("b"), Bytes.toBytes("foo")); > {code} > OK: > {code} > scan.addColumn(Bytes.toBytes("a"), Bytes.toBytes("foo")); > scan.addColumn(Bytes.toBytes("b"), Bytes.toBytes("bar")); > {code} > OK: > {code} > scan.addColumn(Bytes.toBytes("a"), Bytes.toBytes("foo")); > scan.addColumn(Bytes.toBytes("a"), Bytes.toBytes("bar")); > {code} > This is a regression as it was working properly on HBase 0.92. > You will find in attachement the unit tests reproducing the issue. -- This message was sent by Atlassian JIRA (v6.2#6252)