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)