ramkrishna.s.vasudevan commented on HBASE-16729:

  if (rowFilters instanceof ArrayList) {                
91            this.filters = rowFilters;                
92          } else {            
93            this.filters = new ArrayList<Filter>(rowFilters);         
94          }
Why this change now? And why is the generic <Filter> removed now ?

Can we make FilterList extend FilterBase and return super.filterRow() etc?  So 
that we don't avoid any method. Just asking.
Change the release not to say that Empty filterList will behave same as there 
is no filter added. That is better to read.
Pls mark this as an incompatible change. I think with isFamilyEssential etc. we 
may have compatibility issue if suppose some one is creating an empty list. But 
anyway am not sure if that is a right way to use filters.

> Define the behavior of (default) empty FilterList
> -------------------------------------------------
>                 Key: HBASE-16729
>                 URL: https://issues.apache.org/jira/browse/HBASE-16729
>             Project: HBase
>          Issue Type: Wish
>            Reporter: ChiaPing Tsai
>            Assignee: ChiaPing Tsai
>            Priority: Trivial
>         Attachments: HBASE-16729.v0.patch
> Current empty FilterList filters all data, because the 
> FilterList#isFamilyEssential always returns false which causes the null cell 
> retrieved by RegionScannerImpl.storeHeap.
> It seems to me that empty FilterList should do nothing, because the following 
> code is common.
> {noformat}
> private static Filter makeFilter() {
>   FilterList filterList = new FilterList ();
>   for (some conditions) {
>     // add some filters. Or nothing to add.
>   }
>   return filterList;
> }
> {noformat}
> If we keep the current logic which filters all data, we should add enough 
> comments to explain it. Or add the FilterList#size() or FilterList#empty() 
> for preventing filtering all data.
> Any comments? Thanks.

This message was sent by Atlassian JIRA

Reply via email to