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

Lars Hofhansl commented on HBASE-6562:
--------------------------------------

This just came up again. What happens is this: The scan's startRow is always 
seen by filterRowKey, even it is actually does not exist.
This is bad for folks who want to implement their own filters using 
filterRowKey, because there is no way to distinguish the case where the scan's 
startRow exist vs not.

For example, say the first row has rowkey "Y", and we have a filter that 
implements filterRowKey.
If if we scan and set the startRow to "Y", filterRowKey will correctly see "Y".
But, if we scan and set the startRow to "X", filterRowKey is called twice, 
first with "X", then with "Y".

If you now have a not-filter, you'll return "X", and "Y", which is wrong, 
because "X" does not exist.

                
> Fake KVs are sometimes passed to filters
> ----------------------------------------
>
>                 Key: HBASE-6562
>                 URL: https://issues.apache.org/jira/browse/HBASE-6562
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Lars Hofhansl
>            Assignee: Lars Hofhansl
>            Priority: Minor
>             Fix For: 0.96.0
>
>         Attachments: 6562.txt, 6562-v2.txt, 6562-v3.txt, minimalTest.java
>
>
> In internal tests at Salesforce we found that fake row keys sometimes are 
> passed to filters (Filter.filterRowKey(...) specifically).
> The KVs are eventually filtered by the StoreScanner/ScanQueryMatcher, but the 
> row key is passed to filterRowKey in RegionScannImpl *before* that happens.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to