You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Ben Watson (JIRA)" <ji...@apache.org> on 2017/03/17 16:59:42 UTC

[jira] [Commented] (HBASE-16356) REST API scanner: row prefix filter and custom filter parameter are mutually exclusive

    [ https://issues.apache.org/jira/browse/HBASE-16356?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15930299#comment-15930299 ] 

Ben Watson commented on HBASE-16356:
------------------------------------

I have a patch for this ticket. I presume I need to be added as the Assignee to be able to submit it, so please could someone add me?

> REST API scanner: row prefix filter and custom filter parameter 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 (tested on HDP 2.4.2)
>            Reporter: Bjorn Olsen
>            Priority: Minor
>
> A user can optionally specify a row PrefixFilter, or a list of custom filters, to the REST API scanner.
> Prefix filter example: 
> <API>/123*?startrow=0&endrow=9
> Custom filters example: 
> <API>/*?startrow=0&endrow=9&filter=RowFilter(=,'substring:456)
> This works when specified separately, like above. 
> However, specifying both a prefix filter and a list of custom filters causes the API to ignore the prefix filter.
> Example using both parameters:
> <API>/123*?startrow=0&endrow=9&filter=RowFilter(=,'substring:456)
> It appears that code in the TableResource.getScanResource function is causing this issue as follows:
> (see https://hbase.apache.org/devapidocs/src-html/org/apache/hadoop/hbase/rest/TableResource.html#line.196 )
> if (filterList != null) {
>   tableScan.setFilter(filterList); /*comes from custom filters parameter*/
> } else if (filter != null) {
>   tableScan.setFilter(filter);
>   /*comes from row prefix parameter*/
> }
> 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.15#6346)