Attach is my test customFilter code --- TestFilter. It just simply extends FilterBase and do some system.out... You can just try any Table has more than one columnFamily like below:
*Scan scan = new Scan();* *scan.setFilter(new TestFilter());* *hTable.getScanner(scan);* and look the HBase's log... It seems there is truely a BUG here....When filterKeyValue return ReturnCode.NEXT_ROW, it jump to next columnFamily but not next row... also there is one thing strange, why the fitlerRow() not be called? 2012/2/21 <[email protected]> > The javadoc says filterRow() will still be called. > > Can you show us your filterRow() code ? > > Thanks > > > > On Feb 21, 2012, at 7:28 AM, NNever <[email protected]> wrote: > > > Hi~ > > > > One customFilter, Override filterKeyValue(KeyValue v). > > when the filter filterKeyValue a row's first keyValue, it will return > > "ReturnCode.NEXT_ROW" to jump to next row. > > > > But what infact is, the result changes when there are more than one > > columnFamily:(here are some logs) > > > > [filterRowKey] PERSONA1 > > [filterKeyValue] family:info | qualifier:active | value:\x00 > > [filterKeyValue] returnCode is NEXT_ROW > > [reset] > > [filterRowKey] PERSONA2 > > [filterKeyValue] family:info | qualifier:active | value:\x00 > > [filterKeyValue] returnCode is NEXT_ROW > > [reset] > > [filterRowKey] PERSONA3 > > [filterKeyValue] family:info | qualifier:active | value:\x00 > > [filterKeyValue] returnCode is NEXT_ROW > > [filterKeyValue] family:npo | qualifier:059201 | value: > > [filterKeyValue] returnCode is NEXT_ROW > > [reset] > > [filterRowKey] PERSONA4 > > [filterKeyValue] family:cert | qualifier:certSN | value: > > PERSONAL4314120472582094317514215676313826416149 > > [filterKeyValue] returnCode is NEXT_ROW > > [filterKeyValue] family:info | qualifier:active | value:\x00 > > [filterKeyValue] returnCode is NEXT_ROW > > [filterKeyValue] family:npo | qualifier:059201 | value: > > [filterKeyValue] returnCode is NEXT_ROW > > [reset] > > > > the Table schema is > > User > > info:name, info:address, info:active.... (info family, every record has > > values) > > npo:xxxx.....(npo family may be not exist) > > cert:certSN, cert:certType....(cert family may be not exist) > > > > As you can see from the log, once a row has more than one family values, > > The ReturnCode.NEXT_ROW will not jump to next row but pass the left > > qualifier values and jump to next fmaily. > > Why? It's a bug or just design to be like this? > > Thanks~ >
