Fabien Le Gallo created HBASE-10850:
---------------------------------------

             Summary: 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


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)

Reply via email to