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)