Thanks for quick replay, I want only the rows that matches BOTH conditions. Detailed: all the rows that have this two columns and the values from this two columns must match values specified in code.
On Thu, Sep 3, 2009 at 8:37 PM, Jonathan Gray <[email protected]> wrote: > That filter just underwent a rewrite this week, there is certainly > possibility for a bug... However it does seem you are seeing expected > behavior. > > What exactly are you trying to do? You want to return the entire row if > it makes the value (get all columns in the family if one column matches), > if it matches BOTH, if it matches EITHER... I don't follow exactly what > you want to have as the end result returned to the client. > > Could you define more specifically what you want your result to be? > > JG > > On Thu, September 3, 2009 10:08 am, Adrian Olariu wrote: > > Hi, > > I'm trying to use some filters and the results are not like expected. > > Maybe there it's a bug. I'm using HBase 0.20.0 RC3 > > I'm trying to filter rows using SingleColumnValueFilter like this: > > Scan s = new Scan(); > > > > > > Filter filter1 = new SingleColumnValueFilter(Bytes.toBytes("F1"), > > Bytes.toBytes("c1"), CompareOp.EQUAL, Bytes.toBytes("1")); > > Filter filter2 = new SingleColumnValueFilter(Bytes.toBytes("F1"), > > Bytes.toBytes("c2"), CompareOp.EQUAL, Bytes.toBytes("1")); > > List<Filter> rowFilters = new ArrayList<Filter>(); > > rowFilters.add(filter1);rowFilters.add(filter2); Filter filter = new > > FilterList(FilterList.Operator.MUST_PASS_ONE, > > rowFilters); > > > > s.addColumn(Bytes.toBytes("F1"), Bytes.toBytes("c1")); > > s.addColumn(Bytes.toBytes("F1"), Bytes.toBytes("c2")); > > s.setFilter(filter); > > > > long startTime = System.currentTimeMillis(); ResultScanner scanner = > > table.getScanner(s); > > > > This filter returns all rows the contains F1:c1 whit val "1" or contains > > F1:c2 whit val "1" or contains both. > > If I replace "addColumn" methods whit s.addFamily("F1"); the scanner > > returns all rows from the table whit no filtering eaven if the F1:c1/c2 > > columns doesn't exist > > > > How can I get only the rows that matches all the conditions? > > > > > > Thank you, > > Olariu Adrian. > > > > > >
