Thanks Ted, I don't know mailing list strips attachment before. Here is the attache:
TestFilter.java: http://pastebin.com/zC6EF8pX and the log: http://pastebin.com/RsKJSHcn 2012/2/23 Ted Yu <[email protected]> > N: > Can you publish your code on pastebin or somewhere ? > Mailing list strips attachment. > > Thanks > > > On Tue, Feb 21, 2012 at 5:47 PM, NNever <[email protected]> wrote: > >> 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~ >>> >> >> >
