Hi Team,
Currently I am trying to use MultipleColumnPrefixFilter along with SingleColumnValueFilter and the results that I am getting seems to be problematic. I have an hbase table "test_messages" with column family "main" and Column Qualifiers as : "pa", "cs" ,"eps","cst","ver","nm","parl". Assume all the row Keys of the table has all the above columns. Now When I am creating Filters as below: FilterList temp=new FilterList(FilterList.Operator.MUST_PASS_ALL); SingleColumnValueFilter filter1= new SingleColumnValueFilter("main" ,"pa",CompareFilter.CompareOp.LESS_OR_EQUAL, Bytes.toBytes("SomeValue")); filter1 .setFilterIfMissing(true); SingleColumnValueFilter filter2= new SingleColumnValueFilter("main" ,"cs",CompareFilter.CompareOp.EQUAL, Bytes.toBytes("SomeValue")); filter2.setFilterIfMissing(true); SingleColumnValueFilter filter3= new SingleColumnValueFilter("main" ,eps",CompareFilter.CompareOp.EQUAL, Bytes.toBytes("SomeValue")); filter3.setFilterIfMissing(true); Case 1: MultipleColumnPrefixFilter cpfxf=new MultipleColumnPrefixFilter(new byte[][]{ Bytes.toBytes("pa"),Bytes.toBytes("cs"),Bytes.toBytes("eps")}); temp.addFilter(cpfxf); The above filters results in proper extratcion of data from Hbase. Now if I create a MultipleColumnPrefixFilter as below: Case 2: MultipleColumnPrefixFilter cpfxf=new MultipleColumnPrefixFilter(new byte[][]{ Bytes.toBytes("pa"),Bytes.toBytes("eps")}); //Note "cs" is removed temp.addFilter(cpfxf); I don't get any data However if I create a filter as Case 3: MultipleColumnPrefixFilter cpfxf=new MultipleColumnPrefixFilter(new byte[][]{ Bytes.toBytes("pa"),Bytes.toBytes("cs")}); // Note "eps" is removed and "cs" is added back. temp.addFilter(cpfxf); I get lot of data. EIther both Case 2 and Case 3 should give data or none of them. Can someone Explain me the reason for this to happen ? Or is there a bug in MultipleColumnPrefixFilter . Vikash Agarwal