hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bjorn Olsen (JIRA)" <j...@apache.org>
Subject [jira] [Created] (HBASE-16356) REST API prefixFilter and custom filters are mutually exclusive
Date Thu, 04 Aug 2016 12:35:20 GMT
Bjorn Olsen created HBASE-16356:
-----------------------------------

             Summary: REST API prefixFilter and custom filters are mutually exclusive
                 Key: HBASE-16356
                 URL: https://issues.apache.org/jira/browse/HBASE-16356
             Project: HBase
          Issue Type: Bug
          Components: REST
    Affects Versions: 1.1.2
         Environment: Not environment-specific, but visible in HDP 2.4.2
            Reporter: Bjorn Olsen
            Priority: Minor


The HBase REST API makes use of a TableResource object to create a Scan, which then applies
filters specified by the user. 

A user can specify a row PrefixFilter or a list of custom filters on the API.

Prefix filter example: 
<API>/123*?startrow=0&endrow=9

Custom filters example: 
<API>/*?startrow=0&endrow=9&filter=RowFilter(=,'substring:456)

This works okay. 

However, specifying both a prefix filter and a list of custom filters causes the API to ignore
the prefix filter.
Eg 
<API>/123*?startrow=0&endrow=9&filter=RowFilter(=,'substring:456)


Logic in the TableResource.getScanResource function is causing this behavior as follows:
if (filterList != null) {
  tableScan.setFilter(filterList);
} else if (filter != null) {
  tableScan.setFilter(filter);
}
(see https://hbase.apache.org/devapidocs/src-html/org/apache/hadoop/hbase/rest/TableResource.html#line.196
)

This should probably be changed to use a single filterList for both parameters. The prefix
filter can be "Popped" onto the filter list and then these parameters will work even when
both are specified.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message