Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Threaded View
HBase, mail # user - Behavior of Filter.transform() in FilterList?


Copy link to this message
-
Re: Behavior of Filter.transform() in FilterList?
lars hofhansl 2013-07-01, 11:14
You want transform to only be called on filters that are "reached"?
I.e. FilterA and FilterB, FilterB.transform should not be called if a KV is already filtered by FilterA?

That's not how it works right now, transform is called in a completely different code path from the actual filtering logic.
-- Lars

----- Original Message -----
From: Christophe Taton <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]
Cc:
Sent: Sunday, June 30, 2013 10:26 PM
Subject: Re: Behavior of Filter.transform() in FilterList?

On Sun, Jun 30, 2013 at 10:15 PM, Ted Yu <[EMAIL PROTECTED]> wrote:

> The clause 'family=X and column=Y and KeyOnlyFilter' would be represented
> by a FilterList, right ?
> (family=A and colymn=B) would be represented by another FilterList.
>

Yes, that would be FilterList(OR, [FilterList(AND, [family=X, column=Y,
KeyOnlyFilter]), FilterList(AND, [family=A, column=B])]).

So the behavior is expected.
>

Could you explain, I'm not sure how you reach this conclusion.
Are you saying it is expected, given the actual implementation
FilterList.transform()?
Or are there some other details I missed?

Thanks!
C.

On Mon, Jul 1, 2013 at 1:10 PM, Christophe Taton <[EMAIL PROTECTED]> wrote:
>
> > Hi,
> >
> > From
> >
> >
> https://github.com/apache/hbase/blob/0.95/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FilterList.java#L183
> > ,
> > it appears that Filter.transform() is invoked unconditionally on all
> > filters in a FilterList hierarchy.
> >
> > This is quite confusing, especially since I may construct a filter like:
> >     (family=X and column=Y and KeyOnlyFilter) or (family=A and colymn=B)
> > The KeyOnlyFilter will remove all values from the KeyValues in A:B as
> well.
> >
> > Is my understanding correct? Is this an expected/intended behavior?
> >
> > Thanks,
> > C.
> >
>